首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

这年头!看来不给高分不行呀!这年头!哎!该如何处理

2012-01-22 
这年头!看来不给高分不行呀!这年头!哎!我以前找到了一个有关MSN开发的帖子,上面介绍了MSN6.0版本的接口及

这年头!看来不给高分不行呀!这年头!哎!
我以前找到了一个有关MSN开发的帖子,上面介绍了MSN6.0版本的接口及使用实例。网址:http://www.vckbase.com/document/viewdoc/?id=1050        
  他的得到的MSN的接口如下:
    IMessenger
    IMessenger2
    IMessenger3
    DMessengerEvents
    IMessengerWindow
    IMessengerConversationWnd
    IMessengerContact
    IMessengerContacts
    IMessengerService
    ImessengerServices
    IMessengerGroup
    IMessengerGroups

      原文作者说是用利用Visual   Studio   Tools   中的OLEView来生成一个.tlb文件的。我觉得应该先由OLEView生成IDL文件,然后再转换为tlb文件的。
      我的问题是:我在自己的机器上装了MSN   Messenger6.0,用VC6的OLEView工具打开了msnmsgr.exe文件,转换成IDL文件,但发现接口只有如下几个:
        interface   IMsgrSessionManager;
        interface   IMsgrSession;
        interface   IMsgrLock;
        interface   IMessengerPrivate;
        dispinterface   DMessengerPrivateEvents;
        dispinterface   DMsgrSessionManagerEvents;
        dispinterface   DMsgrSessionEvents;

      并不是原文作者得到的那些接口,我又重新安装了MSN   8.0   版本的,用OLEView工具打开后发现接口和上述一样,MSN   8.0   版本的接口如下:
        interface   IMsgrSessionManager;
        interface   IMsgrSession;
        interface   IMsgrLock;
        interface   IMessengerPrivate;
        dispinterface   DMessengerPrivateEvents;
        dispinterface   DMsgrSessionManagerEvents;
        dispinterface   DMsgrSessionEvents;

        我真的很郁闷呀!请问高手这是怎么回事?另外,原文帖子中的链接   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winmessenger/winmessenger/messenger_entry.asp   中介绍的是Windows   Messager的接口,并不是MSN的,这个我已经使用几个接口验证过了,的确不是MSN的接口,请问怎样才能正确得到MSN的接口?

        我又用从MSN8.0中的msnmsgr.exe文件得到了IDL文件,并转换为tlb文件,我用VC6只能成功创建CLSID_MessengerPriv组件,并只能得到IMessengerPrivate接口,IMsgrLock接口   和   事件接口DMessengerPrivateEvents,其他的接口不能得到。
        请问怎样才能得到DMsgrSessionEvents事件接口?

[解决办法]
用VC++ 2005 resource editor方式打开msnmsgr.exe,他包含了8个tlb文件!直接用oleview看,可能值看到了第一个tlb
[解决办法]
struct __declspec(uuid( "305d86c6-6896-4099-91f5-cb7ba7733563 "))
/* dual interface */ IMsgrSessionManager;
struct __declspec(uuid( "42d7cafc-0167-4941-a5d8-9fd7f104c41a "))
/* dual interface */ IMsgrSession;
typedef enum __MIDL___MIDL_itf_msgrpriv_0000_0000_0001 SESSION_STATE;
struct __declspec(uuid( "36602afa-4859-4df5-820b-bf35acaa16ca "))
/* interface */ IMsgrLock;
typedef enum __MIDL___MIDL_itf_msgrpriv_0000_0000_0005 LockStatus;
struct __declspec(uuid( "7c95459b-c8e7-4605-b641-45eb06866659 "))
/* dual interface */ IMessengerPrivate;
struct __declspec(uuid( "d21454f8-43e3-4d64-b1e3-84911baf207d "))
/* dispinterface */ DMessengerPrivateEvents;
struct __declspec(uuid( "52ac8b62-8f88-46ca-902a-1f9106b0a9f4 "))
/* dispinterface */ DMsgrSessionManagerEvents;
struct __declspec(uuid( "1847a74f-2e7f-43af-b7f9-55a4de3276f5 "))
/* dispinterface */ DMsgrSessionEvents;
struct /* coclass */ MessengerPriv;


struct /* coclass */ MsgrSessionManager;
struct /* coclass */ MsgrSession;

热点排行