📄 autoserv_ocx.cpp
字号:
// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //
// C++ TLBWRTR : $Revision: 1.134.1.41 $
// File generated on 2001-9-15 20:42:19 from Type Library described below.
// ************************************************************************ //
// Type Lib: C:\Samples\COM\AutoServ\AutoServ.exe (1)
// IID\LCID: {F8811B05-EF2A-45F0-B0E6-F596E4357F27}\0
// Helpfile:
// DepndLst:
// (1) v2.0 stdole, (E:\WINNT\System32\stdole2.tlb)
// (2) v4.0 StdVCL, (E:\WINNT\System32\STDVCL40.DLL)
// Errors:
// Error creating palette bitmap of (TMyAutoObj) : Server C:\Samples\COM\AutoServ\AutoServ.exe /Automation contains no icons
// ************************************************************************ //
#include <vcl.h>
#pragma hdrstop
#if defined(USING_ATL)
#include <atl\atlvcl.h>
#endif
#include "AutoServ_OCX.h"
#if !defined(__PRAGMA_PACKAGE_SMART_INIT)
#define __PRAGMA_PACKAGE_SMART_INIT
#pragma package(smart_init)
#endif
namespace Autoserv_tlb
{
IMyAutoObjPtr& TMyAutoObj::GetDefaultInterface()
{
if (!m_DefaultIntf)
Connect();
return m_DefaultIntf;
}
_di_IUnknown __fastcall TMyAutoObj::GetDunk()
{
_di_IUnknown diUnk;
if (m_DefaultIntf) {
IUnknownPtr punk = m_DefaultIntf;
diUnk = LPUNKNOWN(punk);
}
return diUnk;
}
void __fastcall TMyAutoObj::Connect()
{
if (!m_DefaultIntf) {
_di_IUnknown punk = GetServer();
m_DefaultIntf = punk;
if (ServerData->EventIID != GUID_NULL)
ConnectEvents(GetDunk());
}
}
void __fastcall TMyAutoObj::Disconnect()
{
if (m_DefaultIntf) {
if (ServerData->EventIID != GUID_NULL)
DisconnectEvents(GetDunk());
m_DefaultIntf.Reset();
}
}
void __fastcall TMyAutoObj::BeforeDestruction()
{
Disconnect();
}
void __fastcall TMyAutoObj::ConnectTo(IMyAutoObjPtr intf)
{
Disconnect();
m_DefaultIntf = intf;
if (ServerData->EventIID != GUID_NULL)
ConnectEvents(GetDunk());
}
void __fastcall TMyAutoObj::InitServerData()
{
static Oleserver::TServerData sd;
sd.ClassID = CLSID_MyAutoObj;
sd.IntfIID = __uuidof(IMyAutoObj);
sd.EventIID= __uuidof(IMyAutoObjEvents);
ServerData = &sd;
}
void __fastcall TMyAutoObj::InvokeEvent(int id, Oleserver::TVariantArray& params)
{
switch(id)
{
default:
break;
}
}
}; // namespace Autoserv_tlb
// *********************************************************************//
// The Register function is invoked by the IDE when this module is
// installed in a Package. It provides the list of Components (including
// OCXes) implemented by this module. The following implementation
// informs the IDE of the OCX proxy classes implemented here.
// *********************************************************************//
namespace Autoserv_ocx
{
void __fastcall PACKAGE Register()
{
// [1]
TComponentClass cls_svr[] = {
__classid(Autoserv_tlb::TMyAutoObj)
};
RegisterComponents("ActiveX", cls_svr,
sizeof(cls_svr)/sizeof(cls_svr[0])-1);
}
}; // namespace Autoserv_ocx
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -