Skip to content

Commit

Permalink
Add OleGetIconOfFile
Browse files Browse the repository at this point in the history
  • Loading branch information
otya128 committed Jan 18, 2019
1 parent 54c3653 commit f3feec2
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 8 deletions.
34 changes: 27 additions & 7 deletions ole2/ole2.c
Expand Up @@ -1047,18 +1047,14 @@ HRESULT WINAPI BindMoniker16(SEGPTR pmk, DWORD grfOpt, REFIID riid, SEGPTR *ppvO
return hresult32_16(result);
}

HGLOBAL16 WINAPI OleGetIconOfClass16(REFCLSID rclsid, LPSTR lpszLabel, BOOL fUseTypeAsLabel)
static HGLOBAL16 create_metafilepict16(HGLOBAL hMetaPict)
{
LPOLESTR lpwszLabel;
HGLOBAL hMetaPict;
METAFILEPICT *pict;
HGLOBAL16 hmf16;
DWORD len;
TRACE("(%s,%s,%d)\n", debugstr_guid(rclsid), debugstr_a(lpszLabel), fUseTypeAsLabel);
lpwszLabel = strdupAtoW(lpszLabel);
hMetaPict = OleGetIconOfClass(rclsid, lpwszLabel, fUseTypeAsLabel);
HeapFree(GetProcessHeap(), 0, lpwszLabel);
pict = GlobalLock(hMetaPict);
if (!pict)
return 0;
hmf16 = GlobalAlloc16(0, sizeof(METAFILEPICT16));
if (hmf16)
{
Expand All @@ -1077,6 +1073,30 @@ HGLOBAL16 WINAPI OleGetIconOfClass16(REFCLSID rclsid, LPSTR lpszLabel, BOOL fUse
GlobalFree(hMetaPict);
return hmf16;
}
HGLOBAL16 WINAPI OleGetIconOfFile16(LPSTR lpszPath, BOOL fUseTypeAsLabel)
{
LPOLESTR lpwszPath;
HGLOBAL hMetaPict;
TRACE("(%s,%s,%d)\n", debugstr_a(lpszPath), fUseTypeAsLabel);
lpwszPath = strdupAtoW(lpszPath);
hMetaPict = OleGetIconOfFile(lpwszPath, fUseTypeAsLabel);
HeapFree(GetProcessHeap(), 0, lpwszPath);
return create_metafilepict16(hMetaPict);
}

HGLOBAL16 WINAPI OleGetIconOfClass16(REFCLSID rclsid, LPSTR lpszLabel, BOOL fUseTypeAsLabel)
{
LPOLESTR lpwszLabel;
HGLOBAL hMetaPict;
METAFILEPICT *pict;
HGLOBAL16 hmf16;
DWORD len;
TRACE("(%s,%s,%d)\n", debugstr_guid(rclsid), debugstr_a(lpszLabel), fUseTypeAsLabel);
lpwszLabel = strdupAtoW(lpszLabel);
hMetaPict = OleGetIconOfClass(rclsid, lpwszLabel, fUseTypeAsLabel);
HeapFree(GetProcessHeap(), 0, lpwszLabel);
return create_metafilepict16(hMetaPict);
}

/* {0975C22A-6BA7-420E-9CD3-4763999EFB68} (dummy) */
static const IID IID_OLESTREAM32 = { 0x975c22a, 0x6ba7, 0x420e, { 0x9c, 0xd3, 0x47, 0x63, 0x99, 0x9e, 0xfb, 0x68 } };
Expand Down
2 changes: 1 addition & 1 deletion ole2/ole2.dll16.spec
Expand Up @@ -50,7 +50,7 @@
49 pascal OleSetClipboard(segptr) OleSetClipboard16
50 pascal OleGetClipboard(ptr) OleGetClipboard16
51 pascal -ret16 OleDuplicateData(word word word) OleDuplicateData16
52 stub OLEGETICONOFFILE
52 pascal -ret16 OleGetIconOfFile(str word) OleGetIconOfFile16
53 pascal -ret16 OleGetIconOfClass(ptr str word) OleGetIconOfClass16
54 pascal CreateILockBytesOnHGlobal(word word ptr) CreateILockBytesOnHGlobal16
55 pascal GetHGlobalFromILockBytes(segptr ptr) GetHGlobalFromILockBytes16
Expand Down

0 comments on commit f3feec2

Please sign in to comment.