Home | History | Annotate | Download | only in include
      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