blob: 1a49ea51cd4750b5e674e637cb323c79569950bb [file] [log] [blame]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC src/core/sys/windows/_ole.d)
*/
module core.sys.windows.ole;
version (Windows):
@system:
pragma(lib, "ole32");
import core.sys.windows.windef, core.sys.windows.wingdi, core.sys.windows.uuid;
alias LPCSTR OLE_LPCSTR;
/+#define LRESULT LONG
#define HGLOBAL HANDLE+/
enum {
OT_LINK = 1,
OT_EMBEDDED,
OT_STATIC
}
enum OLEVERB_PRIMARY = 0;
enum OF_SET = 1;
enum OF_GET = 2;
enum OF_HANDLER = 4;
struct OLETARGETDEVICE {
USHORT otdDeviceNameOffset;
USHORT otdDriverNameOffset;
USHORT otdPortNameOffset;
USHORT otdExtDevmodeOffset;
USHORT otdExtDevmodeSize;
USHORT otdEnvironmentOffset;
USHORT otdEnvironmentSize;
BYTE _otdData;
BYTE* otdData() return { return &_otdData; }
}
alias OLETARGETDEVICE* LPOLETARGETDEVICE;
enum OLESTATUS {
OLE_OK,
OLE_WAIT_FOR_RELEASE,
OLE_BUSY,
OLE_ERROR_PROTECT_ONLY,
OLE_ERROR_MEMORY,
OLE_ERROR_STREAM,
OLE_ERROR_STATIC,
OLE_ERROR_BLANK,
OLE_ERROR_DRAW,
OLE_ERROR_METAFILE,
OLE_ERROR_ABORT,
OLE_ERROR_CLIPBOARD,
OLE_ERROR_FORMAT,
OLE_ERROR_OBJECT,
OLE_ERROR_OPTION,
OLE_ERROR_PROTOCOL,
OLE_ERROR_ADDRESS,
OLE_ERROR_NOT_EQUAL,
OLE_ERROR_HANDLE,
OLE_ERROR_GENERIC,
OLE_ERROR_CLASS,
OLE_ERROR_SYNTAX,
OLE_ERROR_DATATYPE,
OLE_ERROR_PALETTE,
OLE_ERROR_NOT_LINK,
OLE_ERROR_NOT_EMPTY,
OLE_ERROR_SIZE,
OLE_ERROR_DRIVE,
OLE_ERROR_NETWORK,
OLE_ERROR_NAME,
OLE_ERROR_TEMPLATE,
OLE_ERROR_NEW,
OLE_ERROR_EDIT,
OLE_ERROR_OPEN,
OLE_ERROR_NOT_OPEN,
OLE_ERROR_LAUNCH,
OLE_ERROR_COMM,
OLE_ERROR_TERMINATE,
OLE_ERROR_COMMAND,
OLE_ERROR_SHOW,
OLE_ERROR_DOVERB,
OLE_ERROR_ADVISE_NATIVE,
OLE_ERROR_ADVISE_PICT,
OLE_ERROR_ADVISE_RENAME,
OLE_ERROR_POKE_NATIVE,
OLE_ERROR_REQUEST_NATIVE,
OLE_ERROR_REQUEST_PICT,
OLE_ERROR_SERVER_BLOCKED,
OLE_ERROR_REGISTRATION,
OLE_ERROR_ALREADY_REGISTERED,
OLE_ERROR_TASK,
OLE_ERROR_OUTOFDATE,
OLE_ERROR_CANT_UPDATE_CLIENT,
OLE_ERROR_UPDATE,
OLE_ERROR_SETDATA_FORMAT,
OLE_ERROR_STATIC_FROM_OTHER_OS,
OLE_ERROR_FILE_VER,
OLE_WARN_DELETE_DATA = 1000
}
enum OLE_NOTIFICATION {
OLE_CHANGED,
OLE_SAVED,
OLE_CLOSED,
OLE_RENAMED,
OLE_QUERY_PAINT,
OLE_RELEASE,
OLE_QUERY_RETRY
}
enum OLE_RELEASE_METHOD {
OLE_NONE,
OLE_DELETE,
OLE_LNKPASTE,
OLE_EMBPASTE,
OLE_SHOW,
OLE_RUN,
OLE_ACTIVATE,
OLE_UPDATE,
OLE_CLOSE,
OLE_RECONNECT,
OLE_SETUPDATEOPTIONS,
OLE_SERVERUNLAUNCH,
OLE_LOADFROMSTREAM,
OLE_SETDATA,
OLE_REQUESTDATA,
OLE_OTHER,
OLE_CREATE,
OLE_CREATEFROMTEMPLATE,
OLE_CREATELINKFROMFILE,
OLE_COPYFROMLNK,
OLE_CREATEFROMFILE,
OLE_CREATEINVISIBLE
}
enum OLEOPT_RENDER {
olerender_none,
olerender_draw,
olerender_format
}
alias WORD OLECLIPFORMAT;
enum OLEOPT_UPDATE {
oleupdate_always,
oleupdate_onsave,
oleupdate_oncall,
// #ifdef OLE_INTERNAL
oleupdate_onclose
// #endif
}
mixin DECLARE_HANDLE!("HOBJECT");
alias LONG_PTR LHSERVER, LHCLIENTDOC, LHSERVERDOC;
struct OLEOBJECTVTBL {
extern (Windows) {
void* function(LPOLEOBJECT, OLE_LPCSTR) QueryProtocol;
OLESTATUS function(LPOLEOBJECT) Release;
OLESTATUS function(LPOLEOBJECT, BOOL) Show;
OLESTATUS function(LPOLEOBJECT, UINT, BOOL, BOOL) DoVerb;
OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT, HANDLE*) GetData;
OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT, HANDLE) SetData;
OLESTATUS function(LPOLEOBJECT, HGLOBAL) SetTargetDevice;
OLESTATUS function(LPOLEOBJECT, RECT*) SetBounds;
OLECLIPFORMAT function(LPOLEOBJECT, OLECLIPFORMAT) EnumFormats;
OLESTATUS function(LPOLEOBJECT, LOGPALETTE*) SetColorScheme;
//#ifndef SERVERONLY
OLESTATUS function(LPOLEOBJECT) Delete;
OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR, OLE_LPCSTR) SetHostNames;
OLESTATUS function(LPOLEOBJECT, LPOLESTREAM) SaveToStream;
OLESTATUS function(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR,
LPOLEOBJECT*) Clone;
OLESTATUS function(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR,
LPOLEOBJECT*) CopyFromLink;
OLESTATUS function(LPOLEOBJECT, LPOLEOBJECT) Equal;
OLESTATUS function(LPOLEOBJECT) CopyToClipboard;
OLESTATUS function(LPOLEOBJECT, HDC, RECT*, RECT*, HDC) Draw;
OLESTATUS function(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, RECT*)
Activate;
OLESTATUS function(LPOLEOBJECT, HGLOBAL, UINT) Execute;
OLESTATUS function(LPOLEOBJECT) Close;
OLESTATUS function(LPOLEOBJECT) Update;
OLESTATUS function(LPOLEOBJECT) Reconnect;
OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR, LPOLECLIENT, LHCLIENTDOC,
OLE_LPCSTR, LPOLEOBJECT*) ObjectConvert;
OLESTATUS function(LPOLEOBJECT, OLEOPT_UPDATE*) GetLinkUpdateOptions;
OLESTATUS function(LPOLEOBJECT, OLEOPT_UPDATE) SetLinkUpdateOptions;
OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR) Rename;
OLESTATUS function(LPOLEOBJECT, LPSTR, UINT*) QueryName;
OLESTATUS function(LPOLEOBJECT, LONG*) QueryType;
OLESTATUS function(LPOLEOBJECT, RECT*) QueryBounds;
OLESTATUS function(LPOLEOBJECT, DWORD*) QuerySize;
OLESTATUS function(LPOLEOBJECT) QueryOpen;
OLESTATUS function(LPOLEOBJECT) QueryOutOfDate;
OLESTATUS function(LPOLEOBJECT) QueryReleaseStatus;
OLESTATUS function(LPOLEOBJECT) QueryReleaseError;
OLE_RELEASE_METHOD function(LPOLEOBJECT) QueryReleaseMethod;
OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT) RequestData;
OLESTATUS function(LPOLEOBJECT, UINT, LONG*) ObjectLong;
OLESTATUS function(LPOLEOBJECT, HANDLE, LPOLECLIENT, BOOL) ChangeData;
//#endif
}
}
alias OLEOBJECTVTBL* LPOLEOBJECTVTBL;
//#ifndef OLE_INTERNAL
struct OLEOBJECT {
LPOLEOBJECTVTBL lpvtbl;
}
alias OLEOBJECT* LPOLEOBJECT;
//#endif
struct OLECLIENTVTBL {
extern (Windows) int function(LPOLECLIENT, OLE_NOTIFICATION, LPOLEOBJECT) CallBack;
}
alias OLECLIENTVTBL* LPOLECLIENTVTBL;
struct OLECLIENT {
LPOLECLIENTVTBL lpvtbl;
}
alias OLECLIENT* LPOLECLIENT;
struct OLESTREAMVTBL {
extern (Windows):
DWORD function(LPOLESTREAM, void*, DWORD) Get;
DWORD function(LPOLESTREAM, void*, DWORD) Put;
}
alias OLESTREAMVTBL* LPOLESTREAMVTBL;
struct OLESTREAM {
LPOLESTREAMVTBL lpstbl;
}
alias OLESTREAM* LPOLESTREAM;
enum OLE_SERVER_USE {
OLE_SERVER_MULTI,
OLE_SERVER_SINGLE
}
struct OLESERVERVTBL {
extern (Windows):
OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, LPOLESERVERDOC*)
Open;
OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR,
LPOLESERVERDOC*) Create;
OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR,
OLE_LPCSTR, LPOLESERVERDOC*) CreateFromTemplate;
OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR,
LPOLESERVERDOC*) Edit;
OLESTATUS function(LPOLESERVER) Exit;
OLESTATUS function(LPOLESERVER) Release;
OLESTATUS function(LPOLESERVER, HGLOBAL) Execute;
}
alias TypeDef!(OLESERVERVTBL*) LPOLESERVERVTBL;
struct OLESERVER {
LPOLESERVERVTBL lpvtbl;
}
alias OLESERVER* LPOLESERVER;
struct OLESERVERDOCVTBL {
extern (Windows):
OLESTATUS function(LPOLESERVERDOC) Save;
OLESTATUS function(LPOLESERVERDOC) Close;
OLESTATUS function(LPOLESERVERDOC, OLE_LPCSTR, OLE_LPCSTR) SetHostNames;
OLESTATUS function(LPOLESERVERDOC, RECT*) SetDocDimensions;
OLESTATUS function(LPOLESERVERDOC, OLE_LPCSTR, LPOLEOBJECT*, LPOLECLIENT)
GetObject;
OLESTATUS function(LPOLESERVERDOC) Release;
OLESTATUS function(LPOLESERVERDOC, LOGPALETTE*) SetColorScheme;
OLESTATUS function(LPOLESERVERDOC, HGLOBAL) Execute;
}
alias OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
struct OLESERVERDOC {
LPOLESERVERDOCVTBL lpvtbl;
}
alias OLESERVERDOC* LPOLESERVERDOC;
extern (Windows) {
OLESTATUS OleDelete(LPOLEOBJECT);
OLESTATUS OleRelease(LPOLEOBJECT);
OLESTATUS OleSaveToStream(LPOLEOBJECT, LPOLESTREAM);
OLESTATUS OleEqual(LPOLEOBJECT, LPOLEOBJECT);
OLESTATUS OleCopyToClipboard(LPOLEOBJECT);
OLESTATUS OleSetHostNames(LPOLEOBJECT, LPCSTR, LPCSTR);
OLESTATUS OleSetTargetDevice(LPOLEOBJECT, HGLOBAL);
OLESTATUS OleSetBounds(LPOLEOBJECT, LPCRECT);
OLESTATUS OleSetColorScheme(LPOLEOBJECT, const(LOGPALETTE)*);
OLESTATUS OleQueryBounds(LPOLEOBJECT, RECT*);
OLESTATUS OleQuerySize(LPOLEOBJECT, DWORD*);
OLESTATUS OleDraw(LPOLEOBJECT, HDC, LPCRECT, LPCRECT, HDC);
OLESTATUS OleQueryOpen(LPOLEOBJECT);
OLESTATUS OleActivate(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, LPCRECT);
OLESTATUS OleExecute(LPOLEOBJECT, HGLOBAL, UINT);
OLESTATUS OleClose(LPOLEOBJECT);
OLESTATUS OleUpdate(LPOLEOBJECT);
OLESTATUS OleReconnect(LPOLEOBJECT);
OLESTATUS OleGetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE*);
OLESTATUS OleSetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE);
void* OleQueryProtocol(LPOLEOBJECT, LPCSTR);
OLESTATUS OleQueryReleaseStatus(LPOLEOBJECT);
OLESTATUS OleQueryReleaseError(LPOLEOBJECT);
OLE_RELEASE_METHOD OleQueryReleaseMethod(LPOLEOBJECT);
OLESTATUS OleQueryType(LPOLEOBJECT, LONG*);
DWORD OleQueryClientVersion();
DWORD OleQueryServerVersion();
OLECLIPFORMAT OleEnumFormats(LPOLEOBJECT, OLECLIPFORMAT);
OLESTATUS OleGetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE*);
OLESTATUS OleSetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE);
OLESTATUS OleQueryOutOfDate(LPOLEOBJECT);
OLESTATUS OleRequestData(LPOLEOBJECT, OLECLIPFORMAT);
OLESTATUS OleQueryLinkFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleQueryCreateFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleCreateFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR,
LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleCreateLinkFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR,
LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleCreateFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR,
LHCLIENTDOC, LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleCreateLinkFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR,
LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleLoadFromStream(LPOLESTREAM, LPCSTR, LPOLECLIENT, LHCLIENTDOC,
LPCSTR, LPOLEOBJECT*);
OLESTATUS OleCreate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR,
LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleCreateInvisible(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC,
LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT, BOOL);
OLESTATUS OleCreateFromTemplate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC,
LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
OLESTATUS OleClone(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, LPCSTR,
LPOLEOBJECT*);
OLESTATUS OleCopyFromLink(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC,
LPCSTR, LPOLEOBJECT*);
OLESTATUS OleObjectConvert(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC,
LPCSTR, LPOLEOBJECT*);
OLESTATUS OleRename(LPOLEOBJECT, LPCSTR);
OLESTATUS OleQueryName(LPOLEOBJECT, LPSTR, UINT*);
OLESTATUS OleRevokeObject(LPOLECLIENT);
BOOL OleIsDcMeta(HDC);
OLESTATUS OleRegisterClientDoc(LPCSTR, LPCSTR, LONG, LHCLIENTDOC*);
OLESTATUS OleRevokeClientDoc(LHCLIENTDOC);
OLESTATUS OleRenameClientDoc(LHCLIENTDOC, LPCSTR);
OLESTATUS OleRevertClientDoc(LHCLIENTDOC);
OLESTATUS OleSavedClientDoc(LHCLIENTDOC);
OLESTATUS OleEnumObjects(LHCLIENTDOC, LPOLEOBJECT*);
OLESTATUS OleRegisterServer(LPCSTR, LPOLESERVER, LHSERVER*, HINSTANCE,
OLE_SERVER_USE);
OLESTATUS OleRevokeServer(LHSERVER);
OLESTATUS OleBlockServer(LHSERVER);
OLESTATUS OleUnblockServer(LHSERVER, BOOL*);
OLESTATUS OleLockServer(LPOLEOBJECT, LHSERVER*);
OLESTATUS OleUnlockServer(LHSERVER);
OLESTATUS OleRegisterServerDoc(LHSERVER, LPCSTR, LPOLESERVERDOC,
LHSERVERDOC*);
OLESTATUS OleRevokeServerDoc(LHSERVERDOC);
OLESTATUS OleRenameServerDoc(LHSERVERDOC, LPCSTR);
OLESTATUS OleRevertServerDoc(LHSERVERDOC);
OLESTATUS OleSavedServerDoc(LHSERVERDOC);
}