您的位置:首页 > 产品设计 > UI/UE

如何使用一个提供单接口的COM对象QueryInterface()函数

2010-11-04 11:47 489 查看
初始化 COM 库;

创建一个用于建立快捷方式的COM 对象并取得IShellLink 接口;

调用IShellLink 接口的SetPath()方法;

调用对象的QueryInterface()函数并取得IPersistFile接口;

调用IPersistFile 接口的Save()方法;

释放接口;

收回COM库;

CString       sWallpaper = wszWallpaper;  // 将墙纸路径转换为ANSI
IShellLink*   pISL;
IPersistFile* pIPF;

// 1. 初始化COM库(让Windows 加载DLLs). 通常在InitInstance()中调用
// CoInitialize ( NULL )或其它启动代码。MFC 程序使用AfxOleInit() 。

CoInitialize ( NULL );

// 2. 使用外壳提供的Shell Link组件对象类创建COM对象。.
// 第四个参数通知COM 需要什么接口(这里是IShellLink)。

hr = CoCreateInstance ( CLSID_ShellLink,
NULL,
CLSCTX_INPROC_SERVER,
IID_IShellLink,
(void**) &pISL );

if ( SUCCEEDED(hr) )
{
// 3. 设置快捷方式目标(墙纸文件)的路径。
hr = pISL->SetPath ( sWallpaper );

if ( SUCCEEDED(hr) )
{
// 4. 获取这个对象的第二个接口(IPersistFile)。
hr = pISL->QueryInterface ( IID_IPersistFile, (void**) &pIPF );

if ( SUCCEEDED(hr) )
{
// 5. 调用Save() 方法保存某个文件得快捷方式。第一个参数是
// Unicode 串。
hr = pIPF->Save ( L"C://wallpaper.lnk", FALSE );

// 6a. 释放IPersistFile 接口。
pIPF->Release();
}
}

// 6. 释放IShellLink 接口。
pISL->Release();
}

// 输出错误信息部分这里省略。

// 7. 收回COM 库。MFC 程序不用这一步,它自动完成。
CoUninitialize();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐