值得注意的是
phiconLarge的尺寸为32x32
phiconSmall的尺寸为16x16
#include#include #include void main() { HICON *phiconLarge=new HICON, *phiconSmall=NULL; int id=ExtractIconEx(TEXT("C:\Windows\System32\imageres.dll"), -1, NULL, NULL, 0); printf("dll包含图标%d个n", id); id=ExtractIconEx(TEXT("C:\Windows\System32\imageres.dll"), 2, phiconLarge, NULL, 3); printf("dll包含图标%d个n", id); PICTDESC picdesc; picdesc.cbSizeofstruct = sizeof(PICTDESC); picdesc.picType = PICTYPE_ICON; picdesc.icon.hicon = *phiconLarge; IPicture* pPicture = NULL; OleCreatePictureIndirect(&picdesc, IID_IPicture, TRUE, (VOID**)&pPicture); LPSTREAM pStream; CreateStreamOnHGlobal(NULL, TRUE, &pStream); LONG size; HRESULT hr = pPicture->SaveAsFile(pStream, TRUE, &size); LARGE_INTEGER li; li.HighPart = 0; li.LowPart = 0; ULARGE_INTEGER ulnewpos; pStream->Seek(li, STREAM_SEEK_SET, &ulnewpos); FILE *fp = fopen("E:\desktop\pdfs\1.ico", "wb"); ULONG uReadCount = 1; char buf[1024]; while (uReadCount > 0) { pStream->Read(buf,1024, &uReadCount); fwrite(buf, 1, uReadCount, fp); } fclose(fp); pStream->Release(); }



