Herunterladen Inhalt Inhalt Diese Seite drucken
Inhaltsverzeichnis

Werbung

C++ Anwendungen

Für dieses Beispiel liegt MS Visual C++ Design Studio zugrunde. Es basiert auf der sample application
...\samples\ole\calcdriv
Die Klassendefinitionen für "Hengstler Terminal Server" werden automatisch generiert mit folgendem Ablauf:
1. HTS beenden
2. Auf Kommandozeile (Datei Ausführen bzw. Start-Ausführen) hentmsrv.exe /typelib
Damit erzeugen Sie eine Object Library datei hentmsrv.olb im Verzeichnis des HTS
3. Erzeugen Sie mit dem Class Wizard eine neue Klasse, abgeleitet aus hentmsrv.olb
4. class HengstlerTerminalServer kann nun eingebaut werden
Auszüge aus Programmdateien veranschaulichen die wichtigsten Passagen.
hentmsrv.h:
// Machine generated IDispatch wrapper class(es) created with ClassWizard
/////////////////////////////////////////////////////////////////////////////
// HengstlerTerminalServer wrapper class
class HengstlerTerminalServer : public COleDispatchDriver
{
public:
HengstlerTerminalServer() {}
HengstlerTerminalServer(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
HengstlerTerminalServer(const HengstlerTerminalServer& dispatchSrc) :
COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
CString ReadRegister(long File, long Number);
CString ClearRegister(long File, long Number);
CString WriteRegister(long File, long Number, LPCTSTR Value);
CString ReadDevice(long File, long Number);
CString WriteDevice(long File, long Number, LPCTSTR Value);
CString ReadFile(long File, long Number);
CString WriteFile(long File, long Number, LPCTSTR Value);
};
Initialisierung von OLE:
BOOL CCalcDrivApp::InitInstance()
{
#ifdef _DEBUG
#ifndef _MAC
// turn on extra memory tracking
afxMemDF |= checkAlwaysMemDF;
#endif
#endif
// Initialize OLE 2.0 libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
// Standard initialization
// If you are not using these features and wish to reduce the size
//
of your final executable, you should remove from the following
//
the specific initialization routines you do not need.
Enable3dControls();
// Simple application that simply invokes a dialog
CDriverDlg dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
return FALSE;
}
hentmsrv.cpp:
// Machine generated IDispatch wrapper class(es) created with ClassWizard
HTS für Windows
.
// Calls COleDispatchDriver default constructor
// Use 3d controls in dialogs
// don't run after the dialog is done
Seite
23

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis