| 1 |
/** |
| 2 |
* This file is part of the mingw-w64 runtime package. |
| 3 |
* No warranty is given; refer to the file DISCLAIMER within this package. |
| 4 |
*/ |
| 5 |
|
| 6 |
#include <apiset.h> |
| 7 |
#include <apisetcconv.h> |
| 8 |
|
| 9 |
#include <rpc.h> |
| 10 |
#include <rpcndr.h> |
| 11 |
|
| 12 |
#ifndef DECLSPEC_NOTHROW |
| 13 |
#define DECLSPEC_NOTHROW |
| 14 |
#endif |
| 15 |
|
| 16 |
#if (NTDDI_VERSION >= 0x06000000 && !defined (_WIN32_WINNT)) |
| 17 |
#define _WIN32_WINNT 0x0600 |
| 18 |
#endif |
| 19 |
|
| 20 |
#if (NTDDI_VERSION >= 0x05020000 && !defined (_WIN32_WINNT)) |
| 21 |
#define _WIN32_WINNT 0x0502 |
| 22 |
#endif |
| 23 |
|
| 24 |
#if (NTDDI_VERSION >= 0x05010000 && !defined (_WIN32_WINNT)) |
| 25 |
#define _WIN32_WINNT 0x0501 |
| 26 |
#endif |
| 27 |
|
| 28 |
#ifndef _COMBASEAPI_H_ |
| 29 |
#define _COMBASEAPI_H_ |
| 30 |
|
| 31 |
#include <pshpack8.h> |
| 32 |
|
| 33 |
#ifdef _OLE32_ |
| 34 |
#define WINOLEAPI STDAPI |
| 35 |
#define WINOLEAPI_(type) STDAPI_(type) |
| 36 |
#else |
| 37 |
#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE |
| 38 |
#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE |
| 39 |
#endif |
| 40 |
|
| 41 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 42 |
#if defined (__cplusplus) && !defined (CINTERFACE) |
| 43 |
|
| 44 |
#ifdef COM_STDMETHOD_CAN_THROW |
| 45 |
#define COM_DECLSPEC_NOTHROW |
| 46 |
#else |
| 47 |
#define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW |
| 48 |
#endif |
| 49 |
|
| 50 |
#define __STRUCT__ struct |
| 51 |
#undef interface |
| 52 |
#define interface __STRUCT__ |
| 53 |
#define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method |
| 54 |
#define STDMETHOD_(type, method) virtual COM_DECLSPEC_NOTHROW type STDMETHODCALLTYPE method |
| 55 |
#define STDMETHODV(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODVCALLTYPE method |
| 56 |
#define STDMETHODV_(type, method) virtual COM_DECLSPEC_NOTHROW type STDMETHODVCALLTYPE method |
| 57 |
#define PURE = 0 |
| 58 |
#define THIS_ |
| 59 |
#define THIS void |
| 60 |
#define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface |
| 61 |
#define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface |
| 62 |
#define DECLARE_INTERFACE_IID(iface, iid) interface DECLSPEC_UUID (iid) DECLSPEC_NOVTABLE iface |
| 63 |
#define DECLARE_INTERFACE_IID_(iface, baseiface, iid) interface DECLSPEC_UUID (iid) DECLSPEC_NOVTABLE iface : public baseiface |
| 64 |
|
| 65 |
#define IFACEMETHOD(method) STDMETHOD (method) |
| 66 |
#define IFACEMETHOD_(type, method) /*override*/ STDMETHOD_(type, method) |
| 67 |
#define IFACEMETHODV(method) STDMETHODV (method) |
| 68 |
#define IFACEMETHODV_(type, method) STDMETHODV_(type, method) |
| 69 |
|
| 70 |
#ifndef BEGIN_INTERFACE |
| 71 |
#define BEGIN_INTERFACE |
| 72 |
#define END_INTERFACE |
| 73 |
#endif |
| 74 |
|
| 75 |
interface IUnknown; |
| 76 |
|
| 77 |
extern "C++" { |
| 78 |
template<typename T> void **IID_PPV_ARGS_Helper (T **pp) { |
| 79 |
static_cast<IUnknown *> (*pp); |
| 80 |
return reinterpret_cast<void **> (pp); |
| 81 |
} |
| 82 |
} |
| 83 |
|
| 84 |
#define IID_PPV_ARGS(ppType) __uuidof (**(ppType)), IID_PPV_ARGS_Helper (ppType) |
| 85 |
#else |
| 86 |
#undef interface |
| 87 |
#define interface struct |
| 88 |
|
| 89 |
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE *method) |
| 90 |
#define STDMETHOD_(type, method) type (STDMETHODCALLTYPE *method) |
| 91 |
#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE *method) |
| 92 |
#define STDMETHODV_(type, method) type (STDMETHODVCALLTYPE *method) |
| 93 |
|
| 94 |
#define IFACEMETHOD(method) STDMETHOD (method) |
| 95 |
#define IFACEMETHOD_(type, method) /*override*/ STDMETHOD_(type, method) |
| 96 |
#define IFACEMETHODV(method) STDMETHODV (method) |
| 97 |
#define IFACEMETHODV_(type, method) /*override*/ STDMETHODV_(type, method) |
| 98 |
|
| 99 |
#ifndef BEGIN_INTERFACE |
| 100 |
#define BEGIN_INTERFACE |
| 101 |
#define END_INTERFACE |
| 102 |
#endif |
| 103 |
|
| 104 |
#define PURE |
| 105 |
#define THIS_ INTERFACE *This, |
| 106 |
#define THIS INTERFACE *This |
| 107 |
#ifdef CONST_VTABLE |
| 108 |
#undef CONST_VTBL |
| 109 |
#define CONST_VTBL const |
| 110 |
#define DECLARE_INTERFACE(iface) typedef interface iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl |
| 111 |
#else |
| 112 |
#undef CONST_VTBL |
| 113 |
#define CONST_VTBL |
| 114 |
#define DECLARE_INTERFACE(iface) typedef interface iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl |
| 115 |
#endif |
| 116 |
#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE (iface) |
| 117 |
#define DECLARE_INTERFACE_IID(iface, iid) DECLARE_INTERFACE (iface) |
| 118 |
#define DECLARE_INTERFACE_IID_(iface, baseiface, iid) DECLARE_INTERFACE_ (iface, baseiface) |
| 119 |
#endif |
| 120 |
|
| 121 |
#ifndef FARSTRUCT |
| 122 |
#define FARSTRUCT |
| 123 |
#endif |
| 124 |
|
| 125 |
#ifndef HUGEP |
| 126 |
#define HUGEP |
| 127 |
#endif |
| 128 |
|
| 129 |
#include <stdlib.h> |
| 130 |
|
| 131 |
#define LISet32(li, v) ((li).HighPart = ((LONG) (v)) < 0 ? -1 : 0,(li).LowPart = (v)) |
| 132 |
#define ULISet32(li, v) ((li).HighPart = 0,(li).LowPart = (v)) |
| 133 |
|
| 134 |
#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) |
| 135 |
#define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER) |
| 136 |
#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER) |
| 137 |
|
| 138 |
typedef enum tagREGCLS { |
| 139 |
REGCLS_SINGLEUSE = 0, |
| 140 |
REGCLS_MULTIPLEUSE = 1, |
| 141 |
REGCLS_MULTI_SEPARATE = 2, |
| 142 |
REGCLS_SUSPENDED = 4, |
| 143 |
REGCLS_SURROGATE = 8 |
| 144 |
} REGCLS; |
| 145 |
|
| 146 |
typedef interface IRpcStubBuffer IRpcStubBuffer; |
| 147 |
typedef interface IRpcChannelBuffer IRpcChannelBuffer; |
| 148 |
|
| 149 |
typedef enum tagCOINITBASE { |
| 150 |
COINITBASE_MULTITHREADED = 0x0, |
| 151 |
} COINITBASE; |
| 152 |
|
| 153 |
#include <wtypesbase.h> |
| 154 |
#include <unknwnbase.h> |
| 155 |
#include <objidlbase.h> |
| 156 |
#include <guiddef.h> |
| 157 |
|
| 158 |
#ifndef INITGUID |
| 159 |
#include <cguid.h> |
| 160 |
#endif |
| 161 |
#endif |
| 162 |
|
| 163 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 164 |
#if NTDDI_VERSION >= 0x06020000 |
| 165 |
typedef struct tagServerInformation { |
| 166 |
DWORD dwServerPid; |
| 167 |
DWORD dwServerTid; |
| 168 |
UINT64 ui64ServerAddress; |
| 169 |
} ServerInformation,*PServerInformation; |
| 170 |
|
| 171 |
DECLARE_HANDLE (CO_MTA_USAGE_COOKIE); |
| 172 |
#endif |
| 173 |
WINOLEAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, WINBOOL fDeleteOnRelease, LPSTREAM *ppstm); |
| 174 |
WINOLEAPI GetHGlobalFromStream (LPSTREAM pstm, HGLOBAL *phglobal); |
| 175 |
WINOLEAPI_(void) CoUninitialize (void); |
| 176 |
WINOLEAPI CoInitializeEx (LPVOID pvReserved, DWORD dwCoInit); |
| 177 |
WINOLEAPI CoGetCurrentLogicalThreadId (GUID *pguid); |
| 178 |
WINOLEAPI CoGetContextToken (ULONG_PTR *pToken); |
| 179 |
#if NTDDI_VERSION >= 0x06010000 |
| 180 |
WINOLEAPI CoGetApartmentType (APTTYPE *pAptType, APTTYPEQUALIFIER *pAptQualifier); |
| 181 |
#endif |
| 182 |
WINOLEAPI CoGetObjectContext (REFIID riid, LPVOID *ppv); |
| 183 |
WINOLEAPI CoRegisterClassObject (REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister); |
| 184 |
WINOLEAPI CoRevokeClassObject (DWORD dwRegister); |
| 185 |
WINOLEAPI CoResumeClassObjects (void); |
| 186 |
WINOLEAPI CoSuspendClassObjects (void); |
| 187 |
#endif |
| 188 |
|
| 189 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 190 |
WINOLEAPI CoGetMalloc (DWORD dwMemContext, LPMALLOC *ppMalloc); |
| 191 |
WINOLEAPI_(DWORD) CoGetCurrentProcess (void); |
| 192 |
WINOLEAPI CoGetCallerTID (LPDWORD lpdwTID); |
| 193 |
WINOLEAPI CoGetDefaultContext (APTTYPE aptType, REFIID riid, void **ppv); |
| 194 |
#if NTDDI_VERSION >= 0x06020000 |
| 195 |
WINOLEAPI CoDecodeProxy (DWORD dwClientPid, UINT64 ui64ProxyAddress, PServerInformation pServerInformation); |
| 196 |
WINOLEAPI CoWaitForMultipleObjects (DWORD dwFlags, DWORD dwTimeout, ULONG cHandles, const HANDLE *pHandles, LPDWORD lpdwindex); |
| 197 |
WINOLEAPI CoAllowUnmarshalerCLSID (REFCLSID clsid); |
| 198 |
#endif |
| 199 |
WINOLEAPI CoGetClassObject (REFCLSID rclsid, DWORD dwClsContext, LPVOID pvReserved, REFIID riid, LPVOID *ppv); |
| 200 |
WINOLEAPI_(ULONG) CoAddRefServerProcess (void); |
| 201 |
WINOLEAPI_(ULONG) CoReleaseServerProcess (void); |
| 202 |
WINOLEAPI CoGetPSClsid (REFIID riid, CLSID *pClsid); |
| 203 |
WINOLEAPI CoRegisterPSClsid (REFIID riid, REFCLSID rclsid); |
| 204 |
WINOLEAPI CoRegisterSurrogate (LPSURROGATE pSurrogate); |
| 205 |
WINOLEAPI CoMarshalHresult (LPSTREAM pstm, HRESULT hresult); |
| 206 |
WINOLEAPI CoUnmarshalHresult (LPSTREAM pstm, HRESULT *phresult); |
| 207 |
WINOLEAPI CoLockObjectExternal (LPUNKNOWN pUnk, WINBOOL fLock, WINBOOL fLastUnlockReleases); |
| 208 |
WINOLEAPI CoGetStdMarshalEx (LPUNKNOWN pUnkOuter, DWORD smexflags, LPUNKNOWN *ppUnkInner); |
| 209 |
#endif |
| 210 |
|
| 211 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 212 |
#if NTDDI_VERSION >= 0x06020000 |
| 213 |
WINOLEAPI CoIncrementMTAUsage (CO_MTA_USAGE_COOKIE *pCookie); |
| 214 |
WINOLEAPI CoDecrementMTAUsage (CO_MTA_USAGE_COOKIE Cookie); |
| 215 |
#endif |
| 216 |
typedef enum tagSTDMSHLFLAGS { |
| 217 |
SMEXF_SERVER = 0x01, |
| 218 |
SMEXF_HANDLER = 0x02 |
| 219 |
} STDMSHLFLAGS; |
| 220 |
|
| 221 |
WINOLEAPI CoGetMarshalSizeMax (ULONG *pulSize, REFIID riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags); |
| 222 |
WINOLEAPI CoMarshalInterface (LPSTREAM pStm, REFIID riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags); |
| 223 |
WINOLEAPI CoUnmarshalInterface (LPSTREAM pStm, REFIID riid, LPVOID *ppv); |
| 224 |
WINOLEAPI CoReleaseMarshalData (LPSTREAM pStm); |
| 225 |
WINOLEAPI CoDisconnectObject (LPUNKNOWN pUnk, DWORD dwReserved); |
| 226 |
WINOLEAPI CoGetStandardMarshal (REFIID riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags, LPMARSHAL *ppMarshal); |
| 227 |
WINOLEAPI CoMarshalInterThreadInterfaceInStream (REFIID riid, LPUNKNOWN pUnk, LPSTREAM *ppStm); |
| 228 |
WINOLEAPI CoGetInterfaceAndReleaseStream (LPSTREAM pStm, REFIID iid, LPVOID *ppv); |
| 229 |
WINOLEAPI CoCreateFreeThreadedMarshaler (LPUNKNOWN punkOuter, LPUNKNOWN *ppunkMarshal); |
| 230 |
WINOLEAPI_(void) CoFreeUnusedLibraries (void); |
| 231 |
WINOLEAPI_(void) CoFreeUnusedLibrariesEx (DWORD dwUnloadDelay, DWORD dwReserved); |
| 232 |
WINOLEAPI CoInitializeSecurity (PSECURITY_DESCRIPTOR pSecDesc, LONG cAuthSvc, SOLE_AUTHENTICATION_SERVICE *asAuthSvc, void *pReserved1, DWORD dwAuthnLevel, DWORD dwImpLevel, void *pAuthList, DWORD dwCapabilities, void *pReserved3); |
| 233 |
WINOLEAPI CoSwitchCallContext (IUnknown *pNewObject, IUnknown **ppOldObject); |
| 234 |
|
| 235 |
#define COM_RIGHTS_EXECUTE 1 |
| 236 |
#define COM_RIGHTS_EXECUTE_LOCAL 2 |
| 237 |
#define COM_RIGHTS_EXECUTE_REMOTE 4 |
| 238 |
#define COM_RIGHTS_ACTIVATE_LOCAL 8 |
| 239 |
#define COM_RIGHTS_ACTIVATE_REMOTE 16 |
| 240 |
|
| 241 |
WINOLEAPI CoCreateInstanceFromApp (REFCLSID Clsid, IUnknown *punkOuter, DWORD dwClsCtx, PVOID reserved, DWORD dwCount, MULTI_QI *pResults); |
| 242 |
|
| 243 |
#endif |
| 244 |
|
| 245 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 246 |
WINOLEAPI_(WINBOOL) CoIsHandlerConnected (LPUNKNOWN pUnk); |
| 247 |
#if _WIN32_WINNT >= 0x0600 |
| 248 |
WINOLEAPI CoDisconnectContext (DWORD dwTimeout); |
| 249 |
#endif |
| 250 |
WINOLEAPI CoGetCallContext (REFIID riid, void **ppInterface); |
| 251 |
WINOLEAPI CoQueryProxyBlanket (IUnknown *pProxy, DWORD *pwAuthnSvc, DWORD *pAuthzSvc, LPOLESTR *pServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, RPC_AUTH_IDENTITY_HANDLE *pAuthInfo, DWORD *pCapabilites); |
| 252 |
WINOLEAPI CoSetProxyBlanket (IUnknown *pProxy, DWORD dwAuthnSvc, DWORD dwAuthzSvc, OLECHAR *pServerPrincName, DWORD dwAuthnLevel, DWORD dwImpLevel, RPC_AUTH_IDENTITY_HANDLE pAuthInfo, DWORD dwCapabilities); |
| 253 |
WINOLEAPI CoCopyProxy (IUnknown *pProxy, IUnknown **ppCopy); |
| 254 |
WINOLEAPI CoQueryClientBlanket (DWORD *pAuthnSvc, DWORD *pAuthzSvc, LPOLESTR *pServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, RPC_AUTHZ_HANDLE *pPrivs, DWORD *pCapabilities); |
| 255 |
WINOLEAPI CoImpersonateClient (void); |
| 256 |
WINOLEAPI CoRevertToSelf (void); |
| 257 |
WINOLEAPI CoQueryAuthenticationServices (DWORD *pcAuthSvc, SOLE_AUTHENTICATION_SERVICE **asAuthSvc); |
| 258 |
WINOLEAPI CoCreateInstance (REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv); |
| 259 |
WINOLEAPI CoCreateInstanceEx (REFCLSID Clsid, IUnknown *punkOuter, DWORD dwClsCtx, COSERVERINFO *pServerInfo, DWORD dwCount, MULTI_QI *pResults); |
| 260 |
#endif |
| 261 |
|
| 262 |
#if WINAPI_FAMILY == WINAPI_FAMILY_APP |
| 263 |
__forceinline HRESULT CoCreateInstance (REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv) { |
| 264 |
MULTI_QI OneQI; |
| 265 |
HRESULT hr; |
| 266 |
|
| 267 |
OneQI.pItf = NULL; |
| 268 |
#ifdef __cplusplus |
| 269 |
OneQI.pIID = &riid; |
| 270 |
#else |
| 271 |
OneQI.pIID = riid; |
| 272 |
#endif |
| 273 |
hr = CoCreateInstanceFromApp (rclsid, pUnkOuter, dwClsContext, NULL, 1,&OneQI); |
| 274 |
*ppv = OneQI.pItf; |
| 275 |
return FAILED (hr) ? hr : OneQI.hr; |
| 276 |
} |
| 277 |
|
| 278 |
__forceinline HRESULT CoCreateInstanceEx (REFCLSID Clsid, IUnknown *punkOuter, DWORD dwClsCtx, COSERVERINFO *pServerInfo, DWORD dwCount, MULTI_QI *pResults) { |
| 279 |
return CoCreateInstanceFromApp (Clsid, punkOuter, dwClsCtx, pServerInfo, dwCount, pResults); |
| 280 |
} |
| 281 |
#endif |
| 282 |
|
| 283 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 284 |
WINOLEAPI CoGetCancelObject (DWORD dwThreadId, REFIID iid, void **ppUnk); |
| 285 |
WINOLEAPI CoSetCancelObject (IUnknown *pUnk); |
| 286 |
WINOLEAPI CoCancelCall (DWORD dwThreadId, ULONG ulTimeout); |
| 287 |
WINOLEAPI CoTestCancel (void); |
| 288 |
WINOLEAPI CoEnableCallCancellation (LPVOID pReserved); |
| 289 |
WINOLEAPI CoDisableCallCancellation (LPVOID pReserved); |
| 290 |
#endif |
| 291 |
|
| 292 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 293 |
WINOLEAPI StringFromCLSID (REFCLSID rclsid, LPOLESTR *lplpsz); |
| 294 |
WINOLEAPI CLSIDFromString (LPCOLESTR lpsz, LPCLSID pclsid); |
| 295 |
WINOLEAPI StringFromIID (REFIID rclsid, LPOLESTR *lplpsz); |
| 296 |
WINOLEAPI IIDFromString (LPCOLESTR lpsz, LPIID lpiid); |
| 297 |
#endif |
| 298 |
|
| 299 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 300 |
WINOLEAPI ProgIDFromCLSID (REFCLSID clsid, LPOLESTR *lplpszProgID); |
| 301 |
WINOLEAPI CLSIDFromProgID (LPCOLESTR lpszProgID, LPCLSID lpclsid); |
| 302 |
#endif |
| 303 |
|
| 304 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 305 |
WINOLEAPI_(int) StringFromGUID2 (REFGUID rguid, LPOLESTR lpsz, int cchMax); |
| 306 |
WINOLEAPI CoCreateGuid (GUID *pguid); |
| 307 |
|
| 308 |
typedef struct tagPROPVARIANT PROPVARIANT; |
| 309 |
|
| 310 |
WINOLEAPI PropVariantCopy (PROPVARIANT *pvarDest, const PROPVARIANT *pvarSrc); |
| 311 |
WINOLEAPI PropVariantClear (PROPVARIANT *pvar); |
| 312 |
WINOLEAPI FreePropVariantArray (ULONG cVariants, PROPVARIANT *rgvars); |
| 313 |
#endif |
| 314 |
|
| 315 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 316 |
WINOLEAPI CoWaitForMultipleHandles (DWORD dwFlags, DWORD dwTimeout, ULONG cHandles, LPHANDLE pHandles, LPDWORD lpdwindex); |
| 317 |
#endif |
| 318 |
|
| 319 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 320 |
typedef enum tagCOWAIT_FLAGS { |
| 321 |
COWAIT_DEFAULT = 0, |
| 322 |
COWAIT_WAITALL = 1, |
| 323 |
COWAIT_ALERTABLE = 2, |
| 324 |
COWAIT_INPUTAVAILABLE = 4 |
| 325 |
#endif |
| 326 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 327 |
, COWAIT_DISPATCH_CALLS = 8, |
| 328 |
COWAIT_DISPATCH_WINDOW_MESSAGES = 0x10 |
| 329 |
#endif |
| 330 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 331 |
} COWAIT_FLAGS; |
| 332 |
#endif |
| 333 |
|
| 334 |
#if NTDDI_VERSION >= 0x06020000 |
| 335 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 336 |
typedef enum CWMO_FLAGS { |
| 337 |
CWMO_DEFAULT = 0, |
| 338 |
CWMO_DISPATCH_CALLS = 1 |
| 339 |
#endif |
| 340 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 341 |
, CWMO_DISPATCH_WINDOW_MESSAGES = 2 |
| 342 |
#endif |
| 343 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 344 |
} CWMO_FLAGS; |
| 345 |
#endif |
| 346 |
#endif |
| 347 |
|
| 348 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 349 |
#define CWMO_MAX_HANDLES 56 |
| 350 |
#endif |
| 351 |
|
| 352 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 353 |
WINOLEAPI CoGetTreatAsClass (REFCLSID clsidOld, LPCLSID pClsidNew); |
| 354 |
WINOLEAPI CoInvalidateRemoteMachineBindings (LPOLESTR pszMachineName); |
| 355 |
#endif |
| 356 |
|
| 357 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 358 |
typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *); |
| 359 |
typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW) (void); |
| 360 |
|
| 361 |
STDAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv); |
| 362 |
STDAPI DllCanUnloadNow (void); |
| 363 |
WINOLEAPI_ (LPVOID) CoTaskMemAlloc (SIZE_T cb); |
| 364 |
WINOLEAPI_ (LPVOID) CoTaskMemRealloc (LPVOID pv, SIZE_T cb); |
| 365 |
WINOLEAPI_ (void) CoTaskMemFree (LPVOID pv); |
| 366 |
|
| 367 |
#ifndef RC_INVOKED |
| 368 |
#include <poppack.h> |
| 369 |
#endif |
| 370 |
|
| 371 |
#endif |
| 372 |
|
| 373 |
#endif |