这篇教程C++ ILClone函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ILClone函数的典型用法代码示例。如果您正苦于以下问题:C++ ILClone函数的具体用法?C++ ILClone怎么用?C++ ILClone使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ILClone函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: m_hwndCFileContextMenuManager::CFileContextMenuManager(HWND hwnd, LPITEMIDLIST pidlParent,std::list<LPITEMIDLIST> pidlItemList) :m_hwnd(hwnd),m_pidlParent(ILClone(pidlParent)),m_pShellContext3(NULL),m_pShellContext2(NULL),m_pShellContext(NULL){ IContextMenu *pContextMenu = NULL; HRESULT hr; for each(auto pidl in pidlItemList) { m_pidlItemList.push_back(ILClone(pidl)); }
开发者ID:linquize,项目名称:explorerplus-custom,代码行数:15,
示例2: ILCloneHRESULT WINAPI CRecycleBinItemContextMenu::Initialize(LPCITEMIDLIST pidl){ apidl = ILClone(pidl); if (apidl == NULL) return E_OUTOFMEMORY; return S_OK;}
开发者ID:Moteesh,项目名称:reactos,代码行数:7,
示例3: CDS_IDLDropTarget_CreateHRESULT CDS_IDLDropTarget_Create(HWND hwndOwner, IDropTargetVtbl *lpVtbl, LPCITEMIDLIST pidl, LPDROPTARGET *ppdropt){ LPIDLDROPTARGET pidldt = (void*)LocalAlloc(LPTR, SIZEOF(CIDLDropTarget)); if (pidldt) { pidldt->pidl = ILClone(pidl); if (pidldt->pidl) { pidldt->dropt.lpVtbl = lpVtbl; pidldt->cRef = 1; pidldt->hwndOwner = hwndOwner; Assert(pidldt->pdtgAgr == NULL); *ppdropt = &pidldt->dropt; return S_OK; } else LocalFree((HLOCAL)pidldt); } *ppdropt = NULL; return E_OUTOFMEMORY;}
开发者ID:mingpen,项目名称:OpenNT,代码行数:25,
示例4: SHCreateDefaultContextMenuHRESULT WINAPI SHCreateDefaultContextMenu(const DEFCONTEXTMENU *pdcm, REFIID riid, void **ppv){ IShellFolder *folder=pdcm->psf; LPITEMIDLIST folder_pidl; HRESULT ret; IContextMenu *system_menu; TRACE("(%p,%s,%p)/n",pdcm,shdebugstr_guid(riid),ppv); if(!pdcm->pidlFolder) { IPersistFolder2 *persist; IShellFolder_QueryInterface(folder,&IID_IPersistFolder2,(void**)&persist); IPersistFolder2_GetCurFolder(persist,&folder_pidl); IPersistFolder2_Release(persist); } else folder_pidl=ILClone(pdcm->pidlFolder); if(pdcm->cKeys==0) FIXME("Loading shell extensions using IQueryAssociations not yet supported/n"); ItemMenu_Constructor(folder, folder_pidl, (const LPCITEMIDLIST*)pdcm->apidl, pdcm->cidl, &IID_IContextMenu, (void**)&system_menu); ret = SHELL_CreateContextMenu(pdcm->hwnd,system_menu,folder,folder_pidl,(LPCITEMIDLIST*)pdcm->apidl,pdcm->cidl,pdcm->aKeys,pdcm->cKeys,riid,ppv); IContextMenu_Release(system_menu); ILFree(folder_pidl); return ret;}
开发者ID:AlexSteel,项目名称:wine,代码行数:25,
示例5: IDataObject_Constructor/*************************************************************************** IDataObject_Constructor*/LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, LPITEMIDLIST pMyPidl, LPITEMIDLIST * apidl, UINT cidl){ IDataObjectImpl* dto; dto = (IDataObjectImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDataObjectImpl)); if (dto) { dto->ref = 1; ICOM_VTBL(dto) = &dtovt; dto->pidl = ILClone(pMyPidl); dto->apidl = _ILCopyaPidl(apidl, cidl); dto->cidl = cidl; dto->cfShellIDList = RegisterClipboardFormatA(CFSTR_SHELLIDLIST); dto->cfFileName = RegisterClipboardFormatA(CFSTR_FILENAMEA); InitFormatEtc(dto->pFormatEtc[0], dto->cfShellIDList, TYMED_HGLOBAL); InitFormatEtc(dto->pFormatEtc[1], CF_HDROP, TYMED_HGLOBAL); InitFormatEtc(dto->pFormatEtc[2], dto->cfFileName, TYMED_HGLOBAL); shell32_ObjCount++; } TRACE("(%p)->(apidl=%p cidl=%u)/n",dto, apidl, cidl); return (LPDATAOBJECT)dto;}
开发者ID:NVIDIA,项目名称:winex_lgpl,代码行数:29,
示例6: ItemMenu_ConstructorHRESULT ItemMenu_Constructor(IShellFolder *parent, LPCITEMIDLIST pidl, const LPCITEMIDLIST *apidl, UINT cidl, REFIID riid, void **pObj){ ContextMenu* This; HRESULT hr; UINT i; This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); if (!This) return E_OUTOFMEMORY; This->IContextMenu3_iface.lpVtbl = &ItemContextMenuVtbl; This->ref = 1; This->parent = parent; if (parent) IShellFolder_AddRef(parent); This->pidl = ILClone(pidl); This->apidl = _ILCopyaPidl(apidl, cidl); This->cidl = cidl; This->allvalues = TRUE; This->desktop = FALSE; for (i = 0; i < cidl; i++) This->allvalues &= (_ILIsValue(apidl[i]) ? 1 : 0); hr = IContextMenu3_QueryInterface(&This->IContextMenu3_iface, riid, pObj); IContextMenu3_Release(&This->IContextMenu3_iface); return hr;}
开发者ID:AndreRH,项目名称:wine,代码行数:30,
示例7: TRACE/************************************************************************** * CPrinterFolder::GetCurFolder */HRESULT WINAPI CPrinterFolder::GetCurFolder(LPITEMIDLIST * pidl){ TRACE ("(%p)->(%p)/n", this, pidl); *pidl = ILClone (pidlRoot); return S_OK;}
开发者ID:Nevermore2015,项目名称:reactos,代码行数:10,
示例8: HeapAlloc/*************************************************************************** ISvItemCm_Constructor()*/IContextMenu2 *ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, const LPCITEMIDLIST *apidl, UINT cidl){ ItemCmImpl* cm; UINT u; cm = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(ItemCmImpl)); cm->IContextMenu2_iface.lpVtbl = &cmvt; cm->ref = 1; cm->pidl = ILClone(pidl); cm->pSFParent = pSFParent; if(pSFParent) IShellFolder_AddRef(pSFParent); cm->apidl = _ILCopyaPidl(apidl, cidl); cm->cidl = cidl; cm->bAllValues = 1; for(u = 0; u < cidl; u++) { cm->bAllValues &= (_ILIsValue(apidl[u]) ? 1 : 0); } TRACE("(%p)->()/n",cm); return &cm->IContextMenu2_iface;}
开发者ID:aragaer,项目名称:wine,代码行数:28,
示例9: _ILReadFromSharedMemorystatic LPITEMIDLIST _ILReadFromSharedMemory(PCWSTR strField){ LPITEMIDLIST ret = NULL; // Ensure it really is an IDLIST-formatted parameter // Format for IDLIST params: ":pid:shared" if (*strField != L':') return NULL; HANDLE hData = (HANDLE) StrToIntW(strField + 1); PWSTR strSecond = StrChrW(strField + 1, L':'); if (strSecond) { int pid = StrToIntW(strSecond + 1); void* pvShared = SHLockShared(hData, pid); if (pvShared) { ret = ILClone((LPCITEMIDLIST) pvShared); SHUnlockShared(pvShared); SHFreeShared(hData, pid); } } return ret;}
开发者ID:RPG-7,项目名称:reactos,代码行数:25,
示例10: CDefFolderMenu_Create2HRESULT WINAPI CDefFolderMenu_Create2(LPCITEMIDLIST pidlFolder, HWND hwnd, UINT cidl, LPCITEMIDLIST *apidl, IShellFolder *psf, LPFNDFMCALLBACK lpfn, UINT nKeys, const HKEY *ahkeys, IContextMenu **ppcm){ IContextMenu *system_menu; HRESULT hres; LPITEMIDLIST folder_pidl; TRACE("(%p,%p,%u,%p,%p,%u,%p,%p)/n",pidlFolder,hwnd,cidl,apidl,psf,nKeys,ahkeys,ppcm); if(!pidlFolder) { IPersistFolder2 *persist; IShellFolder_QueryInterface(psf,&IID_IPersistFolder2,(void**)&persist); IPersistFolder2_GetCurFolder(persist,&folder_pidl); IPersistFolder2_Release(persist); } else folder_pidl=ILClone(pidlFolder); ItemMenu_Constructor(psf, folder_pidl, (const LPCITEMIDLIST*)apidl, cidl, &IID_IContextMenu, (void**)&system_menu); hres= SHELL_CreateContextMenu(hwnd,system_menu,psf,folder_pidl,apidl,cidl,ahkeys,nKeys,&IID_IContextMenu,(void**)ppcm); IContextMenu_Release(system_menu); ILFree(folder_pidl); return hres;}
开发者ID:AlexSteel,项目名称:wine,代码行数:25,
示例11: RecycleBin_GetCurFolderstatic HRESULT WINAPI RecycleBin_GetCurFolder(IPersistFolder2 *iface, LPITEMIDLIST *ppidl){ RecycleBin *This = impl_from_IPersistFolder2(iface); TRACE("/n"); *ppidl = ILClone(This->pidl); return S_OK;}
开发者ID:YokoZar,项目名称:wine,代码行数:7,
示例12: SHFree/************************************************************************ * ISF_NetConnect_PersistFolder2_Initialize * * NOTES: it makes no sense to change the pidl */HRESULT WINAPI CNetworkConnections::Initialize(PCIDLIST_ABSOLUTE pidl){ SHFree(m_pidlRoot); m_pidlRoot = ILClone(pidl); return S_OK;}
开发者ID:GYGit,项目名称:reactos,代码行数:12,
示例13: BrsFolder_OnCommandstatic BOOL BrsFolder_OnCommand( browse_info *info, UINT id ){ LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; switch (id) { case IDOK: /* The original pidl is owned by the treeview and will be free'd. */ info->pidlRet = ILClone(info->pidlRet); if (info->pidlRet == NULL) /* A null pidl would mean a cancel */ info->pidlRet = _ILCreateDesktop(); pdump( info->pidlRet ); if (lpBrowseInfo->pszDisplayName) SHGetPathFromIDListW( info->pidlRet, lpBrowseInfo->pszDisplayName ); EndDialog( info->hWnd, 1 ); return TRUE; case IDCANCEL: EndDialog( info->hWnd, 0 ); return TRUE; case IDD_MAKENEWFOLDER: FIXME("make new folder not implemented/n"); return TRUE; } return FALSE;}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:27,
示例14: ISF_Desktop_IPersistFolder2_fnGetCurFolderstatic HRESULT WINAPI ISF_Desktop_IPersistFolder2_fnGetCurFolder( IPersistFolder2 *iface, LPITEMIDLIST *ppidl){ IDesktopFolderImpl *This = impl_from_IPersistFolder2( iface ); *ppidl = ILClone(This->pidlRoot); return S_OK;}
开发者ID:CSRedRat,项目名称:RosWine,代码行数:7,
示例15: SHFree/************************************************************************ * ISF_NetConnect_PersistFolder2_Initialize * * NOTES: it makes no sense to change the pidl */HRESULT WINAPI CNetworkConnections::Initialize(LPCITEMIDLIST pidl){ SHFree(pidlRoot); pidlRoot = ILClone(pidl); return S_OK;}
开发者ID:RareHare,项目名称:reactos,代码行数:12,
示例16: ILCloneHRESULT CMenuSFToolbar::GetShellFolder(DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv){ HRESULT hr; hr = m_shellFolder->QueryInterface(riid, ppv); if (FAILED_UNEXPECTEDLY(hr)) return hr; if (pdwFlags) *pdwFlags = m_dwMenuFlags; if (ppidl) { LPITEMIDLIST pidl = NULL; if (m_idList) { pidl = ILClone(m_idList); if (!pidl) { ERR("ILClone failed!/n"); (*reinterpret_cast<IUnknown**>(ppv))->Release(); return E_FAIL; } } *ppidl = pidl; } return hr;}
开发者ID:mvardan,项目名称:ros-svn-mirror,代码行数:31,
示例17: BrsFolder_OnCommandstatic BOOL BrsFolder_OnCommand( browse_info *info, UINT id ){ LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; switch (id) { case IDOK:#ifdef __REACTOS__ /* The original pidl is owned by the treeview and will be free'd. */ info->pidlRet = ILClone(info->pidlRet);#endif if (info->pidlRet == NULL) /* A null pidl would mean a cancel */ info->pidlRet = _ILCreateDesktop(); pdump( info->pidlRet ); if (lpBrowseInfo->pszDisplayName) SHGetPathFromIDListW( info->pidlRet, lpBrowseInfo->pszDisplayName ); EndDialog( info->hWnd, 1 ); return TRUE; case IDCANCEL: EndDialog( info->hWnd, 0 ); return TRUE; case IDC_BROWSE_FOR_FOLDER_NEW_FOLDER: BrsFolder_NewFolder(info); return TRUE; } return FALSE;}
开发者ID:GYGit,项目名称:reactos,代码行数:29,
示例18: ILCloneHRESULT WINAPI CPrintersExtractIconW::Initialize(LPCITEMIDLIST pidl){ pidl = ILClone(pidl); pdump(pidl); return S_OK;}
开发者ID:Nevermore2015,项目名称:reactos,代码行数:7,
示例19: SHELL32_SetNameOfGuidItemHRESULT SHELL32_SetNameOfGuidItem(PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut){ GUID const *clsid = _ILGetGUIDPointer (pidl); LPOLESTR pStr; HRESULT hr; WCHAR szName[100]; if (!clsid) { ERR("Pidl is not reg item!/n"); return E_FAIL; } hr = StringFromCLSID(*clsid, &pStr); if (FAILED_UNEXPECTEDLY(hr)) return hr; swprintf(szName, L"Software//Microsoft//Windows//CurrentVersion//Explorer//CLSID//%s", pStr); DWORD cbData = (wcslen(lpName) + 1) * sizeof(WCHAR); LONG res = SHSetValueW(HKEY_CURRENT_USER, szName, NULL, RRF_RT_REG_SZ, lpName, cbData); CoTaskMemFree(pStr); if (res == ERROR_SUCCESS) { *pPidlOut = ILClone(pidl); return S_OK; } return E_FAIL;}
开发者ID:GYGit,项目名称:reactos,代码行数:32,
示例20: IExplorerBrowserEventsImpl_fnOnNavigationCompletestatic HRESULT WINAPI IExplorerBrowserEventsImpl_fnOnNavigationComplete(IExplorerBrowserEvents *iface, PCIDLIST_ABSOLUTE pidl){ IExplorerBrowserEventsImpl *This = impl_from_IExplorerBrowserEvents(iface); ILFree(This->info->pidl); This->info->pidl = ILClone(pidl); update_path_box(This->info); return S_OK;}
开发者ID:Sunmonds,项目名称:wine,代码行数:8,
示例21: TRACEHRESULT WINAPI CDesktopFolder::GetCurFolder(LPITEMIDLIST * pidl){ TRACE ("(%p)->(%p)/n", this, pidl); if (!pidl) return E_POINTER; *pidl = ILClone (pidlRoot); return S_OK;}
开发者ID:mvardan,项目名称:reactos,代码行数:8,
示例22: SHFree/************************************************************************ * CNetFolder::Initialize * * NOTES: it makes no sense to change the pidl */HRESULT WINAPI CNetFolder::Initialize(LPCITEMIDLIST pidl){ if (pidlRoot) SHFree((LPVOID)pidlRoot); pidlRoot = ILClone(pidl); return S_OK;}
开发者ID:Moteesh,项目名称:reactos,代码行数:13,
示例23: GetCurFolder/************************************************************************** * ISF_NetConnect_PersistFolder2_GetCurFolder */HRESULT WINAPI CNetworkConnections::GetCurFolder(LPITEMIDLIST *pidl){ if (!pidl) return E_POINTER; *pidl = ILClone(pidlRoot); return S_OK;}
开发者ID:RareHare,项目名称:reactos,代码行数:12,
示例24: GetCurFolder/************************************************************************** * ISF_NetConnect_PersistFolder2_GetCurFolder */HRESULT WINAPI CNetworkConnections::GetCurFolder(PIDLIST_ABSOLUTE *pidl){ if (!pidl) return E_POINTER; *pidl = ILClone(m_pidlRoot); return S_OK;}
开发者ID:GYGit,项目名称:reactos,代码行数:12,
示例25: SHCreateShellItemHRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent, IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi){ LPITEMIDLIST new_pidl; HRESULT ret; TRACE("(%p,%p,%p,%p)/n", pidlParent, psfParent, pidl, ppsi); *ppsi = NULL; if (!pidl) { return E_INVALIDARG; } else if (pidlParent || psfParent) { LPITEMIDLIST temp_parent=NULL; if (!pidlParent) { IPersistFolder2* ppf2Parent; if (FAILED(IShellFolder_QueryInterface(psfParent, &IID_IPersistFolder2, (void**)&ppf2Parent))) { FIXME("couldn't get IPersistFolder2 interface of parent/n"); return E_NOINTERFACE; } if (FAILED(IPersistFolder2_GetCurFolder(ppf2Parent, &temp_parent))) { FIXME("couldn't get parent PIDL/n"); IPersistFolder2_Release(ppf2Parent); return E_NOINTERFACE; } pidlParent = temp_parent; IPersistFolder2_Release(ppf2Parent); } new_pidl = ILCombine(pidlParent, pidl); ILFree(temp_parent); if (!new_pidl) return E_OUTOFMEMORY; } else { new_pidl = ILClone(pidl); if (!new_pidl) return E_OUTOFMEMORY; } ret = SHCreateItemFromIDList(new_pidl, &IID_IShellItem, (void**)ppsi); ILFree(new_pidl); return ret;}
开发者ID:karolherbst,项目名称:wine,代码行数:56,
示例26: RecycleBin_Initializestatic HRESULT WINAPI RecycleBin_Initialize(IPersistFolder2 *iface, LPCITEMIDLIST pidl){ RecycleBin *This = impl_from_IPersistFolder2(iface); TRACE("(%p, %p)/n", This, pidl); This->pidl = ILClone(pidl); if (This->pidl == NULL) return E_OUTOFMEMORY; return S_OK;}
开发者ID:YokoZar,项目名称:wine,代码行数:10,
示例27: TRACEHRESULT WINAPI CRecycleBin::Initialize(LPCITEMIDLIST pidl){ TRACE("(%p, %p)/n", this, pidl); SHFree((LPVOID)this->pidl); this->pidl = ILClone(pidl); if (this->pidl == NULL) return E_OUTOFMEMORY; return S_OK;}
开发者ID:Moteesh,项目名称:reactos,代码行数:10,
示例28: IPF_Printers_GetCurFolder/************************************************************************** * IPF_Printers_fnGetCurFolder */static HRESULT WINAPI IPF_Printers_GetCurFolder ( IPersistFolder2 * iface, LPITEMIDLIST * pidl){ _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); TRACE ("(%p)->(%p)/n", This, pidl); *pidl = ILClone (This->pidlRoot); return S_OK;}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:13,
示例29: IPF_Printers_Initialize/************************************************************************ * IPF_Printers_Initialize * */static HRESULT WINAPI IPF_Printers_Initialize ( IPersistFolder2 * iface, LPCITEMIDLIST pidl){ _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); if (This->pidlRoot) SHFree((LPVOID)This->pidlRoot); This->pidlRoot = ILClone(pidl); return S_OK;}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:14,
示例30: TRACE// *** Folder2 methods ***HRESULT STDMETHODCALLTYPE CFolder::get_Self(FolderItem **ppfi){ TRACE("(%p, %p)/n", this, ppfi); if (!ppfi) return E_POINTER; CFolderItem* item = new CComObject<CFolderItem>(); item->AddRef(); item->Init(ILClone(m_idlist)); *ppfi = item; return S_OK;}
开发者ID:mvardan,项目名称:ros-svn-mirror,代码行数:12,
注:本文中的ILClone函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ILFree函数代码示例 C++ IL64函数代码示例 |