本文整理汇总了C++中ILClone函数的典型用法代码示例。如果您正苦于以下问题:C++ ILClone函数的具体用法?C++ ILClone怎么用?C++ ILClone使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ILClone函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: m_hwnd
CFileContextMenuManager::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,代码来源:FileContextMenuManager.cpp
示例2: ILClone
HRESULT WINAPI CRecycleBinItemContextMenu::Initialize(LPCITEMIDLIST pidl)
{
apidl = ILClone(pidl);
if (apidl == NULL)
return E_OUTOFMEMORY;
return S_OK;
}
开发者ID:Moteesh,项目名称:reactos,代码行数:7,代码来源:CRecycleBin.cpp
示例3: CDS_IDLDropTarget_Create
HRESULT 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,代码来源:dsidldrp.c
示例4: SHCreateDefaultContextMenu
HRESULT 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,代码来源:shlmenu.c
示例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,代码来源:dataobject.c
示例6: ItemMenu_Constructor
HRESULT 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,代码来源:shlview_cmenu.c
示例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,代码来源:printers.cpp
示例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,代码来源:shv_item_cmenu.c
示例9: _ILReadFromSharedMemory
static 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,代码来源:ShellDDE.cpp
示例10: CDefFolderMenu_Create2
HRESULT 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,代码来源:shlmenu.c
示例11: RecycleBin_GetCurFolder
static 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,代码来源:recyclebin.c
示例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,代码来源:shfldr_netconnect.cpp
示例13: BrsFolder_OnCommand
static 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,代码来源:brsfolder.c
示例14: ISF_Desktop_IPersistFolder2_fnGetCurFolder
static 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,代码来源:shfldr_desktop.c
示例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,代码来源:shfldr_netconnect.cpp
示例16: ILClone
HRESULT 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,代码来源:CMenuToolbars.cpp
示例17: BrsFolder_OnCommand
static 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,代码来源:brsfolder.c
示例18: ILClone
HRESULT WINAPI CPrintersExtractIconW::Initialize(LPCITEMIDLIST pidl)
{
pidl = ILClone(pidl);
pdump(pidl);
return S_OK;
}
开发者ID:Nevermore2015,项目名称:reactos,代码行数:7,代码来源:printers.cpp
示例19: SHELL32_SetNameOfGuidItem
HRESULT 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,代码来源:shlfolder.cpp
示例20: IExplorerBrowserEventsImpl_fnOnNavigationComplete
static 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,代码来源:explorer.c
注:本文中的ILClone函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论