COM编程入门 :什么是COM,如何使用COM
2006-07-21 11:45:08 来源:WEB开发网让我们继续外壳链接的例子。它实现了IShellLink 和IPersistFile接口。如果你已经有一个IShellLink指针,pISL,可以从COM对象请求IPersistFile接口:
HRESULT hr;
IPersistFile* pIPF;
hr = pISL->QueryInterface ( IID_IPersistFile, (void**) &pIPF );
然后使用SUCCEEDED宏检查hr的值以确定QueryInterface()的调用情况,如果成功的话你就可以象使用其它接口指针那样使用新的接口指针,pIPF。但必须记住调用pIPF->Release()通知COM对象已经用完这个接口。
仔细做好串处理
这一部分将花点时间来讨论如何在COM代码中处理串。如果你熟悉Unicode 和ANSI,并知道如何对它们进行转换的话,你就可以跳过这一部分,否则还是读一下这一部分的内容。
不管什么时候,只要COM方法返回一个串,这个串都是Unicode串(这里指的是写入COM规范的所有方法)。Unicode是一种字符编码集,类似ASCII,但用两个字节表示一个字符。如果你想更好地控制或操作串的话,应该将它转换成TCHAR类型串。
TCHAR和以_t开头的函数(如_tcscpy())被设计用来让你用相同的源代码处理Unicode和ANSI串。在大多数情况下编写的代码都是用来处理ANSI串和ANSI WindowsAPIs,所以在下文中,除非另外说明,我所说的字符/串都是指TCHAR类型。你应该熟练掌握TCHAR类型,尤其是当你阅读其他人写的有关代码时,要特别注意TCHAR类型。
当你从某个COM方法返回得到一个Unicode串时,可以用下列几种方法之一将它转换成char类型串:
1、调用 WideCharToMultiByte() API。
2、调用CRT 函数wcstombs()。
3、使用CString 构造器或赋值操作(仅用于MFC )。
4、使用ATL 串转换宏。
更多精彩
赞助商链接