1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #include <rpc.h> 7 #include <rpcndr.h> 8 9 #ifndef _OBJBASE_H_ 10 #define _OBJBASE_H_ 11 12 #include <pshpack8.h> 13 14 #ifdef _OLE32_ 15 #define WINOLEAPI EXTERN_C HRESULT WINAPI 16 #define WINOLEAPI_(type) EXTERN_C type WINAPI 17 #else 18 #define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI 19 #define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI 20 #endif 21 22 #if defined(__cplusplus) && !defined(CINTERFACE) 23 24 #ifndef __OBJC__ 25 #undef interface 26 #define interface struct 27 #endif 28 29 #define __STRUCT__ struct 30 #define STDMETHOD(method) virtual HRESULT WINAPI method 31 #define STDMETHOD_(type,method) virtual type WINAPI method 32 #define STDMETHODV(method) virtual HRESULT STDMETHODVCALLTYPE method 33 #define STDMETHODV_(type,method) virtual type STDMETHODVCALLTYPE method 34 #define PURE = 0 35 #define THIS_ 36 #define THIS void 37 #define DECLARE_INTERFACE(iface) __STRUCT__ iface 38 #define DECLARE_INTERFACE_(iface,baseiface) __STRUCT__ iface : public baseiface 39 #define DECLARE_INTERFACE_IID_(iface,baseiface,iidiface) __STRUCT__ iface : public baseiface 40 41 #if !defined(BEGIN_INTERFACE) 42 #define BEGIN_INTERFACE 43 #define END_INTERFACE 44 #endif 45 #else 46 47 #ifndef __OBJC__ 48 #undef interface 49 #define interface struct 50 #endif 51 52 #define STDMETHOD(method) HRESULT (WINAPI *method) 53 #define STDMETHOD_(type,method) type (WINAPI *method) 54 #define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE *method) 55 #define STDMETHODV_(type,method) type (STDMETHODVCALLTYPE *method) 56 57 #if !defined(BEGIN_INTERFACE) 58 #define BEGIN_INTERFACE 59 #define END_INTERFACE 60 #endif 61 62 #define PURE 63 #define THIS_ INTERFACE *This, 64 #define THIS INTERFACE *This 65 #ifdef CONST_VTABLE 66 #undef CONST_VTBL 67 #define CONST_VTBL const 68 #define DECLARE_INTERFACE(iface) typedef struct iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl 69 #else 70 #undef CONST_VTBL 71 #define CONST_VTBL 72 #define DECLARE_INTERFACE(iface) typedef struct iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl 73 #endif 74 #define DECLARE_INTERFACE_(iface,baseiface) DECLARE_INTERFACE(iface) 75 #define DECLARE_INTERFACE_IID_(iface,baseiface,iidiface) DECLARE_INTERFACE(iface) 76 77 #endif 78 79 #define IFACEMETHOD(method) STDMETHOD(method) 80 #define IFACEMETHOD_(type,method) STDMETHOD_(type,method) 81 #define IFACEMETHODV(method) STDMETHODV(method) 82 #define IFACEMETHODV_(type,method) STDMETHODV_(type,method) 83 84 #ifndef FARSTRUCT 85 #define FARSTRUCT 86 #endif 87 88 #ifndef HUGEP 89 #define HUGEP 90 #endif 91 92 #include <stdlib.h> 93 94 #define LISet32(li,v) ((li).HighPart = ((LONG) (v)) < 0 ? -1 : 0,(li).LowPart = (v)) 95 #define ULISet32(li,v) ((li).HighPart = 0,(li).LowPart = (v)) 96 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER) 97 98 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER| CLSCTX_INPROC_HANDLER| CLSCTX_LOCAL_SERVER| CLSCTX_REMOTE_SERVER) 99 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER) 100 101 typedef enum tagREGCLS { 102 REGCLS_SINGLEUSE = 0,REGCLS_MULTIPLEUSE = 1,REGCLS_MULTI_SEPARATE = 2,REGCLS_SUSPENDED = 4,REGCLS_SURROGATE = 8 103 } REGCLS; 104 105 #define MARSHALINTERFACE_MIN 500 106 107 #define CWCSTORAGENAME 32 108 109 #define STGM_DIRECT __MSABI_LONG(0x00000000) 110 #define STGM_TRANSACTED __MSABI_LONG(0x00010000) 111 #define STGM_SIMPLE __MSABI_LONG(0x08000000) 112 113 #define STGM_READ __MSABI_LONG(0x00000000) 114 #define STGM_WRITE __MSABI_LONG(0x00000001) 115 #define STGM_READWRITE __MSABI_LONG(0x00000002) 116 117 #define STGM_SHARE_DENY_NONE __MSABI_LONG(0x00000040) 118 #define STGM_SHARE_DENY_READ __MSABI_LONG(0x00000030) 119 #define STGM_SHARE_DENY_WRITE __MSABI_LONG(0x00000020) 120 #define STGM_SHARE_EXCLUSIVE __MSABI_LONG(0x00000010) 121 122 #define STGM_PRIORITY __MSABI_LONG(0x00040000) 123 #define STGM_DELETEONRELEASE __MSABI_LONG(0x04000000) 124 #define STGM_NOSCRATCH __MSABI_LONG(0x00100000) 125 #define STGM_CREATE __MSABI_LONG(0x00001000) 126 #define STGM_CONVERT __MSABI_LONG(0x00020000) 127 #define STGM_FAILIFTHERE __MSABI_LONG(0x00000000) 128 #define STGM_NOSNAPSHOT __MSABI_LONG(0x00200000) 129 #define STGM_DIRECT_SWMR __MSABI_LONG(0x00400000) 130 131 #define ASYNC_MODE_COMPATIBILITY __MSABI_LONG(0x00000001) 132 #define ASYNC_MODE_DEFAULT __MSABI_LONG(0x00000000) 133 134 #define STGTY_REPEAT __MSABI_LONG(0x00000100) 135 #define STG_TOEND __MSABI_LONG(0xFFFFFFFF) 136 137 #define STG_LAYOUT_SEQUENTIAL __MSABI_LONG(0x00000000) 138 #define STG_LAYOUT_INTERLEAVED __MSABI_LONG(0x00000001) 139 140 #define STGFMT_STORAGE 0 141 #define STGFMT_NATIVE 1 142 #define STGFMT_FILE 3 143 #define STGFMT_ANY 4 144 #define STGFMT_DOCFILE 5 145 146 #define STGFMT_DOCUMENT 0 147 148 #ifndef __IRpcStubBuffer_FWD_DEFINED__ 149 #define __IRpcStubBuffer_FWD_DEFINED__ 150 typedef struct IRpcStubBuffer IRpcStubBuffer; 151 #endif 152 #ifndef __IRpcChannelBuffer_FWD_DEFINED__ 153 #define __IRpcChannelBuffer_FWD_DEFINED__ 154 typedef struct IRpcChannelBuffer IRpcChannelBuffer; 155 #endif 156 157 #include <wtypes.h> 158 #include <unknwn.h> 159 #include <objidl.h> 160 161 #include <guiddef.h> 162 163 #ifndef INITGUID 164 #include <cguid.h> 165 #endif 166 167 #if defined(__cplusplus) && !defined(CINTERFACE) 168 169 extern "C++" { 170 template<typename T> void **IID_PPV_ARGS_Helper(T **iface) { 171 static_cast<IUnknown*>(*iface); 172 return reinterpret_cast<void**>(iface); 173 } 174 } 175 176 #define IID_PPV_ARGS(iface) __uuidof(**(iface)), IID_PPV_ARGS_Helper(iface) 177 178 #endif 179 180 typedef enum tagCOINIT { 181 COINIT_APARTMENTTHREADED = 0x2,COINIT_MULTITHREADED = 0x0,COINIT_DISABLE_OLE1DDE = 0x4,COINIT_SPEED_OVER_MEMORY = 0x8 182 } COINIT; 183 184 WINOLEAPI_(DWORD) CoBuildVersion(VOID); 185 WINOLEAPI CoInitialize(LPVOID pvReserved); 186 WINOLEAPI_(void) CoUninitialize(void); 187 WINOLEAPI CoGetMalloc(DWORD dwMemContext,LPMALLOC *ppMalloc); 188 WINOLEAPI_(DWORD) CoGetCurrentProcess(void); 189 WINOLEAPI CoRegisterMallocSpy(LPMALLOCSPY pMallocSpy); 190 WINOLEAPI CoRevokeMallocSpy(void); 191 WINOLEAPI CoCreateStandardMalloc(DWORD memctx,IMalloc **ppMalloc); 192 WINOLEAPI CoInitializeEx(LPVOID pvReserved,DWORD dwCoInit); 193 WINOLEAPI CoGetCallerTID(LPDWORD lpdwTID); 194 WINOLEAPI CoRegisterInitializeSpy(LPINITIALIZESPY pSpy,ULARGE_INTEGER *puliCookie); 195 WINOLEAPI CoRevokeInitializeSpy(ULARGE_INTEGER uliCookie); 196 WINOLEAPI CoGetContextToken(ULONG_PTR *pToken); 197 198 typedef enum tagCOMSD { 199 SD_LAUNCHPERMISSIONS = 0,SD_ACCESSPERMISSIONS = 1,SD_LAUNCHRESTRICTIONS = 2,SD_ACCESSRESTRICTIONS = 3 200 } COMSD; 201 202 WINOLEAPI CoGetSystemSecurityPermissions(COMSD comSDType,PSECURITY_DESCRIPTOR *ppSD); 203 204 typedef struct tagSOleTlsDataPublic { 205 void *pvReserved0[2]; 206 DWORD dwReserved0[3]; 207 void *pvReserved1[1]; 208 DWORD dwReserved1[3]; 209 void *pvReserved2[4]; 210 DWORD dwReserved2[1]; 211 void *pCurrentCtx; 212 } SOleTlsDataPublic; 213 214 WINOLEAPI CoGetObjectContext(REFIID riid,LPVOID *ppv); 215 WINOLEAPI CoGetClassObject(REFCLSID rclsid,DWORD dwClsContext,LPVOID pvReserved,REFIID riid,LPVOID *ppv); 216 WINOLEAPI CoRegisterClassObject(REFCLSID rclsid,LPUNKNOWN pUnk,DWORD dwClsContext,DWORD flags,LPDWORD lpdwRegister); 217 WINOLEAPI CoRevokeClassObject(DWORD dwRegister); 218 WINOLEAPI CoResumeClassObjects(void); 219 WINOLEAPI CoSuspendClassObjects(void); 220 WINOLEAPI_(ULONG) CoAddRefServerProcess(void); 221 WINOLEAPI_(ULONG) CoReleaseServerProcess(void); 222 WINOLEAPI CoGetPSClsid(REFIID riid,CLSID *pClsid); 223 WINOLEAPI CoRegisterPSClsid(REFIID riid,REFCLSID rclsid); 224 WINOLEAPI CoRegisterSurrogate(LPSURROGATE pSurrogate); 225 WINOLEAPI CoGetMarshalSizeMax(ULONG *pulSize,REFIID riid,LPUNKNOWN pUnk,DWORD dwDestContext,LPVOID pvDestContext,DWORD mshlflags); 226 WINOLEAPI CoMarshalInterface(LPSTREAM pStm,REFIID riid,LPUNKNOWN pUnk,DWORD dwDestContext,LPVOID pvDestContext,DWORD mshlflags); 227 WINOLEAPI CoUnmarshalInterface(LPSTREAM pStm,REFIID riid,LPVOID *ppv); 228 WINOLEAPI CoMarshalHresult(LPSTREAM pstm,HRESULT hresult); 229 WINOLEAPI CoUnmarshalHresult(LPSTREAM pstm,HRESULT *phresult); 230 WINOLEAPI CoReleaseMarshalData(LPSTREAM pStm); 231 WINOLEAPI CoDisconnectObject(LPUNKNOWN pUnk,DWORD dwReserved); 232 WINOLEAPI CoLockObjectExternal(LPUNKNOWN pUnk,WINBOOL fLock,WINBOOL fLastUnlockReleases); 233 WINOLEAPI CoGetStandardMarshal(REFIID riid,LPUNKNOWN pUnk,DWORD dwDestContext,LPVOID pvDestContext,DWORD mshlflags,LPMARSHAL *ppMarshal); 234 WINOLEAPI CoGetStdMarshalEx(LPUNKNOWN pUnkOuter,DWORD smexflags,LPUNKNOWN *ppUnkInner); 235 236 typedef enum tagSTDMSHLFLAGS { 237 SMEXF_SERVER = 0x01,SMEXF_HANDLER = 0x02 238 } STDMSHLFLAGS; 239 240 WINOLEAPI_(WINBOOL) CoIsHandlerConnected(LPUNKNOWN pUnk); 241 WINOLEAPI CoMarshalInterThreadInterfaceInStream(REFIID riid,LPUNKNOWN pUnk,LPSTREAM *ppStm); 242 WINOLEAPI CoGetInterfaceAndReleaseStream(LPSTREAM pStm,REFIID iid,LPVOID *ppv); 243 WINOLEAPI CoCreateFreeThreadedMarshaler(LPUNKNOWN punkOuter,LPUNKNOWN *ppunkMarshal); 244 WINOLEAPI_(HINSTANCE) CoLoadLibrary(LPOLESTR lpszLibName,WINBOOL bAutoFree); 245 WINOLEAPI_(void) CoFreeLibrary(HINSTANCE hInst); 246 WINOLEAPI_(void) CoFreeAllLibraries(void); 247 WINOLEAPI_(void) CoFreeUnusedLibraries(void); 248 WINOLEAPI_(void) CoFreeUnusedLibrariesEx(DWORD dwUnloadDelay,DWORD dwReserved); 249 WINOLEAPI CoInitializeSecurity(PSECURITY_DESCRIPTOR pSecDesc,LONG cAuthSvc,SOLE_AUTHENTICATION_SERVICE *asAuthSvc,void *pReserved1,DWORD dwAuthnLevel,DWORD dwImpLevel,void *pAuthList,DWORD dwCapabilities,void *pReserved3); 250 WINOLEAPI CoGetCallContext(REFIID riid,void **ppInterface); 251 WINOLEAPI CoQueryProxyBlanket(IUnknown *pProxy,DWORD *pwAuthnSvc,DWORD *pAuthzSvc,OLECHAR **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,OLECHAR **pServerPrincName,DWORD *pAuthnLevel,DWORD *pImpLevel,RPC_AUTHZ_HANDLE *pPrivs,DWORD *pCapabilities); 255 WINOLEAPI CoImpersonateClient(); 256 WINOLEAPI CoRevertToSelf(); 257 WINOLEAPI CoQueryAuthenticationServices(DWORD *pcAuthSvc,SOLE_AUTHENTICATION_SERVICE **asAuthSvc); 258 WINOLEAPI CoSwitchCallContext(IUnknown *pNewObject,IUnknown **ppOldObject); 259 260 #define COM_RIGHTS_EXECUTE 1 261 #define COM_RIGHTS_EXECUTE_LOCAL 2 262 #define COM_RIGHTS_EXECUTE_REMOTE 4 263 #define COM_RIGHTS_ACTIVATE_LOCAL 8 264 #define COM_RIGHTS_ACTIVATE_REMOTE 16 265 266 WINOLEAPI CoCreateInstance(REFCLSID rclsid,LPUNKNOWN pUnkOuter,DWORD dwClsContext,REFIID riid,LPVOID *ppv); 267 WINOLEAPI CoGetInstanceFromFile(COSERVERINFO *pServerInfo,CLSID *pClsid,IUnknown *punkOuter,DWORD dwClsCtx,DWORD grfMode,OLECHAR *pwszName,DWORD dwCount,MULTI_QI *pResults); 268 WINOLEAPI CoGetInstanceFromIStorage(COSERVERINFO *pServerInfo,CLSID *pClsid,IUnknown *punkOuter,DWORD dwClsCtx,struct IStorage *pstg,DWORD dwCount,MULTI_QI *pResults); 269 WINOLEAPI CoCreateInstanceEx(REFCLSID Clsid,IUnknown *punkOuter,DWORD dwClsCtx,COSERVERINFO *pServerInfo,DWORD dwCount,MULTI_QI *pResults); 270 WINOLEAPI CoGetCancelObject(DWORD dwThreadId,REFIID iid,void **ppUnk); 271 WINOLEAPI CoSetCancelObject(IUnknown *pUnk); 272 WINOLEAPI CoCancelCall(DWORD dwThreadId,ULONG ulTimeout); 273 WINOLEAPI CoTestCancel(); 274 WINOLEAPI CoEnableCallCancellation(LPVOID pReserved); 275 WINOLEAPI CoDisableCallCancellation(LPVOID pReserved); 276 WINOLEAPI CoAllowSetForegroundWindow(IUnknown *pUnk,LPVOID lpvReserved); 277 WINOLEAPI DcomChannelSetHResult(LPVOID pvReserved,ULONG *pulReserved,HRESULT appsHR); 278 WINOLEAPI StringFromCLSID(REFCLSID rclsid,LPOLESTR *lplpsz); 279 WINOLEAPI CLSIDFromString(LPOLESTR lpsz,LPCLSID pclsid); 280 WINOLEAPI StringFromIID(REFIID rclsid,LPOLESTR *lplpsz); 281 WINOLEAPI IIDFromString(LPOLESTR lpsz,LPIID lpiid); 282 WINOLEAPI_(WINBOOL) CoIsOle1Class(REFCLSID rclsid); 283 WINOLEAPI ProgIDFromCLSID (REFCLSID clsid,LPOLESTR *lplpszProgID); 284 WINOLEAPI CLSIDFromProgID (LPCOLESTR lpszProgID,LPCLSID lpclsid); 285 WINOLEAPI CLSIDFromProgIDEx (LPCOLESTR lpszProgID,LPCLSID lpclsid); 286 WINOLEAPI_(int) StringFromGUID2(REFGUID rguid,LPOLESTR lpsz,int cchMax); 287 WINOLEAPI CoCreateGuid(GUID *pguid); 288 WINOLEAPI_(WINBOOL) CoFileTimeToDosDateTime(FILETIME *lpFileTime,LPWORD lpDosDate,LPWORD lpDosTime); 289 WINOLEAPI_(WINBOOL) CoDosDateTimeToFileTime(WORD nDosDate,WORD nDosTime,FILETIME *lpFileTime); 290 WINOLEAPI CoFileTimeNow(FILETIME *lpFileTime); 291 WINOLEAPI CoRegisterMessageFilter(LPMESSAGEFILTER lpMessageFilter,LPMESSAGEFILTER *lplpMessageFilter); 292 WINOLEAPI CoRegisterChannelHook(REFGUID ExtensionUuid,IChannelHook *pChannelHook); 293 WINOLEAPI CoWaitForMultipleHandles (DWORD dwFlags,DWORD dwTimeout,ULONG cHandles,LPHANDLE pHandles,LPDWORD lpdwindex); 294 295 typedef enum tagCOWAIT_FLAGS { 296 COWAIT_WAITALL = 1,COWAIT_ALERTABLE = 2,COWAIT_INPUTAVAILABLE = 4 297 } COWAIT_FLAGS; 298 299 WINOLEAPI CoInvalidateRemoteMachineBindings(LPOLESTR pszMachineName); 300 WINOLEAPI CoGetTreatAsClass(REFCLSID clsidOld,LPCLSID pClsidNew); 301 WINOLEAPI CoTreatAsClass(REFCLSID clsidOld,REFCLSID clsidNew); 302 303 typedef HRESULT (WINAPI *LPFNGETCLASSOBJECT)(REFCLSID,REFIID,LPVOID *); 304 typedef HRESULT (WINAPI *LPFNCANUNLOADNOW)(void); 305 306 STDAPI DllGetClassObject(REFCLSID rclsid,REFIID riid,LPVOID *ppv); 307 STDAPI DllCanUnloadNow(void); 308 WINOLEAPI_(LPVOID) CoTaskMemAlloc(SIZE_T cb); 309 WINOLEAPI_(LPVOID) CoTaskMemRealloc(LPVOID pv,SIZE_T cb); 310 WINOLEAPI_(void) CoTaskMemFree(LPVOID pv); 311 WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER *ppDAHolder); 312 WINOLEAPI CreateDataCache(LPUNKNOWN pUnkOuter,REFCLSID rclsid,REFIID iid,LPVOID *ppv); 313 WINOLEAPI StgCreateDocfile(const OLECHAR *pwcsName,DWORD grfMode,DWORD reserved,IStorage **ppstgOpen); 314 WINOLEAPI StgCreateDocfileOnILockBytes(ILockBytes *plkbyt,DWORD grfMode,DWORD reserved,IStorage **ppstgOpen); 315 WINOLEAPI StgOpenStorage(const OLECHAR *pwcsName,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstgOpen); 316 WINOLEAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt,IStorage *pstgPriority,DWORD grfMode,SNB snbExclude,DWORD reserved,IStorage **ppstgOpen); 317 WINOLEAPI StgIsStorageFile(const OLECHAR *pwcsName); 318 WINOLEAPI StgIsStorageILockBytes(ILockBytes *plkbyt); 319 WINOLEAPI StgSetTimes(OLECHAR const *lpszName,FILETIME const *pctime,FILETIME const *patime,FILETIME const *pmtime); 320 WINOLEAPI StgOpenAsyncDocfileOnIFillLockBytes(IFillLockBytes *pflb,DWORD grfMode,DWORD asyncFlags,IStorage **ppstgOpen); 321 WINOLEAPI StgGetIFillLockBytesOnILockBytes(ILockBytes *pilb,IFillLockBytes **ppflb); 322 WINOLEAPI StgGetIFillLockBytesOnFile(OLECHAR const *pwcsName,IFillLockBytes **ppflb); 323 WINOLEAPI StgOpenLayoutDocfile(OLECHAR const *pwcsDfName,DWORD grfMode,DWORD reserved,IStorage **ppstgOpen); 324 325 #define STGOPTIONS_VERSION 2 326 327 typedef struct tagSTGOPTIONS { 328 USHORT usVersion; 329 USHORT reserved; 330 ULONG ulSectorSize; 331 const WCHAR *pwcsTemplateFile; 332 } STGOPTIONS; 333 334 WINOLEAPI StgCreateStorageEx (const WCHAR *pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,STGOPTIONS *pStgOptions,void *reserved,REFIID riid,void **ppObjectOpen); 335 WINOLEAPI StgOpenStorageEx (const WCHAR *pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,STGOPTIONS *pStgOptions,void *reserved,REFIID riid,void **ppObjectOpen); 336 WINOLEAPI BindMoniker(LPMONIKER pmk,DWORD grfOpt,REFIID iidResult,LPVOID *ppvResult); 337 WINOLEAPI CoInstall(IBindCtx *pbc,DWORD dwFlags,uCLSSPEC *pClassSpec,QUERYCONTEXT *pQuery,LPWSTR pszCodeBase); 338 WINOLEAPI CoGetObject(LPCWSTR pszName,BIND_OPTS *pBindOptions,REFIID riid,void **ppv); 339 WINOLEAPI MkParseDisplayName(LPBC pbc,LPCOLESTR szUserName,ULONG *pchEaten,LPMONIKER *ppmk); 340 WINOLEAPI MonikerRelativePathTo(LPMONIKER pmkSrc,LPMONIKER pmkDest,LPMONIKER *ppmkRelPath,WINBOOL dwReserved); 341 WINOLEAPI MonikerCommonPrefixWith(LPMONIKER pmkThis,LPMONIKER pmkOther,LPMONIKER *ppmkCommon); 342 WINOLEAPI CreateBindCtx(DWORD reserved,LPBC *ppbc); 343 WINOLEAPI CreateGenericComposite(LPMONIKER pmkFirst,LPMONIKER pmkRest,LPMONIKER *ppmkComposite); 344 WINOLEAPI GetClassFile (LPCOLESTR szFilename,CLSID *pclsid); 345 WINOLEAPI CreateClassMoniker(REFCLSID rclsid,LPMONIKER *ppmk); 346 WINOLEAPI CreateFileMoniker(LPCOLESTR lpszPathName,LPMONIKER *ppmk); 347 WINOLEAPI CreateItemMoniker(LPCOLESTR lpszDelim,LPCOLESTR lpszItem,LPMONIKER *ppmk); 348 WINOLEAPI CreateAntiMoniker(LPMONIKER *ppmk); 349 WINOLEAPI CreatePointerMoniker(LPUNKNOWN punk,LPMONIKER *ppmk); 350 WINOLEAPI CreateObjrefMoniker(LPUNKNOWN punk,LPMONIKER *ppmk); 351 WINOLEAPI GetRunningObjectTable(DWORD reserved,LPRUNNINGOBJECTTABLE *pprot); 352 353 #include <urlmon.h> 354 #include <propidl.h> 355 356 WINOLEAPI CreateStdProgressIndicator(HWND hwndParent,LPCOLESTR pszTitle,IBindStatusCallback *pIbscCaller,IBindStatusCallback **ppIbsc); 357 358 #if (_WIN32_WINNT >= 0x0600) 359 WINOLEAPI CoDisconnectContext(DWORD dwTimeout); 360 #endif /*(_WIN32_WINNT >= 0x0600)*/ 361 #if (_WIN32_WINNT >= 0x0601) 362 363 WINOLEAPI CoGetApartmentType( 364 APTTYPE *pAptType, 365 APTTYPEQUALIFIER *pAptQualifier 366 ); 367 368 #endif /*(_WIN32_WINNT >= 0x0601)*/ 369 370 #ifndef RC_INVOKED 371 #include <poppack.h> 372 #endif 373 #endif 374