高分求教有关"Import Type Library"的问题

ysh 2003-02-18 09:28:50
tlb的类型库,用BCB的“Import Type Library”导入后,如何调用?有源代码最好!

kingcaiyao(AKing)介绍说:

用Import Type Library 导入后,会生成一个**_TLB.h,将你的这头文件加入到你的应用程序,然后用以下三种方法其中之一来调用:
1.采用自定义接口
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TCOMIYourInterface App=CoYourInterface::Create();
App->YourMethodName(Parameter1,Parameter2,......);
}
2.采用IDISPATCH接口
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IYourInterfaceDisp App;
App.BindDefault();
App.YourMethodName(Parameter1,......);
}
3.采用万能对象
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant V=Variant::CreateObject("ServerName.COM Object Name");//括号中的是COM对象的名称,你需要在注册表中找到它。
V.YourMethodName(Parameter1,....);
}



...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcaiyao 2003-02-18
  • 打赏
  • 举报
回复
用IDispatch接口和TCOMIYourInterface类,你需要在这个生成的头文件中去找,还有一点我是说在你的应用程序中包含这个头文件,并没有将这个头文件加入到你的应用程序中。
ysh 2003-02-18
  • 打赏
  • 举报
回复
kingcaiyao(AKing)这段话的英文版我之前读过,但在此还是感谢kingcaiyao(AKing)把它翻译成中文。但我的问题是,我根本找不到Create()或BindDefault()。以下是我通过Import Type Library得到的*_TLB.h的代码(部分):
template<class T>
class NOTESSESSIONDispT : public TAutoDriver<NOTESSESSION>
{
public:
NOTESSESSIONDispT(){}

NOTESSESSIONDispT(NOTESSESSION *pintf)
{
TAutoDriver<NOTESSESSION>::Bind(pintf, false);
}

NOTESSESSIONDispT(NOTESSESSIONPtr pintf)
{
TAutoDriver<NOTESSESSION>::Bind(pintf, true);
}

NOTESSESSIONDispT& operator=(NOTESSESSION *pintf)
{
TAutoDriver<NOTESSESSION>::Bind(pintf, false);
return *this;
}

NOTESSESSIONDispT& operator=(NOTESSESSIONPtr pintf)
{
TAutoDriver<NOTESSESSION>::Bind(pintf, true);
return *this;
}

VARIANT __fastcall NEW();
void __fastcall CLOSE();
void __fastcall SETENVIRONMENTVAR(BSTR VARNAME/*[in]*/, VARIANT VALUE,
VARIANT ISSYSTEMVAR/*[in,opt]*/= TNoParam());
VARIANT __fastcall GETENVIRONMENTVALUE(BSTR VARNAME/*[in]*/,
VARIANT ISSYSTEMVAR/*[in,opt]*/= TNoParam());
BSTR __fastcall GETENVIRONMENTSTRING(BSTR VARNAME/*[in]*/,
VARIANT ISSYSTEMVAR/*[in,opt]*/= TNoParam());
void __fastcall UPDATEPROCESSEDDOC(VARIANT DOCUMENT/*[in]*/);
VARIANT __fastcall GETDATABASE(BSTR SERVER/*[in]*/, BSTR FILE/*[in]*/,
VARIANT CREATEONFAIL/*[opt]*/= TNoParam());
VARIANT __fastcall CREATEDATETIME(BSTR DATEEXPR/*[in]*/);
VARIANT __fastcall CREATELOG(BSTR PROGRAMNAME/*[in]*/);
VARIANT __fastcall CREATENEWSLETTER(VARIANT COLLECTION/*[in]*/);
VARIANT __fastcall GETDBDIRECTORY(BSTR SERVER/*[in]*/);
VARIANT __fastcall CREATEDATERANGE();
VARIANT __fastcall FREETIMESEARCH(VARIANT WINDOW, short DURATION/*[in]*/, VARIANT NAMES,
VARIANT FIRSTFIT/*[in,opt]*/= TNoParam());
VARIANT __fastcall CREATETIMER();
VARIANT __fastcall CREATENAME(BSTR NAME/*[in]*/, VARIANT LANGUAGE/*[in,opt]*/= TNoParam());
VARIANT __fastcall GETWIN32DOMAIN(VARIANT SERVER/*[in,opt]*/= TNoParam());
VARIANT __fastcall CREATERICHTEXTSTYLE();
BSTR __fastcall GETNEWSGROUPPATH(BSTR arg0/*[in]*/);
VARIANT __fastcall CREATERICHTEXTPARAGRAPHSTYLE();
void __fastcall set_USERNAME(BSTR Value);
BSTR __fastcall get_USERNAME();
void __fastcall set_PLATFORM(BSTR Value);
BSTR __fastcall get_PLATFORM();
void __fastcall set_CURRENTDATABASE(VARIANT Value);
VARIANT __fastcall get_CURRENTDATABASE();
void __fastcall set_CURRENTAGENT(VARIANT Value);
VARIANT __fastcall get_CURRENTAGENT();
void __fastcall set_LASTRUN(VARIANT Value);
VARIANT __fastcall get_LASTRUN();
void __fastcall set_EFFECTIVEUSERNAME(BSTR Value);
BSTR __fastcall get_EFFECTIVEUSERNAME();
void __fastcall set_ISONSERVER(VARIANT Value);
VARIANT __fastcall get_ISONSERVER();
void __fastcall set_LASTEXITSTATUS(long Value);
long __fastcall get_LASTEXITSTATUS();
void __fastcall set_SAVEDDATA(VARIANT Value);
VARIANT __fastcall get_SAVEDDATA();
void __fastcall set_ADDRESSBOOKS(VARIANT Value);
VARIANT __fastcall get_ADDRESSBOOKS();
void __fastcall set_NOTESVERSION(BSTR Value);
BSTR __fastcall get_NOTESVERSION();
void __fastcall set_COMMONUSERNAME(BSTR Value);
BSTR __fastcall get_COMMONUSERNAME();
void __fastcall set_INTERNATIONAL(VARIANT Value);
VARIANT __fastcall get_INTERNATIONAL();
void __fastcall set_DOCUMENTCONTEXT(VARIANT Value);
VARIANT __fastcall get_DOCUMENTCONTEXT();
void __fastcall set_INTERNETDOMAINNAME(BSTR Value);
BSTR __fastcall get_INTERNETDOMAINNAME();
void __fastcall set_INTERNETHOSTNAME(BSTR Value);
BSTR __fastcall get_INTERNETHOSTNAME();
void __fastcall set_NOTESBUILDVERSION(long Value);
long __fastcall get_NOTESBUILDVERSION();
void __fastcall set_USERNAMELIST(VARIANT Value);
VARIANT __fastcall get_USERNAMELIST();
void __fastcall set_CONVERTMIME(VARIANT Value);
VARIANT __fastcall get_CONVERTMIME();

__property BSTR USERNAME = {read = get_USERNAME};
__property BSTR PLATFORM = {read = get_PLATFORM};
__property VARIANT CURRENTDATABASE = {read = get_CURRENTDATABASE};
__property VARIANT CURRENTAGENT = {read = get_CURRENTAGENT};
__property VARIANT LASTRUN = {read = get_LASTRUN};
__property BSTR EFFECTIVEUSERNAME = {read = get_EFFECTIVEUSERNAME};
__property VARIANT ISONSERVER = {read = get_ISONSERVER};
__property long LASTEXITSTATUS = {read = get_LASTEXITSTATUS};
__property VARIANT SAVEDDATA = {read = get_SAVEDDATA};
__property VARIANT ADDRESSBOOKS = {read = get_ADDRESSBOOKS};
__property BSTR NOTESVERSION = {read = get_NOTESVERSION};
__property BSTR COMMONUSERNAME = {read = get_COMMONUSERNAME};
__property VARIANT INTERNATIONAL = {read = get_INTERNATIONAL};
__property VARIANT DOCUMENTCONTEXT = {read = get_DOCUMENTCONTEXT};
__property BSTR INTERNETDOMAINNAME = {read = get_INTERNETDOMAINNAME};
__property BSTR INTERNETHOSTNAME = {read = get_INTERNETHOSTNAME};
__property long NOTESBUILDVERSION = {read = get_NOTESBUILDVERSION};
__property VARIANT USERNAMELIST = {read = get_USERNAMELIST};
__property VARIANT CONVERTMIME = {read = get_CONVERTMIME, write = set_CONVERTMIME};
};
typedef NOTESSESSIONDispT<NOTESSESSION> NOTESSESSIONDisp;
里面找不到BindDefault方法,如果用Bind方法,应该传个什么参数进去?
ysh 2003-02-18
  • 打赏
  • 举报
回复
没错,我只是Include进来,并没有加到项目中,
整个头文件都找过了,并没有Create()及BindDefault();

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧