Ôàéë MyCtrl.cpp
// MyCtrl.cpp : Implementation of CMyCtrlApp and DLL registration.
#include "stdafx.h"
#include "MyCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CMyCtrlApp NEAR theApp;
const GUID CDECL BASED_CODE _tlid =
{ 0x49e2f37b, 0xb48d, 0x11d3, { 0xa2, 0xb0, 0, 0xa0, 0xc9, 0x55, 0xfa, 0x9e } };
const WORD _wVerMajor = 1;
const WORD _wVerMinor = 0;
////////////////////////////////////////////////////////////////////////////
// CMyCtrlApp::InitInstance - DLL initialization
BOOL CMyCtrlApp::InitInstance()
{
BOOL bInit = COleControlModule::InitInstance();
if (bInit)
{
// TODO: Add your own module initialization code here.
}
return bInit;
}
////////////////////////////////////////////////////////////////////////////
// CMyCtrlApp::ExitInstance - DLL termination
int CMyCtrlApp::ExitInstance()
{
// TODO: Add your own module termination code here.
return COleControlModule::ExitInstance();
}
/////////////////////////////////////////////////////////////////////////////
// DllRegisterServer - Adds entries to the system registry
STDAPI DllRegisterServer(void)
{
AFX_MANAGE_STATE(_afxModuleAddrThis);
if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
return ResultFromScode(SELFREG_E_TYPELIB);
if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
return ResultFromScode(SELFREG_E_CLASS);
return NOERROR;
}
/////////////////////////////////////////////////////////////////////////////
// DllUnregisterServer - Removes entries from the system registry
STDAPI DllUnregisterServer(void)
{
AFX_MANAGE_STATE(_afxModuleAddrThis);
if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))
return ResultFromScode(SELFREG_E_TYPELIB);
if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
return ResultFromScode(SELFREG_E_CLASS);
return NOERROR;
}
}
CString CMyCtrl::GetCaption()
{
CString result;
GetProperty(DISPID_CAPTION, VT_BSTR, (void*)&result);
return result;
}
void CMyCtrl::SetCaption(LPCTSTR propVal)
{
SetProperty(DISPID_CAPTION, VT_BSTR, propVal);
}
COleFont CMyCtrl::GetFont()
{
LPDISPATCH pDispatch;
GetProperty(DISPID_FONT, VT_DISPATCH, (void*)&pDispatch);
return COleFont(pDispatch);
}
void CMyCtrl::SetFont(LPDISPATCH propVal)
{
SetProperty(DISPID_FONT, VT_DISPATCH, propVal);
}
unsigned long CMyCtrl::GetTextColor()
{
unsigned long result;
GetProperty(0x4, VT_I4, (void*)&result);
return result;
}
void CMyCtrl::SetTextColor(unsigned long propVal)
{
SetProperty(0x4, VT_I4, propVal);
}
long CMyCtrl::GetSleep()
{
long result;
GetProperty(0x5, VT_I4, (void*)&result);
return result;
}
void CMyCtrl::SetSleep(long propVal)
{
SetProperty(0x5, VT_I4, propVal);
}
/////////////////////////////////////////////////////////////////////////////
// CMyCtrl operations
void CMyCtrl::DoClick()
{
InvokeHelper(DISPID_DOCLICK, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
BOOL CMyCtrl::DoChangeTimer()
{
BOOL result;
InvokeHelper(0x6, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
return result;
}
void CMyCtrl::AboutBox()
{
InvokeHelper(0xfffffdd8, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}