C++代码
代码中使用excel文档作为用例
DWORD size = 0;
HRESULT hr=::AssocQueryString(ASSOCF_NOFIXUPS|ASSOCF_VERIFY, ASSOCSTR_EXECUTABLE, _T(".xls"), NULL,NULL,&size);
if(hr==S_FALSE)
{
char * buffer = new char[size];
hr=::AssocQueryString(ASSOCF_NOFIXUPS| ASSOCF_VERIFY, ASSOCSTR_EXECUTABLE, _T(".xls"), NULL,buffer,&size);
if(hr==S_OK)
std::cout<<buffer<<std::endl;
delete[]buffer;
}
在我电脑上的执行结果为:
注意如果没有默认的程序,则会返回系统的OpenWith.exe程序的路径。
使用AssocQuerySting函数需要包含以下头文件和静态库
#include<shlwapi.h>
#pragma comment(lib,"Shlwapi.lib")
AssocQueryString函数简介
LWSTDAPI AssocQueryStringA(
ASSOCF flags,
AS