master
  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