summaryrefslogtreecommitdiffstats
path: root/private/ole32/ih/tlschico.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ole32/ih/tlschico.h')
-rw-r--r--private/ole32/ih/tlschico.h514
1 files changed, 514 insertions, 0 deletions
diff --git a/private/ole32/ih/tlschico.h b/private/ole32/ih/tlschico.h
new file mode 100644
index 000000000..2e6a5d2c3
--- /dev/null
+++ b/private/ole32/ih/tlschico.h
@@ -0,0 +1,514 @@
+//+----------------------------------------------------------------
+//
+// Functions: TLSxxx functions
+//
+// Purpose: temp place for old style TLS functions until DCOM is
+// defined for Win95
+//
+// History: 02-Nov-95 Rickhi Separated from tls.h
+//
+//-----------------------------------------------------------------
+
+#define ENDPOINT_ID_INVALID 0xFFFFFFFF
+
+HWND CreateDdeClientHwnd(void);
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetDdeClientWindow()
+//
+// Synopsis: Returns a pointer to the per thread DdeClient window. If one
+// has not been created, it will create it and return
+//
+// Returns: Pointer to the DdeClientWindow. This window is used for per
+// thread cleanup
+//
+// History: 12-12-94 kevinro Created
+//----------------------------------------------------------------------------
+inline void * TLSGetDdeClientWindow()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ if (tls->hwndDdeClient == NULL)
+ {
+ tls->hwndDdeClient = CreateDdeClientHwnd();
+ }
+ return tls->hwndDdeClient;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetLogicalThread
+//
+// Synopsis: sets the logical thread id
+//
+// Arguments: [riid] - the id for the logical thread
+//
+//+---------------------------------------------------------------------------
+inline BOOL TLSSetLogicalThread(REFIID riid)
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->dwFlags |= OLETLS_UUIDINITIALIZED;
+ tls->LogicalThreadId = riid;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetCallerTID
+//
+// Synopsis: sets the TID of current caller
+//
+// Arguments: [TIDCaller] - TID of app making the incoming call
+// [fLocal] - whether TID is in this process
+// [pTIDCallerPrev] - TID of app making the previous incoming call
+// [pfLocalPrev] - whether previous TID is in this process
+//
+// Notes: these are valid only during object RPC. They are here to
+// support focus management in IOleObject::DoVerb, where
+// app queues get linked together.
+//
+//+---------------------------------------------------------------------------
+inline BOOL TLSSetCallerTID(DWORD TIDCaller, BOOL fLocal,
+ DWORD *pTIDCallerPrev, BOOL *pfLocalPrev)
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ // save the old values
+ *pTIDCallerPrev = tls->dwTIDCaller;
+ *pfLocalPrev = (tls->dwFlags & OLETLS_LOCALTID) ? TRUE : FALSE;
+
+ // set the new values
+ tls->dwTIDCaller = TIDCaller;
+ tls->dwFlags |= (fLocal) ? OLETLS_LOCALTID : 0;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetCallerTID
+//
+// Synopsis: gets the TID of current caller
+//
+// Arguments: [pTIDCaller] - TID of app making the incoming call
+//
+// Returns: [S_OK] - tid set, caller in same process
+// [S_FALSE] - tid set, caller in different process
+// [E_OUTOFMEMORY] - cant get TLS data
+//
+// Notes: these are valid only during object RPC. They are here to
+// support focus management in IOleObject::DoVerb, where
+// app queues get linked together.
+//
+//+---------------------------------------------------------------------------
+inline HRESULT TLSGetCallerTID(DWORD *pTIDCaller)
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ *pTIDCaller = tls->dwTIDCaller;
+ return (tls->dwFlags & OLETLS_LOCALTID) ? S_OK : S_FALSE;
+ }
+
+ return E_OUTOFMEMORY;
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetFault
+//
+// Synopsis: returns the per thread fault state
+//
+// Arguments: none
+//
+//+---------------------------------------------------------------------------
+inline ULONG TLSGetFault()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->fault;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetFault
+//
+// Synopsis: sets the per thread fault state
+//
+// Arguments: [ulFault] - fault code
+//
+//+---------------------------------------------------------------------------
+inline void TLSSetFault(ULONG ulFault)
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->fault = ulFault;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetChannelControl
+//
+// Synopsis: Sets pointer to the per thread ChannelControl
+//
+// Arguments: [pChanCont] -- Pointer to be the DDECallControl for thread
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline BOOL TLSSetChannelControl( void *pChanCont )
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->pChanCtrl = pChanCont;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetChannelControl
+//
+// Synopsis: Gets pointer to the per thread ChannelControl
+//
+// Arguments: none
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline void * TLSGetChannelControl()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->pChanCtrl;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetService
+//
+// Synopsis: Sets pointer to the per thread Service
+//
+// Arguments: [pService] -- Pointer to the service for the thread.
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline BOOL TLSSetService( void *pService )
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->pService = pService;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetService
+//
+// Synopsis: Gets pointer to the per thread Service
+//
+// Arguments: none
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline void * TLSGetService()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->pService;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetServiceList
+//
+// Synopsis: Sets pointer to the per thread Service List
+//
+// Arguments: [pServiceList] -- Pointer to the service list for the thread.
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline BOOL TLSSetServiceList( void *pServiceList )
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->pServiceList = pServiceList;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetServiceList
+//
+// Synopsis: Gets pointer to the per thread Service List
+//
+// Arguments: none
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline void * TLSGetServiceList()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->pServiceList;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetEndPointPtr
+//
+// Synopsis: Gets pointer to the per thread endpoint
+//
+// Arguments: none
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline DWORD * TLSGetEndPointPtr()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return &tls->dwEndPoint;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetCallControl
+//
+// Synopsis: Sets pointer to the per thread CallControl
+//
+// Arguments: [pCallCont] -- Pointer to be the CallControl for thread
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline BOOL TLSSetCallControl( void *pCallCont )
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->pCallCont = pCallCont;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetCallControl
+//
+// Synopsis: Gets pointer to the per thread CallControl
+//
+// Arguments: none
+//
+// Notes: this is not AddRef'd
+//
+//+---------------------------------------------------------------------------
+inline void * TLSGetCallControl()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->pCallCont;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetDdeCallControl
+//
+// Synopsis: Sets pointer to the per thread DDECallControl
+//
+// Arguments: [pDdeCallCont] -- Pointer to be the DDECallControl for thread
+//
+// History: 5-13-94 kevinro Created
+//
+// Notes:
+//
+// This is not AddRefed.
+//----------------------------------------------------------------------------
+inline BOOL TLSSetDdeCallControl( void *pDdeCallCont )
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->pDdeCallCont = pDdeCallCont;
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetDdeCallControl
+//
+// Synopsis: Returns a pointer to the per thread DDECallControl
+//
+// Returns: DDECallControl interface for thread
+//
+// History: 5-13-94 kevinro Created
+//
+// Notes:
+//
+// This is not AddRef'd
+//----------------------------------------------------------------------------
+inline void * TLSGetDdeCallControl()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->pDdeCallCont;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSSetDdeServer
+//
+// Synopsis: Sets hwnd to CommonDdeServer window
+//
+// Arguments: [hwndDdeServer] --
+//
+// History: 5-13-94 kevinro Created
+//
+// Notes:
+//
+//----------------------------------------------------------------------------
+inline BOOL TLSSetDdeServer(HWND hwndDdeServer )
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ tls->hwndDdeServer = hwndDdeServer;
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+//+---------------------------------------------------------------------------
+//
+// Function: TLSGetDdeServer
+//
+// Synopsis: Returns a handle to the per thread DdeServer window
+//
+// Returns: hwndDdeServer for thread
+//
+// History: 5-13-94 kevinro Created
+//
+// Notes:
+//----------------------------------------------------------------------------
+inline HWND TLSGetDdeServer()
+{
+ HRESULT hr;
+ COleTls tls(hr);
+ if (SUCCEEDED(hr))
+ {
+ return tls->hwndDdeServer;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+