?? mycomclient.cpp
字號:
// MyComClient.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "MyComClient.h"
#include "MyComClientDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "..\TimeLogServer\ITimeLogServer.h"
//#import "TimeLogServer.dll"
/////////////////////////////////////////////////////////////////////////////
// CMyComClientApp
BEGIN_MESSAGE_MAP(CMyComClientApp, CWinApp)
//{{AFX_MSG_MAP(CMyComClientApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyComClientApp construction
CMyComClientApp::CMyComClientApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
m_pIUnknown = NULL;
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CMyComClientApp object
CMyComClientApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CMyComClientApp initialization
BOOL CMyComClientApp::InitInstance()
{
AfxEnableControlContainer();
// 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.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
HRESULT hResult;
hResult = ::CoInitialize(NULL);
if(FAILED(hResult))
{
::AfxMessageBox("不能初始化COM庫!");
return FALSE;
}
//創建組件實例
hResult = ::CoCreateInstance(CLSID_TimeLogServer,NULL,
CLSCTX_INPROC_SERVER,IID_IUnknown,(void**)&m_pIUnknown);
if(FAILED(hResult))
{
m_pIUnknown = NULL;
::AfxMessageBox("不能創建TimeLog對象!");
return FALSE;
}
//查詢接口并使用
if(m_pIUnknown!=NULL)
{
ITimeLog* pITimeLog;
hResult=m_pIUnknown->QueryInterface(IID_ITimeLog,(void**)&pITimeLog);
if(FAILED(hResult))
{
::AfxMessageBox("不能獲取接口ITimeLog!");
m_pIUnknown->Release();
return FALSE;
}
BSTR bstrLogText;
bstrLogText = m_logtext.AllocSysString();
CString text((LPCWSTR)bstrLogText);
if(FAILED(pITimeLog->OutputLog(&bstrLogText)))
{
::AfxMessageBox("日志輸出出錯!");
pITimeLog->Release();
return FALSE;
}
pITimeLog->Release();
::AfxMessageBox("日志已經寫入!");
}
CMyComClientDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
int CMyComClientApp::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
if(m_pIUnknown !=NULL)
{
m_pIUnknown->Release();
m_pIUnknown = NULL;
}
::CoUninitialize();
return CWinApp::ExitInstance();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -