我已经成功地获得了使用Ole自动化当前活动的Word文档的文件名。顺便问一下,我如何获得此文档的完整文件路径?
从下面的代码中,我只得到当前在fileName
中打开的文档的名称,但我想知道完整的文件路径。我该怎么办?
CLSID clsid;
IDispatch* wordApp = NULL;
COleDispatchDriver driver;
CoInitialize(NULL);
HRESULT m_hr = CLSIDFromProgID(L"Word.Application", &clsid);
if (FAILED(m_hr))
{
return false;
}
IUnknown* pUnk;
HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
if (FAILED(hr))
{
return false;
}
IDispatch* pDisp;
hr = pUnk->QueryInterface(IID_IDispatch, (void**)&pDisp);
if (FAILED(hr))
{
return false;
}
pUnk->Release();
driver.AttachDispatch(pDisp);
if (driver.m_lpDispatch == NULL)
{
driver.CreateDispatch(clsid);
}
CString fileName;
driver.InvokeHelper(0x3, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&fileName, NULL);
1条答案
按热度按时间xt0899hw1#
我发现下面的函数可以工作
我把它作为我自己类的一部分,所以你必须定义