unit Main; interface uses Windows, ActiveX, Classes, ComObj, PropSys; const IID_IDCMThumbnail: TGUID = '{809CCC60-BBF0-453E-B4A7-4596F7F71E93}'; type {$EXTERNALSYM IThumbnailProvider} IThumbnailProvider = interface(IUnknown) ['{e357fccd-a995-4576-b01f-234630154e96}'] function GetThumbnail(cx: uint; out hBitmap: hBitmap; out bitmapType: dword) : HRESULT; stdcall; end; TDCMThumbnail = class(TComObject, IThumbnailProvider, IInitializeWithStream) public destructor Destroy; override; procedure Initialize; overload; override; function GetThumbnail(cx: Cardinal; out hBitmap: hBitmap; out bitmapType: Cardinal): HRESULT; stdcall; function Initialize(const pstream: IStream; grfMode: Cardinal): HRESULT; overload; stdcall; end; implementation uses ComServ; { TDCMThumbnail } destructor TDCMThumbnail.Destroy; begin OutputDebugString('TDCMThumbnail.Destroy'); inherited; end; function TDCMThumbnail.GetThumbnail(cx: Cardinal; out hBitmap: hBitmap; out bitmapType: Cardinal): HRESULT; begin OutputDebugString('TDCMThumbnail.GetThumbnail'); result := S_OK; end; function TDCMThumbnail.Initialize(const pstream: IStream; grfMode: Cardinal): HRESULT; begin OutputDebugString('TDCMThumbnail.Initialize'); result := S_OK; end; procedure TDCMThumbnail.Initialize; begin OutputDebugString('TDCMThumbnail.Initialize'); inherited; end; initialization TComObjectFactory.Create(ComServer, TDCMThumbnail, IID_IDCMThumbnail, 'TDCMThumbnail', '', ciMultiInstance, tmApartment); end. |