// Orderly shutdown. extern "C" void ShutdownApplication() { logt("ShutdownApplication"); if (globalLoop) { globalLoop->AsyncStop(); } else { logt("error, no scheduler"); ExitApplication(); } }
extern "C" int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pszCmdLineA, int nCmdShow) { LPTSTR pszCmdLine = AnsiToString (pszCmdLineA); if (InitApplication (hInst, pszCmdLine, nCmdShow)) { AfsAppLib_MainPump(); } ExitApplication(); FreeString (pszCmdLine, pszCmdLineA); return g.rc; }
/* * メインのダイアログプロシージャ */ LRESULT CALLBACK MainDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static HANDLE hThread; static DWORD dwID; switch(msg){ case WM_SENDMAIL: /*SendMailThreadからのメッセージがここのlParamに来る*/ SetDlgItemText(hDlg,IDC_RESULT,(char *)lParam); return TRUE; case WM_INITDIALOG: InitApplication(hDlg); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)){ case IDATTACH: GetAttachFilePath(hDlg); return TRUE; case IDSEND: /*メール送信用のスレッドの作成*/ hThread = CreateThread(NULL,0,SendMailThread,(LPVOID)hDlg,0,&dwID); return TRUE; case IDCANCEL: EndDialog(hDlg,0); return TRUE; } return TRUE; case WM_DESTROY: /*スレッドを破棄する*/ CloseHandle(hThread); ExitApplication(hDlg); EndDialog(hDlg,0); return TRUE; case WM_CLOSE: SendMessage(hDlg,WM_DESTROY,0,0); return TRUE; } return FALSE; }
void quit(void) { ExitApplication(); }