| 1 |
/***********************************************************************\ |
|---|
| 2 |
* objbase.d * |
|---|
| 3 |
* * |
|---|
| 4 |
* Windows API header module * |
|---|
| 5 |
* * |
|---|
| 6 |
* Translated from MinGW Windows headers * |
|---|
| 7 |
* * |
|---|
| 8 |
* Placed into public domain * |
|---|
| 9 |
\***********************************************************************/ |
|---|
| 10 |
module win32.objbase; |
|---|
| 11 |
pragma(lib, "ole32.lib"); |
|---|
| 12 |
|
|---|
| 13 |
import win32.cguid, win32.objidl, win32.unknwn, win32.wtypes; |
|---|
| 14 |
private import win32.basetyps, win32.objfwd, win32.rpcdce, win32.winbase, |
|---|
| 15 |
win32.windef; |
|---|
| 16 |
|
|---|
| 17 |
// DAC: Not needed for D? |
|---|
| 18 |
//MACRO #define LISet32(li, v) ((li).HighPart=(v)<0?-1:0, (li).LowPart=(v)) |
|---|
| 19 |
//MACRO #define ULISet32(li, v) ((li).HighPart=0, (li).LowPart=(v)) |
|---|
| 20 |
|
|---|
| 21 |
const CLSCTX_ALL = CLSCTX.CLSCTX_INPROC_SERVER|CLSCTX.CLSCTX_INPROC_HANDLER|CLSCTX.CLSCTX_LOCAL_SERVER; |
|---|
| 22 |
const CLSCTX_INPROC = CLSCTX.CLSCTX_INPROC_SERVER|CLSCTX.CLSCTX_INPROC_HANDLER; |
|---|
| 23 |
const CLSCTX_SERVER = CLSCTX.CLSCTX_INPROC_SERVER|CLSCTX.CLSCTX_LOCAL_SERVER|CLSCTX.CLSCTX_REMOTE_SERVER; |
|---|
| 24 |
const MARSHALINTERFACE_MIN=500; |
|---|
| 25 |
const CWCSTORAGENAME=32; |
|---|
| 26 |
|
|---|
| 27 |
const STGM_DIRECT = 0; |
|---|
| 28 |
const STGM_TRANSACTED = 0x10000L; |
|---|
| 29 |
const STGM_SIMPLE = 0x8000000L; |
|---|
| 30 |
const STGM_READ = 0; |
|---|
| 31 |
const STGM_WRITE = 1; |
|---|
| 32 |
const STGM_READWRITE = 2; |
|---|
| 33 |
const STGM_SHARE_DENY_NONE = 0x40; |
|---|
| 34 |
const STGM_SHARE_DENY_READ = 0x30; |
|---|
| 35 |
const STGM_SHARE_DENY_WRITE = 0x20; |
|---|
| 36 |
const STGM_SHARE_EXCLUSIVE = 0x10; |
|---|
| 37 |
const STGM_PRIORITY = 0x40000L; |
|---|
| 38 |
const STGM_DELETEONRELEASE = 0x4000000; |
|---|
| 39 |
const STGM_NOSCRATCH = 0x100000; |
|---|
| 40 |
const STGM_CREATE = 0x1000; |
|---|
| 41 |
const STGM_CONVERT = 0x20000; |
|---|
| 42 |
const STGM_NOSNAPSHOT = 0x200000; |
|---|
| 43 |
const STGM_FAILIFTHERE = 0; |
|---|
| 44 |
|
|---|
| 45 |
const ASYNC_MODE_COMPATIBILITY = 1; |
|---|
| 46 |
const ASYNC_MODE_DEFAULT = 0; |
|---|
| 47 |
|
|---|
| 48 |
const STGTY_REPEAT = 256; |
|---|
| 49 |
const STG_TOEND = 0xFFFFFFFF; |
|---|
| 50 |
const STG_LAYOUT_SEQUENTIAL = 0; |
|---|
| 51 |
const STG_LAYOUT_INTERLEAVED = 1; |
|---|
| 52 |
|
|---|
| 53 |
const COM_RIGHTS_EXECUTE = 1; |
|---|
| 54 |
const COM_RIGHTS_SAFE_FOR_SCRIPTING = 2; |
|---|
| 55 |
|
|---|
| 56 |
const STGOPTIONS_VERSION = 2; |
|---|
| 57 |
|
|---|
| 58 |
enum STGFMT { |
|---|
| 59 |
STGFMT_STORAGE = 0, |
|---|
| 60 |
STGFMT_FILE = 3, |
|---|
| 61 |
STGFMT_ANY = 4, |
|---|
| 62 |
STGFMT_DOCFILE = 5 |
|---|
| 63 |
} |
|---|
| 64 |
|
|---|
| 65 |
struct STGOPTIONS { |
|---|
| 66 |
USHORT usVersion; |
|---|
| 67 |
USHORT reserved; |
|---|
| 68 |
ULONG ulSectorSize; |
|---|
| 69 |
CPtr!(WCHAR) pwcsTemplateFile; |
|---|
| 70 |
} |
|---|
| 71 |
|
|---|
| 72 |
enum REGCLS { |
|---|
| 73 |
REGCLS_SINGLEUSE = 0, |
|---|
| 74 |
REGCLS_MULTIPLEUSE = 1, |
|---|
| 75 |
REGCLS_MULTI_SEPARATE = 2 |
|---|
| 76 |
} |
|---|
| 77 |
|
|---|
| 78 |
/* |
|---|
| 79 |
BOOL IsEqualGUID(GUID rguid1, GUID rguid2) { |
|---|
| 80 |
return rguid1 == rguid2; |
|---|
| 81 |
} |
|---|
| 82 |
*/ |
|---|
| 83 |
|
|---|
| 84 |
extern (Windows) BOOL IsEqualGUID( |
|---|
| 85 |
REFGUID rguid1, |
|---|
| 86 |
REFGUID rguid2 |
|---|
| 87 |
); |
|---|
| 88 |
|
|---|
| 89 |
alias IsEqualGUID IsEqualIID; |
|---|
| 90 |
alias IsEqualGUID IsEqualCLSID; |
|---|
| 91 |
|
|---|
| 92 |
enum COINIT { |
|---|
| 93 |
COINIT_APARTMENTTHREADED = 2, |
|---|
| 94 |
COINIT_MULTITHREADED = 0, |
|---|
| 95 |
COINIT_DISABLE_OLE1DDE = 4, |
|---|
| 96 |
COINIT_SPEED_OVER_MEMORY = 8 |
|---|
| 97 |
} |
|---|
| 98 |
|
|---|
| 99 |
enum STDMSHLFLAGS { |
|---|
| 100 |
SMEXF_SERVER = 1, |
|---|
| 101 |
SMEXF_HANDLER |
|---|
| 102 |
} |
|---|
| 103 |
|
|---|
| 104 |
extern(Windows) { |
|---|
| 105 |
alias HRESULT function(REFCLSID, REFIID, PVOID*) LPFNGETCLASSOBJECT; |
|---|
| 106 |
alias HRESULT function() LPFNCANUNLOADNOW; |
|---|
| 107 |
|
|---|
| 108 |
DWORD CoBuildVersion(); |
|---|
| 109 |
HRESULT CoInitialize(PVOID); |
|---|
| 110 |
HRESULT CoInitializeEx(LPVOID, DWORD); |
|---|
| 111 |
void CoUninitialize(); |
|---|
| 112 |
HRESULT CoGetMalloc(DWORD, LPMALLOC*); |
|---|
| 113 |
DWORD CoGetCurrentProcess(); |
|---|
| 114 |
HRESULT CoRegisterMallocSpy(LPMALLOCSPY); |
|---|
| 115 |
HRESULT CoRevokeMallocSpy(); |
|---|
| 116 |
HRESULT CoCreateStandardMalloc(DWORD, IMalloc**); |
|---|
| 117 |
//#ifdef DBG |
|---|
| 118 |
ULONG DebugCoGetRpcFault(); |
|---|
| 119 |
void DebugCoSetRpcFault(ULONG); |
|---|
| 120 |
//#endif |
|---|
| 121 |
HRESULT CoGetClassObject(REFCLSID, DWORD, COSERVERINFO*, REFIID, PVOID*); |
|---|
| 122 |
HRESULT CoRegisterClassObject(REFCLSID, LPUNKNOWN, DWORD, DWORD, PDWORD); |
|---|
| 123 |
HRESULT CoRevokeClassObject(DWORD); |
|---|
| 124 |
HRESULT CoGetMarshalSizeMax(ULONG*, REFIID, LPUNKNOWN, DWORD, PVOID, DWORD); |
|---|
| 125 |
HRESULT CoMarshalInterface(LPSTREAM, REFIID, LPUNKNOWN, DWORD, PVOID, DWORD); |
|---|
| 126 |
HRESULT CoUnmarshalInterface(LPSTREAM, REFIID, PVOID*); |
|---|
| 127 |
HRESULT CoMarshalHresult(LPSTREAM, HRESULT); |
|---|
| 128 |
HRESULT CoUnmarshalHresult(LPSTREAM, HRESULT*); |
|---|
| 129 |
HRESULT CoReleaseMarshalData(LPSTREAM); |
|---|
| 130 |
HRESULT CoDisconnectObject(LPUNKNOWN, DWORD); |
|---|
| 131 |
HRESULT CoLockObjectExternal(LPUNKNOWN, BOOL, BOOL); |
|---|
| 132 |
HRESULT CoGetStandardMarshal(REFIID, LPUNKNOWN, DWORD, PVOID, DWORD, LPMARSHAL*); |
|---|
| 133 |
HRESULT CoGetStdMarshalEx(LPUNKNOWN, DWORD, LPUNKNOWN*); |
|---|
| 134 |
BOOL CoIsHandlerConnected(LPUNKNOWN); |
|---|
| 135 |
BOOL CoHasStrongExternalConnections(LPUNKNOWN); |
|---|
| 136 |
HRESULT CoMarshalInterThreadInterfaceInStream(REFIID, LPUNKNOWN, LPSTREAM*); |
|---|
| 137 |
HRESULT CoGetInterfaceAndReleaseStream(LPSTREAM, REFIID, PVOID*); |
|---|
| 138 |
HRESULT CoCreateFreeThreadedMarshaler(LPUNKNOWN, LPUNKNOWN*); |
|---|
| 139 |
HINSTANCE CoLoadLibrary(LPOLESTR, BOOL); |
|---|
| 140 |
void CoFreeLibrary(HINSTANCE); |
|---|
| 141 |
void CoFreeAllLibraries(); |
|---|
| 142 |
void CoFreeUnusedLibraries(); |
|---|
| 143 |
HRESULT CoCreateInstance(REFCLSID, LPUNKNOWN, DWORD, REFIID, PVOID*); |
|---|
| 144 |
HRESULT CoCreateInstanceEx(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); |
|---|
| 145 |
HRESULT StringFromCLSID(REFCLSID, LPOLESTR*); |
|---|
| 146 |
HRESULT CLSIDFromString(LPOLESTR, LPCLSID); |
|---|
| 147 |
HRESULT StringFromIID(REFIID, LPOLESTR*); |
|---|
| 148 |
HRESULT IIDFromString(LPOLESTR, LPIID); |
|---|
| 149 |
BOOL CoIsOle1Class(REFCLSID); |
|---|
| 150 |
HRESULT ProgIDFromCLSID(REFCLSID, LPOLESTR*); |
|---|
| 151 |
HRESULT CLSIDFromProgID(LPCOLESTR, LPCLSID); |
|---|
| 152 |
int StringFromGUID2(REFGUID, LPOLESTR, int); |
|---|
| 153 |
HRESULT CoCreateGuid(GUID*); |
|---|
| 154 |
BOOL CoFileTimeToDosDateTime(FILETIME*, LPWORD, LPWORD); |
|---|
| 155 |
BOOL CoDosDateTimeToFileTime(WORD, WORD, FILETIME*); |
|---|
| 156 |
HRESULT CoFileTimeNow(FILETIME*); |
|---|
| 157 |
HRESULT CoRegisterMessageFilter(LPMESSAGEFILTER, LPMESSAGEFILTER*); |
|---|
| 158 |
HRESULT CoGetTreatAsClass(REFCLSID, LPCLSID); |
|---|
| 159 |
HRESULT CoTreatAsClass(REFCLSID, REFCLSID); |
|---|
| 160 |
HRESULT DllGetClassObject(REFCLSID, REFIID, PVOID*); |
|---|
| 161 |
HRESULT DllCanUnloadNow(); |
|---|
| 162 |
PVOID CoTaskMemAlloc(ULONG); |
|---|
| 163 |
PVOID CoTaskMemRealloc(PVOID, ULONG); |
|---|
| 164 |
void CoTaskMemFree(PVOID); |
|---|
| 165 |
HRESULT CreateDataAdviseHolder(LPDATAADVISEHOLDER*); |
|---|
| 166 |
HRESULT CreateDataCache(LPUNKNOWN, REFCLSID, REFIID, PVOID*); |
|---|
| 167 |
HRESULT StgCreateDocfile(CPtr!(OLECHAR), DWORD, DWORD, IStorage**); |
|---|
| 168 |
HRESULT StgCreateDocfileOnILockBytes(ILockBytes*, DWORD, DWORD, IStorage**); |
|---|
| 169 |
HRESULT StgOpenStorage(CPtr!(OLECHAR), IStorage, DWORD, SNB, DWORD, IStorage*); |
|---|
| 170 |
HRESULT StgOpenStorageOnILockBytes(ILockBytes*, IStorage*, DWORD, SNB, DWORD, IStorage**); |
|---|
| 171 |
HRESULT StgIsStorageFile(CPtr!(OLECHAR)); |
|---|
| 172 |
HRESULT StgIsStorageILockBytes(ILockBytes*); |
|---|
| 173 |
HRESULT StgSetTimes(OLECHAR *, FILETIME *, FILETIME *, FILETIME *); |
|---|
| 174 |
HRESULT StgCreateStorageEx(CPtr!(WCHAR), DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); |
|---|
| 175 |
HRESULT StgOpenStorageEx(CPtr!(WCHAR), DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); |
|---|
| 176 |
HRESULT BindMoniker(LPMONIKER, DWORD, REFIID, PVOID*); |
|---|
| 177 |
HRESULT CoGetObject(LPCWSTR, BIND_OPTS*, REFIID, void**); |
|---|
| 178 |
HRESULT MkParseDisplayName(LPBC, LPCOLESTR, ULONG*, LPMONIKER*); |
|---|
| 179 |
HRESULT MonikerRelativePathTo(LPMONIKER, LPMONIKER, LPMONIKER*, BOOL); |
|---|
| 180 |
HRESULT MonikerCommonPrefixWith(LPMONIKER, LPMONIKER, LPMONIKER*); |
|---|
| 181 |
HRESULT CreateBindCtx(DWORD, LPBC*); |
|---|
| 182 |
HRESULT CreateGenericComposite(LPMONIKER, LPMONIKER, LPMONIKER*); |
|---|
| 183 |
HRESULT GetClassFile (LPCOLESTR, CLSID*); |
|---|
| 184 |
HRESULT CreateFileMoniker(LPCOLESTR, LPMONIKER*); |
|---|
| 185 |
HRESULT CreateItemMoniker(LPCOLESTR, LPCOLESTR, LPMONIKER*); |
|---|
| 186 |
HRESULT CreateAntiMoniker(LPMONIKER*); |
|---|
| 187 |
HRESULT CreatePointerMoniker(LPUNKNOWN, LPMONIKER*); |
|---|
| 188 |
HRESULT GetRunningObjectTable(DWORD, LPRUNNINGOBJECTTABLE*); |
|---|
| 189 |
HRESULT CoInitializeSecurity(PSECURITY_DESCRIPTOR, LONG, SOLE_AUTHENTICATION_SERVICE*, void*, DWORD, DWORD, void*, DWORD, void*); |
|---|
| 190 |
HRESULT CoGetCallContext(REFIID, void**); |
|---|
| 191 |
HRESULT CoQueryProxyBlanket(IUnknown*, DWORD*, DWORD*, OLECHAR**, DWORD*, DWORD*, RPC_AUTH_IDENTITY_HANDLE*, DWORD*); |
|---|
| 192 |
HRESULT CoSetProxyBlanket(IUnknown*, DWORD, DWORD, OLECHAR*, DWORD, DWORD, RPC_AUTH_IDENTITY_HANDLE, DWORD); |
|---|
| 193 |
HRESULT CoCopyProxy(IUnknown*, IUnknown**); |
|---|
| 194 |
HRESULT CoQueryClientBlanket(DWORD*, DWORD*, OLECHAR**, DWORD*, DWORD*, RPC_AUTHZ_HANDLE*, DWORD*); |
|---|
| 195 |
HRESULT CoImpersonateClient(); |
|---|
| 196 |
HRESULT CoRevertToSelf(); |
|---|
| 197 |
HRESULT CoQueryAuthenticationServices(DWORD*, SOLE_AUTHENTICATION_SERVICE**); |
|---|
| 198 |
HRESULT CoSwitchCallContext(IUnknown*, IUnknown**); |
|---|
| 199 |
HRESULT CoGetInstanceFromFile(COSERVERINFO*, CLSID*, IUnknown*, DWORD, DWORD, OLECHAR*, DWORD, MULTI_QI*); |
|---|
| 200 |
HRESULT CoGetInstanceFromIStorage(COSERVERINFO*, CLSID*, IUnknown*, DWORD, IStorage*, DWORD, MULTI_QI*); |
|---|
| 201 |
ULONG CoAddRefServerProcess(); |
|---|
| 202 |
ULONG CoReleaseServerProcess(); |
|---|
| 203 |
HRESULT CoResumeClassObjects(); |
|---|
| 204 |
HRESULT CoSuspendClassObjects(); |
|---|
| 205 |
HRESULT CoGetPSClsid(REFIID, CLSID*); |
|---|
| 206 |
HRESULT CoRegisterPSClsid(REFIID, REFCLSID); |
|---|
| 207 |
} |
|---|