namespace THUNDERAGENTLib {//
// Forward references and typedefs
//struct __declspec(uuid("26d657ae-a466-4f44-ab1d-5cfffadbed97"))
/* LIBID */ __THUNDERAGENTLib;
struct /* coclass */ Agent;
struct __declspec(uuid("1622f56a-0c55-464c-b472-377845def21d"))
/* dual interface */ IAgent;_COM_SMARTPTR_TYPEDEF(IAgent, __uuidof(IAgent));
//
// Type library items
//struct __declspec(uuid("485463b7-8fb2-4b3b-b29b-8b919b0eacce"))
Agent;
    // [ default ] interface IAgent
    // interface IAgent2
    // interface IAgent3
    // interface IAgent4
    // interface IAgent5struct __declspec(uuid("1622f56a-0c55-464c-b472-377845def21d"))
IAgent : IDispatch
{
    //
    // Wrapper methods for error-handling
    //    _bstr_t GetInfo (
        _bstr_t pInfoName );
    HRESULT AddTask (
        _bstr_t pURL,
        _bstr_t pFileName,
        _bstr_t pPath,
        _bstr_t pComments,
        _bstr_t pReferURL,
        int nStartMode,
        int nOnlyFromOrigin,
        int nOriginThreadCount );
    int CommitTasks ( );
    HRESULT CancelTasks ( );
    _bstr_t GetTaskInfo (
        _bstr_t pURL,
        _bstr_t pInfoName );
    HRESULT GetInfoStruct (
        int pInfo );
    HRESULT GetTaskInfoStruct (
        int pTaskInfo );    //
    // Raw methods provided by interface
    //      virtual HRESULT __stdcall raw_GetInfo (
        /*[in]*/ BSTR pInfoName,
        /*[out,retval]*/ BSTR * ppResult ) = 0;
      virtual HRESULT __stdcall raw_AddTask (
        /*[in]*/ BSTR pURL,
        /*[in]*/ BSTR pFileName,
        /*[in]*/ BSTR pPath,
        /*[in]*/ BSTR pComments,
        /*[in]*/ BSTR pReferURL,
        /*[in]*/ int nStartMode,
        /*[in]*/ int nOnlyFromOrigin,
        /*[in]*/ int nOriginThreadCount ) = 0;
      virtual HRESULT __stdcall raw_CommitTasks (
        /*[out,retval]*/ int * pResult ) = 0;
      virtual HRESULT __stdcall raw_CancelTasks ( ) = 0;
      virtual HRESULT __stdcall raw_GetTaskInfo (
        /*[in]*/ BSTR pURL,
        /*[in]*/ BSTR pInfoName,
        /*[out,retval]*/ BSTR * ppResult ) = 0;
      virtual HRESULT __stdcall raw_GetInfoStruct (
        /*[in]*/ int pInfo ) = 0;
      virtual HRESULT __stdcall raw_GetTaskInfoStruct (
        /*[in]*/ int pTaskInfo ) = 0;
};

//怎么使用AddTask 这个方法!!!!

解决方案 »

  1.   

    你要创建该组件的实例,然后用QueryInterface查询到这个IAgent接口,用这个接口来调用AddTask方法。
      

  2.   

    能否写一下实例!com感觉太难懂了!最好能对照着看(我想着这样比较容易!!)!
      

  3.   

    你现在忙吗?能否告诉我你的Email,我用的 Thunder\ComDlls\ThunderAgent.dll 迅雷的一个组件!我的Email: [email protected]
      

  4.   

    IAgentPtr agent;
    agent.CreateInstance(...);
    agent->AddTask("xxx", "xxx", "xxx", "xxx", "xxx", 0, 0, 10);
      

  5.   

    胡柏华 .你的应该是C#中的吧!VS2005/VC++不行!
      

  6.   

    按照你帖出来的接口封装定义,可以使用上述语法,不仅仅用于C#,一样也能用于VC,字符串参数会自动被编译器转换成_bstr_t类型
      

  7.   


    "不是不行,而是不会. 接口函数的调用,只需要获取接口指针,并得到函数的ID ,传入相应的参数就可以了"
    我确实不会,老板让用VC,没办法!
    谁能写个大概 的例子!
    吾将不胜感激!!!!