如题

解决方案 »

  1.   

    GetModuleFileName,第一个参数给出COM的模块句柄。
      

  2.   

    COM自身调用的话, 第一个参数给什么呢?
      

  3.   

    看你怎么实现的COM,比如,如果有dllmain,那么它的参数中就带有它的句柄,如果用MFC,app类中也有一个变量保存这个句柄。还可以使用GetModuleHandle取得这个句柄,前提是你知道这个模块的名字。也可以用下面的函数取得这个HANDLE,参数是DLL中的任意一个全局函数和变量地址:// Returns the HMODULE that contains the specified memory address
    static HMODULE ModuleFromAddress(PVOID pv) 
    {
    MEMORY_BASIC_INFORMATION mbi;
    return((VirtualQuery(pv, &mbi, sizeof(mbi)) != 0) 
    ? (HMODULE) mbi.AllocationBase : NULL);
    }
      

  4.   

    GetModuleHandle 中的模块名应该怎么写?才能得到COM自身的 句柄?我怎么始终得到的都是 调用COM插件的.exe文件的全路径呢?