ole32: Get CLSID from IStorage object in WriteFmtUserTypeStg.

This commit is contained in:
Piotr Caban 2014-04-07 18:55:50 +02:00 committed by Alexandre Julliard
parent 046d7c6d42
commit 2db5418e02
1 changed files with 7 additions and 6 deletions

View File

@ -8760,9 +8760,10 @@ static HRESULT STORAGE_WriteCompObj( LPSTORAGE pstg, CLSID *clsid,
HRESULT WINAPI WriteFmtUserTypeStg( HRESULT WINAPI WriteFmtUserTypeStg(
LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType) LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType)
{ {
STATSTG stat;
HRESULT r; HRESULT r;
WCHAR szwClipName[0x40]; WCHAR szwClipName[0x40];
CLSID clsid = CLSID_NULL; CLSID clsid;
LPWSTR wstrProgID = NULL; LPWSTR wstrProgID = NULL;
DWORD n; DWORD n;
@ -8778,12 +8779,12 @@ HRESULT WINAPI WriteFmtUserTypeStg(
TRACE("Clipboard name is %s\n", debugstr_w(szwClipName)); TRACE("Clipboard name is %s\n", debugstr_w(szwClipName));
/* FIXME: There's room to save a CLSID and its ProgID, but r = IStorage_Stat(pstg, &stat, STATFLAG_NONAME);
the CLSID is not looked up in the registry and in all the if(SUCCEEDED(r))
tests I wrote it was CLSID_NULL. Where does it come from? clsid = stat.clsid;
*/ else
clsid = CLSID_NULL;
/* get the real program ID. This may fail, but that's fine */
ProgIDFromCLSID(&clsid, &wstrProgID); ProgIDFromCLSID(&clsid, &wstrProgID);
TRACE("progid is %s\n",debugstr_w(wstrProgID)); TRACE("progid is %s\n",debugstr_w(wstrProgID));