1/** 2 * This file is part of the mingw-w64 runtime package. 3 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 4 */ 5#include <winapifamily.h> 6 7#include <rpc.h> 8#include <rpcndr.h> 9 10#ifndef _OBJBASE_H_ 11#define _OBJBASE_H_ 12 13#include <pshpack8.h> 14#include <combaseapi.h> 15 16typedef enum tagCOINIT { 17 COINIT_APARTMENTTHREADED = 0x2, 18 COINIT_MULTITHREADED = COINITBASE_MULTITHREADED, 19 COINIT_DISABLE_OLE1DDE = 0x4, 20 COINIT_SPEED_OVER_MEMORY = 0x8 21} COINIT; 22 23#define MARSHALINTERFACE_MIN 500 24#define CWCSTORAGENAME 32 25 26#define STGM_DIRECT __MSABI_LONG(0x00000000) 27#define STGM_TRANSACTED __MSABI_LONG(0x00010000) 28#define STGM_SIMPLE __MSABI_LONG(0x08000000) 29 30#define STGM_READ __MSABI_LONG(0x00000000) 31#define STGM_WRITE __MSABI_LONG(0x00000001) 32#define STGM_READWRITE __MSABI_LONG(0x00000002) 33 34#define STGM_SHARE_DENY_NONE __MSABI_LONG(0x00000040) 35#define STGM_SHARE_DENY_READ __MSABI_LONG(0x00000030) 36#define STGM_SHARE_DENY_WRITE __MSABI_LONG(0x00000020) 37#define STGM_SHARE_EXCLUSIVE __MSABI_LONG(0x00000010) 38 39#define STGM_PRIORITY __MSABI_LONG(0x00040000) 40#define STGM_DELETEONRELEASE __MSABI_LONG(0x04000000) 41#define STGM_NOSCRATCH __MSABI_LONG(0x00100000) 42#define STGM_CREATE __MSABI_LONG(0x00001000) 43#define STGM_CONVERT __MSABI_LONG(0x00020000) 44#define STGM_FAILIFTHERE __MSABI_LONG(0x00000000) 45#define STGM_NOSNAPSHOT __MSABI_LONG(0x00200000) 46#define STGM_DIRECT_SWMR __MSABI_LONG(0x00400000) 47 48#define ASYNC_MODE_COMPATIBILITY __MSABI_LONG(0x00000001) 49#define ASYNC_MODE_DEFAULT __MSABI_LONG(0x00000000) 50 51#define STGTY_REPEAT __MSABI_LONG(0x00000100) 52#define STG_TOEND __MSABI_LONG(0xffffffff) 53 54#define STG_LAYOUT_SEQUENTIAL __MSABI_LONG(0x00000000) 55#define STG_LAYOUT_INTERLEAVED __MSABI_LONG(0x00000001) 56 57typedef DWORD STGFMT; 58 59#define STGFMT_STORAGE 0 60#define STGFMT_NATIVE 1 61#define STGFMT_FILE 3 62#define STGFMT_ANY 4 63#define STGFMT_DOCFILE 5 64#define STGFMT_DOCUMENT 0 65 66#include <objidl.h> 67 68#ifdef _OLE32_ 69#ifdef _OLE32PRIV_ 70WINBOOL _fastcall wIsEqualGUID (REFGUID rguid1, REFGUID rguid2); 71 72#define IsEqualGUID(rguid1, rguid2) wIsEqualGUID (rguid1, rguid2) 73#else 74#define __INLINE_ISEQUAL_GUID 75#endif 76#endif 77 78#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) 79WINOLEAPI_(DWORD) CoBuildVersion (VOID); 80WINOLEAPI CoInitialize (LPVOID pvReserved); 81WINOLEAPI CoRegisterMallocSpy (LPMALLOCSPY pMallocSpy); 82WINOLEAPI CoRevokeMallocSpy (void); 83WINOLEAPI CoCreateStandardMalloc (DWORD memctx, IMalloc **ppMalloc); 84WINOLEAPI CoRegisterInitializeSpy (LPINITIALIZESPY pSpy, ULARGE_INTEGER *puliCookie); 85WINOLEAPI CoRevokeInitializeSpy (ULARGE_INTEGER uliCookie); 86 87typedef enum tagCOMSD { 88 SD_LAUNCHPERMISSIONS = 0, 89 SD_ACCESSPERMISSIONS = 1, 90 SD_LAUNCHRESTRICTIONS = 2, 91 SD_ACCESSRESTRICTIONS = 3 92} COMSD; 93 94WINOLEAPI CoGetSystemSecurityPermissions (COMSD comSDType, PSECURITY_DESCRIPTOR *ppSD); 95WINOLEAPI_(HINSTANCE) CoLoadLibrary (LPOLESTR lpszLibName, WINBOOL bAutoFree); 96WINOLEAPI_(void) CoFreeLibrary (HINSTANCE hInst); 97WINOLEAPI_(void) CoFreeAllLibraries (void); 98WINOLEAPI CoGetInstanceFromFile (COSERVERINFO *pServerInfo, CLSID *pClsid, IUnknown *punkOuter, DWORD dwClsCtx, DWORD grfMode, OLECHAR *pwszName, DWORD dwCount, MULTI_QI *pResults); 99WINOLEAPI CoGetInstanceFromIStorage (COSERVERINFO *pServerInfo, CLSID *pClsid, IUnknown *punkOuter, DWORD dwClsCtx, struct IStorage *pstg, DWORD dwCount, MULTI_QI *pResults); 100WINOLEAPI CoAllowSetForegroundWindow (IUnknown *pUnk, LPVOID lpvReserved); 101WINOLEAPI DcomChannelSetHResult (LPVOID pvReserved, ULONG *pulReserved, HRESULT appsHR); 102WINOLEAPI_(WINBOOL) CoIsOle1Class (REFCLSID rclsid); 103WINOLEAPI CLSIDFromProgIDEx (LPCOLESTR lpszProgID, LPCLSID lpclsid); 104WINOLEAPI_(WINBOOL) CoFileTimeToDosDateTime (FILETIME *lpFileTime, LPWORD lpDosDate, LPWORD lpDosTime); 105WINOLEAPI_(WINBOOL) CoDosDateTimeToFileTime (WORD nDosDate, WORD nDosTime, FILETIME *lpFileTime); 106WINOLEAPI CoFileTimeNow (FILETIME *lpFileTime); 107WINOLEAPI CoRegisterMessageFilter (LPMESSAGEFILTER lpMessageFilter, LPMESSAGEFILTER *lplpMessageFilter); 108WINOLEAPI CoRegisterChannelHook (REFGUID ExtensionUuid, IChannelHook *pChannelHook); 109WINOLEAPI CoTreatAsClass (REFCLSID clsidOld, REFCLSID clsidNew); 110WINOLEAPI CreateDataAdviseHolder (LPDATAADVISEHOLDER *ppDAHolder); 111WINOLEAPI CreateDataCache (LPUNKNOWN pUnkOuter, REFCLSID rclsid, REFIID iid, LPVOID *ppv); 112WINOLEAPI StgOpenLayoutDocfile (OLECHAR const *pwcsDfName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen); 113#endif 114 115#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) 116WINOLEAPI StgCreateDocfile (const WCHAR *pwcsName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen); 117WINOLEAPI StgCreateDocfileOnILockBytes (ILockBytes *plkbyt, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen); 118WINOLEAPI StgOpenStorage (const WCHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen); 119WINOLEAPI StgOpenStorageOnILockBytes (ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen); 120WINOLEAPI StgIsStorageFile (const WCHAR *pwcsName); 121WINOLEAPI StgIsStorageILockBytes (ILockBytes *plkbyt); 122WINOLEAPI StgSetTimes (const WCHAR *lpszName, const FILETIME *pctime, const FILETIME *patime, const FILETIME *pmtime); 123WINOLEAPI StgOpenAsyncDocfileOnIFillLockBytes (IFillLockBytes *pflb, DWORD grfMode, DWORD asyncFlags, IStorage **ppstgOpen); 124WINOLEAPI StgGetIFillLockBytesOnILockBytes (ILockBytes *pilb, IFillLockBytes **ppflb); 125WINOLEAPI StgGetIFillLockBytesOnFile (OLECHAR const *pwcsName, IFillLockBytes **ppflb); 126#endif 127 128#define STGOPTIONS_VERSION 2 129 130typedef struct tagSTGOPTIONS { 131 USHORT usVersion; 132 USHORT reserved; 133 ULONG ulSectorSize; 134#if STGOPTIONS_VERSION >= 2 135 const WCHAR *pwcsTemplateFile; 136#endif 137} STGOPTIONS; 138 139#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) 140WINOLEAPI StgCreateStorageEx (const WCHAR *pwcsName, DWORD grfMode, DWORD stgfmt, DWORD grfAttrs, STGOPTIONS *pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, REFIID riid, void **ppObjectOpen); 141WINOLEAPI StgOpenStorageEx (const WCHAR *pwcsName, DWORD grfMode, DWORD stgfmt, DWORD grfAttrs, STGOPTIONS *pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, REFIID riid, void **ppObjectOpen); 142WINOLEAPI BindMoniker (LPMONIKER pmk, DWORD grfOpt, REFIID iidResult, LPVOID *ppvResult); 143WINOLEAPI CoGetObject (LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, void **ppv); 144WINOLEAPI MkParseDisplayName (LPBC pbc, LPCOLESTR szUserName, ULONG *pchEaten, LPMONIKER *ppmk); 145WINOLEAPI MonikerRelativePathTo (LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER *ppmkRelPath, WINBOOL dwReserved); 146WINOLEAPI MonikerCommonPrefixWith (LPMONIKER pmkThis, LPMONIKER pmkOther, LPMONIKER *ppmkCommon); 147WINOLEAPI CreateBindCtx (DWORD reserved, LPBC *ppbc); 148WINOLEAPI CreateGenericComposite (LPMONIKER pmkFirst, LPMONIKER pmkRest, LPMONIKER *ppmkComposite); 149WINOLEAPI GetClassFile (LPCOLESTR szFilename, CLSID *pclsid); 150WINOLEAPI CreateClassMoniker (REFCLSID rclsid, LPMONIKER *ppmk); 151WINOLEAPI CreateFileMoniker (LPCOLESTR lpszPathName, LPMONIKER *ppmk); 152WINOLEAPI CreateItemMoniker (LPCOLESTR lpszDelim, LPCOLESTR lpszItem, LPMONIKER *ppmk); 153WINOLEAPI CreateAntiMoniker (LPMONIKER *ppmk); 154WINOLEAPI CreatePointerMoniker (LPUNKNOWN punk, LPMONIKER *ppmk); 155WINOLEAPI CreateObjrefMoniker (LPUNKNOWN punk, LPMONIKER *ppmk); 156#endif 157 158#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) 159WINOLEAPI CoInstall (IBindCtx *pbc, DWORD dwFlags, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, LPWSTR pszCodeBase); 160WINOLEAPI GetRunningObjectTable (DWORD reserved, LPRUNNINGOBJECTTABLE *pprot); 161#endif 162 163#include <urlmon.h> 164#include <propidl.h> 165 166#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) 167WINOLEAPI CreateStdProgressIndicator (HWND hwndParent, LPCOLESTR pszTitle, IBindStatusCallback *pIbscCaller, IBindStatusCallback **ppIbsc); 168#endif 169 170#ifndef RC_INVOKED 171#include <poppack.h> 172#endif 173#endif 174