mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 15:18:18 +02:00
+ added some missing stuff to the activex unit, fixes bug #3820
* removed the warning about $A in jediapilib.inc git-svn-id: trunk@501 -
This commit is contained in:
parent
ed95c19399
commit
e53f6d02f1
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -6064,6 +6064,7 @@ tests/webtbs/tw3796.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3805.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3812.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3814.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3820.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3821.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3827.pp svneol=native#text/plain
|
||||
tests/webtbs/tw3833.pp svneol=native#text/plain
|
||||
|
@ -23,7 +23,7 @@ Interface
|
||||
{$define read_interface}
|
||||
{$undef read_implementation}
|
||||
|
||||
Uses Windows,types;
|
||||
Uses variants,Windows,types;
|
||||
|
||||
|
||||
type
|
||||
@ -2685,7 +2685,367 @@ TYPE
|
||||
function IsEqualGUID(const guid1,guid2 : TGUID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
|
||||
function IsEqualIID(const iid1,iid2 : TIID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
|
||||
function IsEqualCLSID(const clsid1,clsid2 : TCLSID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
|
||||
|
||||
{ OleIdl.h }
|
||||
type
|
||||
IOleInPlaceActiveObject = interface;
|
||||
|
||||
IOleAdviseHolder = interface(IUnknown)
|
||||
['{00000111-0000-0000-C000-000000000046}']
|
||||
function Advise(const advise: IAdviseSink; out dwConnection: DWORD): HResult;StdCall;
|
||||
function Unadvise(dwConnection: DWORD): HResult;StdCall;
|
||||
function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
|
||||
function SendOnRename(const mk: IMoniker): HResult;StdCall;
|
||||
function SendOnSave: HResult;StdCall;
|
||||
function SendOnClose: HResult;StdCall;
|
||||
end;
|
||||
|
||||
IEnumOLEVERB = interface(IUnknown)
|
||||
['{00000104-0000-0000-C000-000000000046}']
|
||||
function Next(celt: ULONG; out elt; pceltFetched: PULONG): HResult;StdCall;
|
||||
function Skip(celt: ULONG): HResult;StdCall;
|
||||
function Reset: HResult;StdCall;
|
||||
function Clone(out ppenum: IEnumOLEVERB): HResult;StdCall;
|
||||
end;
|
||||
|
||||
IDropSource = interface(IUnknown)
|
||||
['{00000121-0000-0000-C000-000000000046}']
|
||||
function QueryContinueDrag(fEscapePressed: BOOL;
|
||||
grfKeyState: Longint):HResult;StdCall;
|
||||
function GiveFeedback(dwEffect: Longint): HResult;StdCall;
|
||||
end;
|
||||
|
||||
IOleObject = interface(IUnknown)
|
||||
['{00000112-0000-0000-C000-000000000046}']
|
||||
function SetClientSite(const clientSite: IOleClientSite): HResult;StdCall;
|
||||
function GetClientSite(out clientSite: IOleClientSite): HResult;StdCall;
|
||||
function SetHostNames(szContainerApp: POleStr; szContainerObj: POleStr): HResult;StdCall;
|
||||
function Close(dwSaveOption: DWORD): HResult;StdCall;
|
||||
function SetMoniker(dwWhichMoniker: DWORD; const mk: IMoniker): HResult;StdCall;
|
||||
function GetMoniker(dwAssign: DWORD; dwWhichMoniker: DWORD; out mk: IMoniker): HResult;StdCall;
|
||||
function InitFromData(const dataObject: IDataObject; fCreation: BOOL; dwReserved: DWORD): HResult;StdCall;
|
||||
function GetClipboardData(dwReserved: DWORD; out dataObject: IDataObject): HResult;StdCall;
|
||||
function DoVerb(iVerb: LONG; msg: PMsg; const activeSite: IOleClientSite; lindex: LONG; hwndParent: HWND; const posRect: TRect): HResult;StdCall;
|
||||
function EnumVerbs(out enumOleVerb: IEnumOleVerb): HResult;StdCall;
|
||||
function Update: HResult;StdCall;
|
||||
function IsUpToDate: HResult;StdCall;
|
||||
function GetUserClassID(out clsid: TCLSID): HResult;StdCall;
|
||||
function GetUserType(dwFormOfType: DWORD; out pszUserType: POleStr): HResult;StdCall;
|
||||
function SetExtent(dwDrawAspect: DWORD; const size: TPoint): HResult;StdCall;
|
||||
function GetExtent(dwDrawAspect: DWORD; out size: TPoint): HResult;StdCall;
|
||||
function Advise(const advSink: IAdviseSink; out dwConnection: Longint): HResult;StdCall;
|
||||
function Unadvise(dwConnection: DWORD): HResult;StdCall;
|
||||
function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
|
||||
function GetMiscStatus(dwAspect: DWORD; out dwStatus: DWORD): HResult;StdCall;
|
||||
function SetColorScheme(const logpal: TLogPalette): HResult;StdCall;
|
||||
end;
|
||||
|
||||
IDropTarget = interface(IUnknown)
|
||||
['{00000122-0000-0000-C000-000000000046}']
|
||||
function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
|
||||
function DragOver(grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
|
||||
function DragLeave: HResult;StdCall;
|
||||
function Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD):HResult;StdCall;
|
||||
end;
|
||||
|
||||
IOleInPlaceUIWindow = interface(IOleWindow)
|
||||
['{00000115-0000-0000-C000-000000000046}']
|
||||
function GetBorder(out rectBorder: TRect):HResult;StdCall;
|
||||
function RequestBorderSpace(const borderwidths: TRect):HResult;StdCall;
|
||||
function SetBorderSpace(const borderwidths: TRect):HResult;StdCall;
|
||||
function SetActiveObject(const activeObject: IOleInPlaceActiveObject;pszObjName: POleStr):HResult;StdCall;
|
||||
end;
|
||||
|
||||
IOleInPlaceActiveObject = interface(IOleWindow)
|
||||
['{00000117-0000-0000-C000-000000000046}']
|
||||
function TranslateAccelerator(var msg: TMsg):HResult;StdCall;
|
||||
function OnFrameWindowActivate(fActivate: BOOL):HResult;StdCall;
|
||||
function OnDocWindowActivate(fActivate: BOOL):HResult;StdCall;
|
||||
function ResizeBorder(const rcBorder: TRect; const uiWindow: IOleInPlaceUIWindow; fFrameWindow: BOOL):HResult;StdCall;
|
||||
function EnableModeless(fEnable: BOOL):HResult;StdCall;
|
||||
end;
|
||||
|
||||
IOleInPlaceFrame = interface(IOleInPlaceUIWindow)
|
||||
['{00000116-0000-0000-C000-000000000046}']
|
||||
function InsertMenus(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall;
|
||||
function SetMenu(hmenuShared: HMenu; holemenu: HMenu; hwndActiveObject: HWnd): HResult;StdCall;
|
||||
function RemoveMenus(hmenuShared: HMenu): HResult;StdCall;
|
||||
function SetStatusText(pszStatusText: POleStr): HResult;StdCall;
|
||||
function EnableModeless(fEnable: BOOL): HResult;StdCall;
|
||||
function TranslateAccelerator(var msg: TMsg; wID: Word): HResult;StdCall;
|
||||
end;
|
||||
|
||||
tagOIFI = record
|
||||
cb: UINT;
|
||||
fMDIApp: BOOL;
|
||||
hwndFrame: HWND;
|
||||
haccel: HAccel;
|
||||
cAccelEntries: UINT;
|
||||
end;
|
||||
TOleInPlaceFrameInfo = tagOIFI;
|
||||
POleInPlaceFrameInfo = ^TOleInPlaceFrameInfo;
|
||||
OLEINPLACEFRAMEINFO = tagOIFI;
|
||||
|
||||
{ ole2.h }
|
||||
|
||||
type
|
||||
WINOLEAPI = HResult;
|
||||
TLCID = DWORD;
|
||||
|
||||
const
|
||||
OLEIVERB_PRIMARY = 0;
|
||||
OLEIVERB_SHOW = -(1);
|
||||
OLEIVERB_OPEN = -(2);
|
||||
OLEIVERB_HIDE = -(3);
|
||||
OLEIVERB_UIACTIVATE = -(4);
|
||||
OLEIVERB_INPLACEACTIVATE = -(5);
|
||||
OLEIVERB_DISCARDUNDOSTATE = -(6);
|
||||
{ for OleCreateEmbeddingHelper flags; roles low word; options high word }
|
||||
EMBDHLP_INPROC_HANDLER = $0000;
|
||||
EMBDHLP_INPROC_SERVER = $0001;
|
||||
EMBDHLP_CREATENOW = $00000000;
|
||||
EMBDHLP_DELAYCREATE = $00010000;
|
||||
{ extended create function flags }
|
||||
OLECREATE_LEAVERUNNING = $00000001;
|
||||
{ pull the MIDL generated header }
|
||||
|
||||
function OleBuildVersion:DWORD;cdecl;external 'ole32.dll' name 'OleBuildVersion';
|
||||
|
||||
{ helper functions }
|
||||
function ReadClassStg(pStg:IStorage; pclsid:PCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'ReadClassStg';
|
||||
|
||||
function WriteClassStg(pStg:IStorage;const rclsid:TLCID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WriteClassStg';
|
||||
|
||||
function ReadClassStm(pStm:IStream; pclsid:PCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'ReadClassStm';
|
||||
|
||||
function WriteClassStm(pStm:IStream;const rclsid:TLCID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WriteClassStm';
|
||||
|
||||
function WriteFmtUserTypeStg(pstg:IStorage; cf:CLIPFORMAT; lpszUserType:LPOLESTR):WINOLEAPI;cdecl;external 'ole32.dll' name 'WriteFmtUserTypeStg';
|
||||
|
||||
function ReadFmtUserTypeStg(pstg:IStorage; pcf:PCLIPFORMAT;out lplpszUserType:POleStr):WINOLEAPI;cdecl;external 'ole32.dll' name 'ReadFmtUserTypeStg';
|
||||
|
||||
{ init/term }
|
||||
function OleInitialize(pvReserved:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleInitialize';
|
||||
|
||||
procedure OleUninitialize;cdecl;external 'ole32.dll' name 'OleUninitialize';
|
||||
|
||||
{ APIs to query whether (Embedded/Linked) object can be created from
|
||||
the data object }
|
||||
function OleQueryLinkFromData(pSrcDataObject:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleQueryLinkFromData';
|
||||
|
||||
function OleQueryCreateFromData(pSrcDataObject:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleQueryCreateFromData';
|
||||
|
||||
{ Object creation APIs } function OleCreate(const rclsid:TLCID; const riid:TIID;
|
||||
renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name
|
||||
'OleCreate';
|
||||
|
||||
function OleCreateEx(const rclsid:TLCID; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
|
||||
rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateEx';
|
||||
|
||||
function OleCreateFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromData';
|
||||
|
||||
function OleCreateFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
|
||||
rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromDataEx';
|
||||
|
||||
function OleCreateLinkFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkFromData';
|
||||
|
||||
function OleCreateLinkFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
|
||||
rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkFromDataEx';
|
||||
|
||||
function OleCreateStaticFromData(pSrcDataObj:IDataObject; const iid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateStaticFromData';
|
||||
|
||||
function OleCreateLink(pmkLinkSrc:IMoniker; constriid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLink';
|
||||
|
||||
function OleCreateLinkEx(pmkLinkSrc:IMoniker; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
|
||||
rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkEx';
|
||||
|
||||
function OleCreateLinkToFile(lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkToFile';
|
||||
|
||||
function OleCreateLinkToFileEx(lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
|
||||
rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
|
||||
pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkToFileEx';
|
||||
|
||||
function OleCreateFromFile(const rclsid:TLCID; lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC;
|
||||
pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromFile';
|
||||
|
||||
function OleCreateFromFileEx(const rclsid:TLCID; lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD;
|
||||
cFormats:ULONG; rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD;
|
||||
pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromFileEx';
|
||||
|
||||
function OleLoad(pStg:IStorage; const riid:TIID; pClientSite:IOleClientSite; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleLoad';
|
||||
|
||||
function OleSave(pPS:IPersistStorage; pStg:IStorage; fSameAsLoad:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSave';
|
||||
|
||||
function OleLoadFromStream(pStm:IStream; const iidInterface:TIID; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleLoadFromStream';
|
||||
|
||||
function OleSaveToStream(pPStm:IPersistStream; pStm:IStream):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSaveToStream';
|
||||
|
||||
function OleSetContainedObject(pUnknown:IUnknown; fContained:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetContainedObject';
|
||||
|
||||
function OleNoteObjectVisible(pUnknown:IUnknown; fVisible:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleNoteObjectVisible';
|
||||
|
||||
{ Drag/Drop APIs }
|
||||
function RegisterDragDrop(hwnd:HWND; pDropTarget:IDropTarget):WINOLEAPI;cdecl;external 'ole32.dll' name 'RegisterDragDrop';
|
||||
|
||||
function RevokeDragDrop(hwnd:HWND):WINOLEAPI;cdecl;external 'ole32.dll' name 'RevokeDragDrop';
|
||||
|
||||
function DoDragDrop(pDataObj:IDataObject; pDropSource:IDropSource; dwOKEffects:DWORD; pdwEffect:LPDWORD):WINOLEAPI;cdecl;external 'ole32.dll' name 'DoDragDrop';
|
||||
|
||||
{ Clipboard APIs }
|
||||
function OleSetClipboard(pDataObj:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetClipboard';
|
||||
|
||||
function OleGetClipboard(out ppDataObj:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleGetClipboard';
|
||||
|
||||
function OleFlushClipboard:WINOLEAPI;cdecl;external 'ole32.dll' name 'OleFlushClipboard';
|
||||
|
||||
function OleIsCurrentClipboard(pDataObj:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleIsCurrentClipboard';
|
||||
|
||||
type
|
||||
HOLEMENU = HMenu;
|
||||
|
||||
{ InPlace Editing APIs }
|
||||
function OleCreateMenuDescriptor(hmenuCombined:HMENU; lpMenuWidths:LPOLEMENUGROUPWIDTHS):HOLEMENU;cdecl;external 'ole32.dll' name 'OleCreateMenuDescriptor';
|
||||
|
||||
function OleSetMenuDescriptor(holemenu:HOLEMENU; hwndFrame:HWND; hwndActiveObject:HWND; lpFrame:IOleInPlaceFrame; lpActiveObj:IOleInPlaceActiveObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetMenuDescriptor';
|
||||
|
||||
function OleDestroyMenuDescriptor(holemenu:HOLEMENU):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleDestroyMenuDescriptor';
|
||||
|
||||
function OleTranslateAccelerator(lpFrame:IOleInPlaceFrame; lpFrameInfo:TOleInPlaceFrameInfo; lpmsg:LPMSG):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleTranslateAccelerator';
|
||||
|
||||
{ Helper APIs }
|
||||
function OleDuplicateData(hSrc:HANDLE; cfFormat:CLIPFORMAT; uiFlags:UINT):HANDLE;cdecl;external 'ole32.dll' name 'OleDuplicateData';
|
||||
|
||||
function OleDraw(pUnknown:IUnknown; dwAspect:DWORD; hdcDraw:HDC;const lprcBounds:TRect):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleDraw';
|
||||
|
||||
function OleRun(pUnknown:IUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRun';
|
||||
|
||||
function OleIsRunning(pObject:IOleObject):BOOL;cdecl;external 'ole32.dll' name 'OleIsRunning';
|
||||
|
||||
function OleLockRunning(pUnknown:IUnknown; fLock:BOOL; fLastUnlockCloses:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleLockRunning';
|
||||
|
||||
procedure ReleaseStgMedium(_para1:LPSTGMEDIUM);cdecl;external 'ole32.dll' name 'ReleaseStgMedium';
|
||||
|
||||
function CreateOleAdviseHolder(out ppOAHolder:IOleAdviseHolder):WINOLEAPI;cdecl;external 'ole32.dll' name 'CreateOleAdviseHolder';
|
||||
|
||||
function OleCreateDefaultHandler(const clsid:TLCID; pUnkOuter:IUnknown; const riid:TIID; out lplpObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateDefaultHandler';
|
||||
|
||||
function OleCreateEmbeddingHelper(const clsid:TLCID; pUnkOuter:IUnknown; flags:DWORD; pCF:IClassFactory; const riid:TIID;
|
||||
out lplpObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateEmbeddingHelper';
|
||||
|
||||
function IsAccelerator(hAccel:HACCEL; cAccelEntries:longint; lpMsg:LPMSG; lpwCmd:PWORD):BOOL;cdecl;external 'ole32.dll' name 'IsAccelerator';
|
||||
|
||||
{ Icon extraction Helper APIs }
|
||||
function OleGetIconOfFile(lpszPath:LPOLESTR; fUseFileAsLabel:BOOL):HGLOBAL;cdecl;external 'ole32.dll' name 'OleGetIconOfFile';
|
||||
|
||||
function OleGetIconOfClass(const rclsid:TLCID; lpszLabel:LPOLESTR; fUseTypeAsLabel:BOOL):HGLOBAL;cdecl;external 'ole32.dll' name 'OleGetIconOfClass';
|
||||
|
||||
function OleMetafilePictFromIconAndLabel(hIcon:HICON; lpszLabel:LPOLESTR; lpszSourceFile:LPOLESTR; iIconIndex:UINT):HGLOBAL;cdecl;external 'ole32.dll' name 'OleMetafilePictFromIconAndLabel';
|
||||
|
||||
{ Registration Database Helper APIs }
|
||||
function OleRegGetUserType(const clsid:TLCID; dwFormOfType:DWORD;out pszUserType:POleStr):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegGetUserType';
|
||||
|
||||
function OleRegGetMiscStatus(const clsid:TLCID; dwAspect:DWORD; pdwStatus:PDWORD):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegGetMiscStatus';
|
||||
|
||||
function OleRegEnumFormatEtc(const clsid:TLCID; dwDirection:DWORD;out ppenum:IEnumFormatEtc):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegEnumFormatEtc';
|
||||
|
||||
function OleRegEnumVerbs(const clsid:TLCID;out ppenum:IEnumOLEVERB):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegEnumVerbs';
|
||||
|
||||
{$ifdef _MAC}
|
||||
{ WlmOLE helper APIs }
|
||||
|
||||
function WlmOleCheckoutMacInterface(pUnk:IUnknown; out ppv):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckoutMacInterface';
|
||||
|
||||
function WlmOleCheckinMacInterface(pUnk:IUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckinMacInterface';
|
||||
|
||||
function WlmOleWrapMacInterface(pUnk:IUnknown; const riid:TIID; out ppv):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleWrapMacInterface';
|
||||
|
||||
function WlmOleUnwrapMacInterface(pv:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleUnwrapMacInterface';
|
||||
|
||||
function WlmOleCheckoutWinInterface(pUnk:LPVOID; ppv:PIUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckoutWinInterface';
|
||||
|
||||
function WlmOleCheckinWinInterface(pUnk:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckinWinInterface';
|
||||
|
||||
function WlmOleWrapWinInterface(pUnk:LPVOID; const riid:TIID; ppv:PIUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleWrapWinInterface';
|
||||
|
||||
function WlmOleUnwrapWinInterface(pv:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleUnwrapWinInterface';
|
||||
|
||||
procedure WlmOleVersion;cdecl;external 'ole32.dll' name 'WlmOleVersion';
|
||||
|
||||
procedure WlmOleSetInPlaceWindow(hwnd:HWND);cdecl;external 'ole32.dll' name 'WlmOleSetInPlaceWindow';
|
||||
|
||||
{ typedef HRESULT (STDAPICALLTYPE* OLEWRAPPROC) (TIID riid, LPVOID* ppvWin, LPVOID* ppvMac); }
|
||||
function WlmOleRegisterUserWrap(procNew:OLEWRAPPROC; pprocOld:POLEWRAPPROC):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleRegisterUserWrap';
|
||||
|
||||
{$endif}
|
||||
{ OLE 1.0 conversion APIS }
|
||||
{**** OLE 1.0 OLESTREAM declarations ************************************ }
|
||||
|
||||
type
|
||||
LPOLESTREAM = ^_OLESTREAM;
|
||||
_OLESTREAMVTBL = record
|
||||
Get : function (p : POleStr;out o;dw : DWORD) : DWORD;
|
||||
Put : function (p : POleStr;const o;dw : DWORD) : DWORD;
|
||||
end;
|
||||
OLESTREAMVTBL = _OLESTREAMVTBL;
|
||||
|
||||
LPOLESTREAMVTBL = OLESTREAMVTBL;
|
||||
|
||||
_OLESTREAM = record
|
||||
lpstbl : LPOLESTREAMVTBL;
|
||||
end;
|
||||
OLESTREAM = _OLESTREAM;
|
||||
(* Const before type ignored *)
|
||||
|
||||
function OleConvertOLESTREAMToIStorage(_lpolestream:LPOLESTREAM; pstg:IStorage; ptd:PDVTARGETDEVICE):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorage';
|
||||
|
||||
function OleConvertIStorageToOLESTREAM(pstg:IStorage; lpolestream:LPOLESTREAM):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAM';
|
||||
|
||||
{ Storage Utility APIs }
|
||||
function GetHGlobalFromILockBytes(plkbyt:ILockBytes;out phglobal:HGLOBAL):WINOLEAPI;cdecl;external 'ole32.dll' name 'GetHGlobalFromILockBytes';
|
||||
|
||||
function CreateILockBytesOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out pplkbyt:ILockBytes):WINOLEAPI;cdecl;external 'ole32.dll' name 'CreateILockBytesOnHGlobal';
|
||||
|
||||
function GetHGlobalFromStream(pstm:IStream;out phglobal:HGLOBAL):WINOLEAPI;cdecl;external 'ole32.dll' name 'GetHGlobalFromStream';
|
||||
|
||||
function CreateStreamOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out stm:IStream):WINOLEAPI;cdecl;external 'ole32.dll' name 'CreateStreamOnHGlobal';
|
||||
|
||||
{ ConvertTo APIS }
|
||||
function OleDoAutoConvert(pStg:IStorage; pClsidNew:LPCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleDoAutoConvert';
|
||||
|
||||
function OleGetAutoConvert(const clsidOld:TLCID; pClsidNew:LPCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleGetAutoConvert';
|
||||
|
||||
function OleSetAutoConvert(const clsidOld:TLCID; clsidNew:TLCID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetAutoConvert';
|
||||
|
||||
function GetConvertStg(pStg:IStorage):WINOLEAPI;cdecl;external 'ole32.dll' name 'GetConvertStg';
|
||||
|
||||
function SetConvertStg(pStg:IStorage; fConvert:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'SetConvertStg';
|
||||
|
||||
{ Presentation data to OLESTREAM }
|
||||
{ format }
|
||||
{ width }
|
||||
{ height }
|
||||
{ size bytes }
|
||||
{ bits }
|
||||
function OleConvertIStorageToOLESTREAMEx(pstg:IStorage; cfFormat:CLIPFORMAT; lWidth:LONG; lHeight:LONG; dwSize:DWORD;
|
||||
pmedium:LPSTGMEDIUM; polestm:LPOLESTREAM):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAMEx';
|
||||
|
||||
{ Presentation data from OLESTREAM }
|
||||
{ format }
|
||||
{ width }
|
||||
{ height }
|
||||
{ size bytes }
|
||||
function OleConvertOLESTREAMToIStorageEx(polestm:LPOLESTREAM; pstg:IStorage; pcfFormat:PCLIPFORMAT; plwWidth:PLONG; plHeight:PLONG;
|
||||
pdwSize:PDWORD; pmedium:LPSTGMEDIUM):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorageEx';
|
||||
|
||||
|
||||
const
|
||||
|
@ -35,7 +35,10 @@
|
||||
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
|
||||
{ }
|
||||
{******************************************************************************}
|
||||
{$A+,Z4}
|
||||
{$ifndef FPC}
|
||||
{$A+}
|
||||
{$endif FPC}
|
||||
{$Z4}
|
||||
|
||||
// This file is intended for C header conversions.
|
||||
// It defines several mutually exclusive IFDEFs which determine
|
||||
|
14
tests/webtbs/tw3820.pp
Normal file
14
tests/webtbs/tw3820.pp
Normal file
@ -0,0 +1,14 @@
|
||||
{ %target=win32}
|
||||
{ Source provided for Free Pascal Bug Report 3820 }
|
||||
{ Submitted by "Matthias Hryniszak" on 2005-03-24 }
|
||||
{ e-mail: matthias@hryniszak.de }
|
||||
program Test;
|
||||
|
||||
uses
|
||||
ActiveX;
|
||||
|
||||
begin
|
||||
// the following imports are missing:
|
||||
OleInitialize(nil);
|
||||
OleUninitialize;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user