我是要写一个COM组件,组件调用我以前写好的DLL,
那个DLL的接口是int RecvServ(struct ClientInfo ClientIf,struct FileInfo Finfo);
struct ClientInfo和struct FileInfo
是我自定义的。
现在要用COM组件封装提起,在写COM的时候哪里添加这两个结构体?格式又该怎么写?
添加方法的时候不知道参数选什么类型了。
struct ClientInfo 
{
char IPName[16];
char ID[30];
char RealName[200]; 
};struct FileInfo
{
char FileName[FILENAME_MAX];
unsigned long FileSize;
char Filenum[50];               
char MAC[MAC_SIZE];
char FileDate[20];              
};

解决方案 »

  1.   

    在idl文件中使用public struct定义就行
      

  2.   

    // COMRecv.idl : COMRecv 的 IDL 源
    //// 此文件将由 MIDL 工具处理以
    // 产生类型库(COMRecv.tlb)和封送处理代码。
    #include "RecvExport.h"
    import "oaidl.idl";
    import "ocidl.idl";[
    object,
    uuid(5B6E8FB3-D34E-412D-9749-DD7F6AFA3094),
    dual,
    nonextensible,
    helpstring("IReceiveDataService 接口"),
    pointer_default(unique)
    ]
    interface IReceiveDataService : IDispatch{
    };
    [
    uuid(ADB8C2BE-F38D-45D2-A5C5-6A6020BE5B42),
    version(1.0),
    helpstring("COMRecv 1.0 类型库")
    ]
    library COMRecvLib
    {
    importlib("stdole2.tlb");
    [
    uuid(8B42AF64-03A8-4B77-A674-DB94549E64BC),
    helpstring("ReceiveDataService Class")
    ]
    coclass ReceiveDataService
    {
    [default] interface IReceiveDataService;
    };
    };
    这个是建好后的idl,我新加的应该加在哪个地方?格式呢?
      

  3.   

    自己定义的所有东西放在IDL文件的第一行.在你的#include "RecvExport.h"的前面.