zoukankan      html  css  js  c++  java
  • windows下,读取快捷方式lnk所指向的路径

    BOOL GetLnkFileName(
    	OUT PWSTR pLnkName,
    	OUT PWSTR OepnFileNameBuufer,
    	IN DWORD OpenFileNameBufferSize) //传入快捷方式,返回快捷方式指向的文件名
    {
    	CoInitialize(0);
    	BOOL bRet = FALSE; //返回值判断.
    	IShellLinkW* shlink = 0;
    	IPersistFile* persist = 0;
    	WIN32_FIND_DATA wfd;
    	PWSTR MyXbpathBuffer = NULL;
    
    	if (NULL == OepnFileNameBuufer)
    	{
    		OutputDebugString(TEXT("Sorry FUN: GetGlobalOpenFileName HeadAlloc Fail "));
    		return FALSE;
    	}
    
    
    
    	HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkW, (void**)&shlink);
    	if (SUCCEEDED(hr)) {
    		hr = shlink->QueryInterface(IID_IPersistFile, (void**)&persist);
    		if (SUCCEEDED(hr)) {
    			hr = persist->Load(pLnkName, STGM_READ);
    			if (SUCCEEDED(hr)) {
    				// shlink->Resolve(0, SLR_ANY_MATCH | SLR_NO_UI);           
    				hr = shlink->GetPath(OepnFileNameBuufer, OpenFileNameBufferSize, &wfd, SLGP_RAWPATH);
    			}
    			persist->Release();
    		}
    		shlink->Release();
    	}
    	
    
    	
    RELEASE:
    	CoUninitialize();
    
    	if (NULL != MyXbpathBuffer)
    	{
    		delete MyXbpathBuffer;
    	}
    	return TRUE; 
    	
    }
    
  • 相关阅读:
    sqlserver2005转换到2000
    vs2008的注册
    给联想K46装系统
    两个调片技巧
    mapx集合的问题
    audio player播放多文件
    JQuery查询ul嵌套结构中当前所处的位置
    .Net中使用带UI的OCX的方法
    U盘启动和量产
    winrar的图标
  • 原文地址:https://www.cnblogs.com/iBinary/p/10749710.html
Copyright © 2011-2022 走看看