本文整理汇总了C++中shdebugstr_guid函数的典型用法代码示例。如果您正苦于以下问题:C++ shdebugstr_guid函数的具体用法?C++ shdebugstr_guid怎么用?C++ shdebugstr_guid使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了shdebugstr_guid函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: DllGetClassObject
/*************************************************************************
* DllGetClassObject [[email protected]]
* SHDllGetClassObject [SHELL32.128]
*/
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
{
HRESULT hres = E_OUTOFMEMORY;
IClassFactory * pcf = NULL;
int i;
TRACE("CLSID:%s,IID:%s\n",shdebugstr_guid(rclsid),shdebugstr_guid(iid));
if (!ppv) return E_INVALIDARG;
*ppv = NULL;
/* search our internal interface table */
for(i=0;InterfaceTable[i].riid;i++) {
if(IsEqualIID(InterfaceTable[i].riid, rclsid)) {
TRACE("index[%u]\n", i);
pcf = IDefClF_fnConstructor(InterfaceTable[i].lpfnCI, NULL, NULL);
}
}
if (!pcf) {
FIXME("failed for CLSID=%s\n", shdebugstr_guid(rclsid));
return CLASS_E_CLASSNOTAVAILABLE;
}
hres = IClassFactory_QueryInterface(pcf, iid, ppv);
IClassFactory_Release(pcf);
TRACE("-- pointer to class factory: %p\n",*ppv);
return hres;
}
开发者ID:mikekap,项目名称:wine,代码行数:34,代码来源:shellole.c
示例2: IShellItemArray_fnBindToHandler
static HRESULT WINAPI IShellItemArray_fnBindToHandler(IShellItemArray *iface,
IBindCtx *pbc,
REFGUID bhid,
REFIID riid,
void **ppvOut)
{
IShellItemArrayImpl *This = impl_from_IShellItemArray(iface);
FIXME("Stub: %p (%p, %s, %s, %p)\n",
This, pbc, shdebugstr_guid(bhid), shdebugstr_guid(riid), ppvOut);
return E_NOTIMPL;
}
开发者ID:karolherbst,项目名称:wine,代码行数:12,代码来源:shellitem.c
示例3: TRACE
/******************************************************************************
* IDefClF_fnCreateInstance
*/
HRESULT WINAPI IDefClFImpl::CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
{
TRACE("%p->(%p,%s,%p)\n", this, pUnkOuter, shdebugstr_guid(&riid), ppvObject);
*ppvObject = NULL;
if (riidInst == NULL || IsEqualCLSID(riid, *riidInst) || IsEqualCLSID(riid, IID_IUnknown))
{
return lpfnCI(pUnkOuter, riid, ppvObject);
}
ERR("unknown IID requested %s\n", shdebugstr_guid(&riid));
return E_NOINTERFACE;
}
开发者ID:RareHare,项目名称:reactos,代码行数:17,代码来源:shellole.cpp
示例4: ISF_MyComputer_Constructor
/**************************************************************************
* ISF_MyComputer_Constructor
*/
HRESULT WINAPI ISF_MyComputer_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
{
IMyComputerFolderImpl *sf;
TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
if (!ppv)
return E_POINTER;
if (pUnkOuter)
return CLASS_E_NOAGGREGATION;
sf = LocalAlloc (LMEM_ZEROINIT, sizeof (IMyComputerFolderImpl));
if (!sf)
return E_OUTOFMEMORY;
sf->ref = 0;
sf->IShellFolder2_iface.lpVtbl = &vt_ShellFolder2;
sf->IPersistFolder2_iface.lpVtbl = &vt_PersistFolder2;
sf->pidlRoot = _ILCreateMyComputer (); /* my qualified pidl */
if (FAILED (IUnknown_QueryInterface (&sf->IShellFolder2_iface, riid, ppv)))
{
IUnknown_Release (&sf->IShellFolder2_iface);
return E_NOINTERFACE;
}
TRACE ("--(%p)\n", sf);
return S_OK;
}
开发者ID:CSRedRat,项目名称:RosWine,代码行数:32,代码来源:shfldr_mycomp.c
示例5: TRACE
/**************************************************************************
* CPrinterFolder::GetUIObjectOf
*
* PARAMETERS
* HWND hwndOwner, //[in ] Parent window for any output
* UINT cidl, //[in ] array size
* LPCITEMIDLIST* apidl, //[in ] simple pidl array
* REFIID riid, //[in ] Requested Interface
* UINT* prgfInOut, //[ ] reserved
* LPVOID* ppvObject) //[out] Resulting Interface
*
*/
HRESULT WINAPI CPrinterFolder::GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl,
REFIID riid, UINT * prgfInOut, LPVOID * ppvOut)
{
IUnknown *pObj = NULL;
HRESULT hr = E_INVALIDARG;
TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
this, hwndOwner, cidl, apidl, shdebugstr_guid (&riid), prgfInOut, ppvOut);
if (!ppvOut)
return hr;
*ppvOut = NULL;
if ((IsEqualIID (riid, IID_IExtractIconA) || IsEqualIID(riid, IID_IExtractIconW)) && cidl == 1)
hr = IEI_Printers_Constructor(apidl[0], riid, &pObj);
else
hr = E_NOINTERFACE;
if (SUCCEEDED(hr) && !pObj)
hr = E_OUTOFMEMORY;
*ppvOut = pObj;
TRACE ("(%p)->hr=0x%08lx\n", this, hr);
return hr;
}
开发者ID:Nevermore2015,项目名称:reactos,代码行数:38,代码来源:printers.cpp
示例6: CompositeCMenu_Constructor
static HRESULT CompositeCMenu_Constructor(IContextMenu **menus,UINT menu_count, REFIID riid, void **ppv)
{
CompositeCMenu *ret = HeapAlloc(GetProcessHeap(),0,sizeof(CompositeCMenu));
UINT i;
TRACE("(%p,%u,%s,%p)\n",menus,menu_count,shdebugstr_guid(riid),ppv);
if(!ret)
return E_OUTOFMEMORY;
ret->IContextMenu3_iface.lpVtbl = &CompositeCMenuVtbl;
ret->menu_count = menu_count;
ret->menus = HeapAlloc(GetProcessHeap(),0,menu_count*sizeof(IContextMenu*));
if(!ret->menus)
{
HeapFree(GetProcessHeap(),0,ret);
return E_OUTOFMEMORY;
}
ret->offsets = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,menu_count*sizeof(UINT));
if(!ret->offsets)
{
HeapFree(GetProcessHeap(),0,ret->menus);
HeapFree(GetProcessHeap(),0,ret);
return E_OUTOFMEMORY;
}
ret->refCount=0;
memcpy(ret->menus,menus,menu_count*sizeof(IContextMenu*));
for(i=0;i<menu_count;i++)
IContextMenu_AddRef(menus[i]);
return IContextMenu3_QueryInterface(&(ret->IContextMenu3_iface),riid,ppv);
}
开发者ID:AlexSteel,项目名称:wine,代码行数:28,代码来源:shlmenu.c
示例7: ISF_ControlPanel_fnQueryInterface
/**************************************************************************
* ISF_ControlPanel_fnQueryInterface
*
* NOTES supports not IPersist/IPersistFolder
*/
static HRESULT WINAPI ISF_ControlPanel_fnQueryInterface(IShellFolder2 * iface, REFIID riid, LPVOID * ppvObject)
{
ICPanelImpl *This = (ICPanelImpl *)iface;
TRACE("(%p)->(%s,%p)\n", This, shdebugstr_guid(riid), ppvObject);
*ppvObject = NULL;
if (IsEqualIID(riid, &IID_IUnknown) ||
IsEqualIID(riid, &IID_IShellFolder) || IsEqualIID(riid, &IID_IShellFolder2))
*ppvObject = This;
else if (IsEqualIID(riid, &IID_IPersist) ||
IsEqualIID(riid, &IID_IPersistFolder) || IsEqualIID(riid, &IID_IPersistFolder2))
*ppvObject = _IPersistFolder2_(This);
else if (IsEqualIID(riid, &IID_IShellExecuteHookW))
*ppvObject = _IShellExecuteHookW_(This);
else if (IsEqualIID(riid, &IID_IShellExecuteHookA))
*ppvObject = _IShellExecuteHookA_(This);
if (*ppvObject) {
IUnknown_AddRef((IUnknown *)(*ppvObject));
TRACE("-- Interface:(%p)->(%p)\n", ppvObject, *ppvObject);
return S_OK;
}
TRACE("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
开发者ID:howard5888,项目名称:wineT,代码行数:32,代码来源:cpanelfolder.c
示例8: IControlPanel_Constructor
/**************************************************************************
* IControlPanel_Constructor
*/
HRESULT WINAPI IControlPanel_Constructor(IUnknown* pUnkOuter, REFIID riid, LPVOID * ppv)
{
ICPanelImpl *sf;
TRACE("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid(riid));
if (!ppv)
return E_POINTER;
if (pUnkOuter && !IsEqualIID (riid, &IID_IUnknown))
return CLASS_E_NOAGGREGATION;
sf = (ICPanelImpl *) LocalAlloc(LMEM_ZEROINIT, sizeof(ICPanelImpl));
if (!sf)
return E_OUTOFMEMORY;
sf->ref = 0;
sf->lpVtbl = &vt_ShellFolder2;
sf->lpVtblPersistFolder2 = &vt_PersistFolder2;
sf->lpVtblShellExecuteHookW = &vt_ShellExecuteHookW;
sf->lpVtblShellExecuteHookA = &vt_ShellExecuteHookA;
sf->pidlRoot = _ILCreateControlPanel(); /* my qualified pidl */
sf->pUnkOuter = pUnkOuter ? pUnkOuter : _IUnknown_ (sf);
if (!SUCCEEDED(IUnknown_QueryInterface(_IUnknown_(sf), riid, ppv))) {
IUnknown_Release(_IUnknown_(sf));
return E_NOINTERFACE;
}
TRACE("--(%p)\n", sf);
return S_OK;
}
开发者ID:howard5888,项目名称:wineT,代码行数:34,代码来源:cpanelfolder.c
示例9: ISF_Fonts_Constructor
/**************************************************************************
* ISF_Fonts_Constructor
*/
HRESULT WINAPI ISF_Fonts_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
{
IGenericSFImpl *sf;
TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
if (!ppv)
return E_POINTER;
if (pUnkOuter)
return CLASS_E_NOAGGREGATION;
sf = (IGenericSFImpl *) HeapAlloc ( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IGenericSFImpl));
if (!sf)
return E_OUTOFMEMORY;
sf->ref = 0;
sf->lpVtbl = &vt_ShellFolder2;
sf->lpVtblPersistFolder2 = &vt_NP_PersistFolder2;
sf->lpVtblContextMenuFontItem = &vt_ContextMenu2FontItem;
sf->pidlRoot = _ILCreateFont(); /* my qualified pidl */
if (!SUCCEEDED (IUnknown_QueryInterface (_IUnknown_ (sf), riid, ppv)))
{
IUnknown_Release (_IUnknown_ (sf));
return E_NOINTERFACE;
}
TRACE ("--(%p)\n", sf);
return S_OK;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:33,代码来源:shfldr_fonts.c
示例10: TRACE
/**************************************************************************
* CNetFolder::CreateViewObject
*/
HRESULT WINAPI CNetFolder::CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut)
{
CComPtr<IShellView> pShellView;
HRESULT hr = E_INVALIDARG;
TRACE("(%p)->(hwnd=%p,%s,%p)\n", this,
hwndOwner, shdebugstr_guid (&riid), ppvOut);
if (!ppvOut)
return hr;
*ppvOut = NULL;
if (IsEqualIID(riid, IID_IDropTarget))
{
WARN("IDropTarget not implemented\n");
hr = E_NOTIMPL;
}
else if (IsEqualIID(riid, IID_IContextMenu))
{
WARN("IContextMenu not implemented\n");
hr = E_NOTIMPL;
}
else if (IsEqualIID(riid, IID_IShellView))
{
SFV_CREATE sfvparams = {sizeof(SFV_CREATE), this};
hr = SHCreateShellFolderView(&sfvparams, (IShellView**)ppvOut);
}
TRACE("-- (%p)->(interface=%p)\n", this, ppvOut);
return hr;
}
开发者ID:Moteesh,项目名称:reactos,代码行数:34,代码来源:CNetFolder.cpp
示例11: ShellDispatch_QueryInterface
static HRESULT WINAPI ShellDispatch_QueryInterface(IShellDispatch5 *iface,
REFIID riid, LPVOID *ppv)
{
ShellDispatch *This = impl_from_IShellDispatch5(iface);
TRACE("(%p,%p,%p)\n", iface, riid, ppv);
if (!ppv) return E_INVALIDARG;
if (IsEqualIID(&IID_IUnknown, riid) ||
IsEqualIID(&IID_IDispatch, riid) ||
IsEqualIID(&IID_IShellDispatch, riid) ||
IsEqualIID(&IID_IShellDispatch2, riid) ||
IsEqualIID(&IID_IShellDispatch3, riid) ||
IsEqualIID(&IID_IShellDispatch4, riid) ||
IsEqualIID(&IID_IShellDispatch5, riid))
*ppv = &This->IShellDispatch5_iface;
else
{
FIXME("not implemented for %s\n", shdebugstr_guid(riid));
*ppv = NULL;
return E_NOINTERFACE;
}
IShellDispatch5_AddRef(iface);
return S_OK;
}
开发者ID:Dimillian,项目名称:wine,代码行数:27,代码来源:shelldispatch.c
示例12: SHCreateShellItemArrayFromShellItem
HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv)
{
IShellItemArrayImpl *This;
IShellItem **array;
HRESULT ret;
TRACE("%p, %s, %p\n", psi, shdebugstr_guid(riid), ppv);
array = HeapAlloc(GetProcessHeap(), 0, sizeof(IShellItem*));
if(!array)
return E_OUTOFMEMORY;
ret = IShellItemArray_Constructor(NULL, riid, (void**)&This);
if(SUCCEEDED(ret))
{
array[0] = psi;
IShellItem_AddRef(psi);
This->array = array;
This->item_count = 1;
*ppv = This;
}
else
{
HeapFree(GetProcessHeap(), 0, array);
*ppv = NULL;
}
return ret;
}
开发者ID:Dietr1ch,项目名称:wine,代码行数:29,代码来源:shellitem.c
示例13: IAutoComplete_fnQueryInterface
/**************************************************************************
* AutoComplete_QueryInterface
*/
static HRESULT WINAPI IAutoComplete_fnQueryInterface(
IAutoComplete * iface,
REFIID riid,
LPVOID *ppvObj)
{
IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface;
TRACE("(%p)->(\n\tIID:\t%s,%p)\n", This, shdebugstr_guid(riid), ppvObj);
*ppvObj = NULL;
if(IsEqualIID(riid, &IID_IUnknown))
{
*ppvObj = This;
}
else if(IsEqualIID(riid, &IID_IAutoComplete))
{
*ppvObj = (IAutoComplete*)This;
}
else if(IsEqualIID(riid, &IID_IAutoComplete2))
{
*ppvObj = _IAutoComplete2_ (This);
}
if (*ppvObj)
{
IAutoComplete_AddRef((IAutoComplete*)*ppvObj);
TRACE("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
return S_OK;
}
TRACE("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
开发者ID:WASSUM,项目名称:longene_travel,代码行数:35,代码来源:autocomplete.c
示例14: IDropTargetHelper_Constructor
/**************************************************************************
* IDropTargetHelper_Constructor
*/
HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
{
IDropTargetHelperImpl *dth;
TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
if (!ppv)
return E_POINTER;
if (pUnkOuter)
return CLASS_E_NOAGGREGATION;
dth = (IDropTargetHelperImpl *) LocalAlloc (LMEM_ZEROINIT, sizeof (IDropTargetHelperImpl));
if (!dth) return E_OUTOFMEMORY;
dth->ref = 0;
dth->lpVtbl = &vt_IDropTargetHelper;
if (!SUCCEEDED (IUnknown_QueryInterface (_IUnknown_ (dth), riid, ppv))) {
IUnknown_Release (_IUnknown_ (dth));
return E_NOINTERFACE;
}
TRACE ("--(%p)\n", dth);
return S_OK;
}
开发者ID:howard5888,项目名称:wineT,代码行数:28,代码来源:dragdrophelper.c
示例15: ISF_Printers_Constructor
/**************************************************************************
* ISF_Printers_Constructor
*/
HRESULT WINAPI ISF_Printers_Constructor (
IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
{
IGenericSFImpl *sf;
HRESULT hr;
TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
if (pUnkOuter)
return CLASS_E_NOAGGREGATION;
sf = HeapAlloc( GetProcessHeap(), 0, sizeof(*sf) );
if (!sf)
return E_OUTOFMEMORY;
sf->ref = 1;
sf->lpVtbl = &vt_ShellFolder2;
sf->lpVtblPersistFolder2 = &vt_PersistFolder2;
sf->pidlRoot = _ILCreatePrinters(); /* my qualified pidl */
hr = IUnknown_QueryInterface( _IUnknown_(sf), riid, ppv );
IUnknown_Release( _IUnknown_(sf) );
TRACE ("--(%p)\n", *ppv);
return hr;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:30,代码来源:shfldr_printers.c
示例16: ISF_Printers_fnGetUIObjectOf
/**************************************************************************
* ISF_Printers_fnGetUIObjectOf
*
* PARAMETERS
* HWND hwndOwner, //[in ] Parent window for any output
* UINT cidl, //[in ] array size
* LPCITEMIDLIST* apidl, //[in ] simple pidl array
* REFIID riid, //[in ] Requested Interface
* UINT* prgfInOut, //[ ] reserved
* LPVOID* ppvObject) //[out] Resulting Interface
*
*/
static HRESULT WINAPI ISF_Printers_fnGetUIObjectOf (IShellFolder2 * iface,
HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl,
REFIID riid, UINT * prgfInOut, LPVOID * ppvOut)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
IUnknown *pObj = NULL;
HRESULT hr = E_INVALIDARG;
TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
This, hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut);
if (!ppvOut)
return hr;
*ppvOut = NULL;
if ((IsEqualIID (riid, &IID_IExtractIconA) || IsEqualIID(riid, &IID_IExtractIconW)) && (cidl == 1))
{
IUnknown *pUnk = IEI_Printers_Constructor(apidl[0]);
hr = IUnknown_QueryInterface(pUnk, riid, (void**)&pObj);
IUnknown_Release(pUnk);
}
else
hr = E_NOINTERFACE;
if (SUCCEEDED(hr) && !pObj)
hr = E_OUTOFMEMORY;
*ppvOut = pObj;
TRACE ("(%p)->hr=0x%08lx\n", This, hr);
return hr;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:44,代码来源:shfldr_printers.c
示例17: ISF_Printers_fnQueryInterface
/**************************************************************************
* ISF_Printers_fnQueryInterface
*
* NOTE does not support IPersist/IPersistFolder
*/
static HRESULT WINAPI ISF_Printers_fnQueryInterface(
IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj)
{
IGenericSFImpl *This = (IGenericSFImpl *)iface;
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
*ppvObj = NULL;
if (IsEqualIID (riid, &IID_IUnknown) ||
IsEqualIID (riid, &IID_IShellFolder) ||
IsEqualIID (riid, &IID_IShellFolder2))
{
*ppvObj = _IShellFolder_(This);
}
else if (IsEqualIID (riid, &IID_IPersist) ||
IsEqualIID (riid, &IID_IPersistFolder) ||
IsEqualIID (riid, &IID_IPersistFolder2))
{
*ppvObj = _IPersistFolder2_ (This);
}
if (*ppvObj)
{
IUnknown_AddRef ((IUnknown *) (*ppvObj));
TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
return S_OK;
}
TRACE ("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:37,代码来源:shfldr_printers.c
示例18: IDropTargetHelper_fnQueryInterface
/**************************************************************************
* IDropTargetHelper_fnQueryInterface
*/
static HRESULT WINAPI IDropTargetHelper_fnQueryInterface (IDropTargetHelper * iface, REFIID riid, LPVOID * ppvObj)
{
dragdrophelper *This = impl_from_IDropTargetHelper(iface);
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
*ppvObj = NULL;
if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IDropTargetHelper))
{
*ppvObj = &This->IDropTargetHelper_iface;
}
else if (IsEqualIID (riid, &IID_IDragSourceHelper))
{
*ppvObj = &This->IDragSourceHelper_iface;
}
if (*ppvObj) {
IUnknown_AddRef ((IUnknown *) (*ppvObj));
TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
return S_OK;
}
FIXME ("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
开发者ID:AndreRH,项目名称:wine,代码行数:28,代码来源:dragdrophelper.c
示例19: ShellItem2_GetPropertyStore
static HRESULT WINAPI ShellItem2_GetPropertyStore(IShellItem2 *iface, GETPROPERTYSTOREFLAGS flags,
REFIID riid, void **ppv)
{
ShellItem *This = impl_from_IShellItem2(iface);
FIXME("Stub: %p (%d, %s, %p)\n", This, flags, shdebugstr_guid(riid), ppv);
return E_NOTIMPL;
}
开发者ID:karolherbst,项目名称:wine,代码行数:7,代码来源:shellitem.c
示例20: ISF_NetworkPlaces_Constructor
/**************************************************************************
* ISF_NetworkPlaces_Constructor
*/
HRESULT WINAPI ISF_NetworkPlaces_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
{
IGenericSFImpl *sf;
TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
if (!ppv)
return E_POINTER;
if (pUnkOuter)
return CLASS_E_NOAGGREGATION;
sf = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IGenericSFImpl));
if (!sf)
return E_OUTOFMEMORY;
sf->ref = 0;
sf->IShellFolder2_iface.lpVtbl = &vt_ShellFolder2;
sf->IPersistFolder2_iface.lpVtbl = &vt_NP_PersistFolder2;
sf->pidlRoot = _ILCreateNetHood(); /* my qualified pidl */
if (FAILED (IShellFolder2_QueryInterface (&sf->IShellFolder2_iface, riid, ppv)))
{
IShellFolder2_Release (&sf->IShellFolder2_iface);
return E_NOINTERFACE;
}
TRACE ("--(%p)\n", sf);
return S_OK;
}
开发者ID:bpowers,项目名称:wine,代码行数:32,代码来源:shfldr_netplaces.c
注:本文中的shdebugstr_guid函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论