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 16 typedef 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 57 typedef 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_ 70 WINBOOL _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) 79 WINOLEAPI_(DWORD) CoBuildVersion (VOID); 80 WINOLEAPI CoInitialize (LPVOID pvReserved); 81 WINOLEAPI CoRegisterMallocSpy (LPMALLOCSPY pMallocSpy); 82 WINOLEAPI CoRevokeMallocSpy (void); 83 WINOLEAPI CoCreateStandardMalloc (DWORD memctx, IMalloc **ppMalloc); 84 WINOLEAPI CoRegisterInitializeSpy (LPINITIALIZESPY pSpy, ULARGE_INTEGER *puliCookie); 85 WINOLEAPI CoRevokeInitializeSpy (ULARGE_INTEGER uliCookie); 86 87 typedef enum tagCOMSD { 88 SD_LAUNCHPERMISSIONS = 0, 89 SD_ACCESSPERMISSIONS = 1, 90 SD_LAUNCHRESTRICTIONS = 2, 91 SD_ACCESSRESTRICTIONS = 3 92 } COMSD; 93 94 WINOLEAPI CoGetSystemSecurityPermissions (COMSD comSDType, PSECURITY_DESCRIPTOR *ppSD); 95 WINOLEAPI_(HINSTANCE) CoLoadLibrary (LPOLESTR lpszLibName, WINBOOL bAutoFree); 96 WINOLEAPI_(void) CoFreeLibrary (HINSTANCE hInst); 97 WINOLEAPI_(void) CoFreeAllLibraries (void); 98 WINOLEAPI CoGetInstanceFromFile (COSERVERINFO *pServerInfo, CLSID *pClsid, IUnknown *punkOuter, DWORD dwClsCtx, DWORD grfMode, OLECHAR *pwszName, DWORD dwCount, MULTI_QI *pResults); 99 WINOLEAPI CoGetInstanceFromIStorage (COSERVERINFO *pServerInfo, CLSID *pClsid, IUnknown *punkOuter, DWORD dwClsCtx, struct IStorage *pstg, DWORD dwCount, MULTI_QI *pResults); 100 WINOLEAPI CoAllowSetForegroundWindow (IUnknown *pUnk, LPVOID lpvReserved); 101 WINOLEAPI DcomChannelSetHResult (LPVOID pvReserved, ULONG *pulReserved, HRESULT appsHR); 102 WINOLEAPI_(WINBOOL) CoIsOle1Class (REFCLSID rclsid); 103 WINOLEAPI CLSIDFromProgIDEx (LPCOLESTR lpszProgID, LPCLSID lpclsid); 104 WINOLEAPI_(WINBOOL) CoFileTimeToDosDateTime (FILETIME *lpFileTime, LPWORD lpDosDate, LPWORD lpDosTime); 105 WINOLEAPI_(WINBOOL) CoDosDateTimeToFileTime (WORD nDosDate, WORD nDosTime, FILETIME *lpFileTime); 106 WINOLEAPI CoFileTimeNow (FILETIME *lpFileTime); 107 WINOLEAPI CoRegisterMessageFilter (LPMESSAGEFILTER lpMessageFilter, LPMESSAGEFILTER *lplpMessageFilter); 108 WINOLEAPI CoRegisterChannelHook (REFGUID ExtensionUuid, IChannelHook *pChannelHook); 109 WINOLEAPI CoTreatAsClass (REFCLSID clsidOld, REFCLSID clsidNew); 110 WINOLEAPI CreateDataAdviseHolder (LPDATAADVISEHOLDER *ppDAHolder); 111 WINOLEAPI CreateDataCache (LPUNKNOWN pUnkOuter, REFCLSID rclsid, REFIID iid, LPVOID *ppv); 112 WINOLEAPI StgOpenLayoutDocfile (OLECHAR const *pwcsDfName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen); 113 #endif 114 115 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) 116 WINOLEAPI StgCreateDocfile (const WCHAR *pwcsName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen); 117 WINOLEAPI StgCreateDocfileOnILockBytes (ILockBytes *plkbyt, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen); 118 WINOLEAPI StgOpenStorage (const WCHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen); 119 WINOLEAPI StgOpenStorageOnILockBytes (ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen); 120 WINOLEAPI StgIsStorageFile (const WCHAR *pwcsName); 121 WINOLEAPI StgIsStorageILockBytes (ILockBytes *plkbyt); 122 WINOLEAPI StgSetTimes (const WCHAR *lpszName, const FILETIME *pctime, const FILETIME *patime, const FILETIME *pmtime); 123 WINOLEAPI StgOpenAsyncDocfileOnIFillLockBytes (IFillLockBytes *pflb, DWORD grfMode, DWORD asyncFlags, IStorage **ppstgOpen); 124 WINOLEAPI StgGetIFillLockBytesOnILockBytes (ILockBytes *pilb, IFillLockBytes **ppflb); 125 WINOLEAPI StgGetIFillLockBytesOnFile (OLECHAR const *pwcsName, IFillLockBytes **ppflb); 126 #endif 127 128 #define STGOPTIONS_VERSION 2 129 130 typedef 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) 140 WINOLEAPI StgCreateStorageEx (const WCHAR *pwcsName, DWORD grfMode, DWORD stgfmt, DWORD grfAttrs, STGOPTIONS *pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, REFIID riid, void **ppObjectOpen); 141 WINOLEAPI StgOpenStorageEx (const WCHAR *pwcsName, DWORD grfMode, DWORD stgfmt, DWORD grfAttrs, STGOPTIONS *pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, REFIID riid, void **ppObjectOpen); 142 WINOLEAPI BindMoniker (LPMONIKER pmk, DWORD grfOpt, REFIID iidResult, LPVOID *ppvResult); 143 WINOLEAPI CoGetObject (LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, void **ppv); 144 WINOLEAPI MkParseDisplayName (LPBC pbc, LPCOLESTR szUserName, ULONG *pchEaten, LPMONIKER *ppmk); 145 WINOLEAPI MonikerRelativePathTo (LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER *ppmkRelPath, WINBOOL dwReserved); 146 WINOLEAPI MonikerCommonPrefixWith (LPMONIKER pmkThis, LPMONIKER pmkOther, LPMONIKER *ppmkCommon); 147 WINOLEAPI CreateBindCtx (DWORD reserved, LPBC *ppbc); 148 WINOLEAPI CreateGenericComposite (LPMONIKER pmkFirst, LPMONIKER pmkRest, LPMONIKER *ppmkComposite); 149 WINOLEAPI GetClassFile (LPCOLESTR szFilename, CLSID *pclsid); 150 WINOLEAPI CreateClassMoniker (REFCLSID rclsid, LPMONIKER *ppmk); 151 WINOLEAPI CreateFileMoniker (LPCOLESTR lpszPathName, LPMONIKER *ppmk); 152 WINOLEAPI CreateItemMoniker (LPCOLESTR lpszDelim, LPCOLESTR lpszItem, LPMONIKER *ppmk); 153 WINOLEAPI CreateAntiMoniker (LPMONIKER *ppmk); 154 WINOLEAPI CreatePointerMoniker (LPUNKNOWN punk, LPMONIKER *ppmk); 155 WINOLEAPI CreateObjrefMoniker (LPUNKNOWN punk, LPMONIKER *ppmk); 156 #endif 157 158 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) 159 WINOLEAPI CoInstall (IBindCtx *pbc, DWORD dwFlags, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, LPWSTR pszCodeBase); 160 WINOLEAPI 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) 167 WINOLEAPI 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