Как сохранить иконку в файл имея её хендл?
Falk0ner, вс, 06/07/2008 - 15:34.
Как сохранить иконку в файл имея её хендл?
uses
Windows,ActiveX;
{©Drkb v.3(2007): www.drkb.ru}
function OleSavePictureFile(dispPicture: IDispatch; bstrFileName: TBStr): HResult; stdcall;
external 'oleaut32.dll';
// icon - дескриптор иконки
// FileName - файл, в который сохранять
// DestroyAfterSave - уничтожать дескриптор иконки после сохранения или нет
function StoreIconFile(icon:HICON; FileName:string; DestroyAfterSave:boolean=false):boolean;
const
IID_IPictureDisp:TGUID = '{7BF80981-BF32-101A-8BBB-00AA00300CAB}';
var
pd:TPictDesc;
ipd:IPictureDisp;
begin
pd.cbSizeofstruct:=sizeof(TPictDesc);
pd.picType:=PICTYPE_ICON;
pd.hIcon:=icon;
result:=(OleCreatePictureIndirect(pd,IID_IPictureDisp,DestroyAfterSave,ipd)=S_OK) and
(OleSavePictureFile(ipd, StringToOLEStr(FileName))=S_OK)
end;
Windows,ActiveX;
{©Drkb v.3(2007): www.drkb.ru}
function OleSavePictureFile(dispPicture: IDispatch; bstrFileName: TBStr): HResult; stdcall;
external 'oleaut32.dll';
// icon - дескриптор иконки
// FileName - файл, в который сохранять
// DestroyAfterSave - уничтожать дескриптор иконки после сохранения или нет
function StoreIconFile(icon:HICON; FileName:string; DestroyAfterSave:boolean=false):boolean;
const
IID_IPictureDisp:TGUID = '{7BF80981-BF32-101A-8BBB-00AA00300CAB}';
var
pd:TPictDesc;
ipd:IPictureDisp;
begin
pd.cbSizeofstruct:=sizeof(TPictDesc);
pd.picType:=PICTYPE_ICON;
pd.hIcon:=icon;
result:=(OleCreatePictureIndirect(pd,IID_IPictureDisp,DestroyAfterSave,ipd)=S_OK) and
(OleSavePictureFile(ipd, StringToOLEStr(FileName))=S_OK)
end;
Взято из http://forum.sources.ru
Автор: Krid
Отправить комментарий