手机版

COM编程入门(9)

发布时间:2021-06-06   来源:未知    
字号:

COM编程入门,十分浅显易懂

有个宏是OLE2CA()(Unicode到常量char串),可以被用到上面的例子中,OLE2CA()实际上是个更正宏,因为lstrcpy()的第二个参数是一个常量char*,关于这个问题本文将在以后作详细讨论。

另一方面,如果你不想做以上复杂的串处理,尽管让它还保持为Unicode串,如果编写的是控制台应用程序,输出/显示Unicode串时应该用全程变量std::wcout,如:

wcout<< wszSomeString;

但是要记住,std::wcout只认Unicode,所以你要是“正常”串的话,还得用std::cout输出/显示。对于Unicode串文字量,要使用前缀L标示,如: wcout<< L"The Oracle says..." << endl << wszOracleResponse;

如果保持串为Unicode,编程时有两个限制:

必须使用wcsXXX() Unicode串处理函数,如wcslen();

在Windows 9x环境中不能在Windows API中传递Unicode串。要想编写能在9x和NT上都能运行的应用,必须使用TCHAR类型,详情请参 考MSDN; 用例子代码总结上述内容

下面用两个例子演示本文所讲的COM概念。代码中还包含了本文的例子工程。 使用单接口COM对象

第一个例子展示的是单接口COM对象。这可能是你碰到得最简单的例子。它使用外壳中的活动桌面组件对象类(CLSID_ActiveDesktop)来获得当前桌面墙纸的文件名。请确认系统中安装了活动桌面(Active Desktop)。 以下是编程步骤:

初始化COM库。 (Initialize); 创建一个与活动桌面交互的COM对象,并取得IActiveDesktop接口; 调用COM对象的GetWallpaper()方法; 如果GetWallpaper()成功,则输出/显示墙纸文件名; 释放接口(Release()); 收回COM库(Uninitialize);

WCHAR wszWallpaper [MAX_PATH];

CString strPath;

HRESULT hr;

IActiveDesktop* pIAD;

// 1. 初始化COM库(让Windows加载DLLs)。通常是在程序的InitInstance()中调用

// CoInitialize ( NULL )或其它启动代码。MFC程序使用AfxOleInit()。

CoInitialize ( NULL );

COM编程入门(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)