Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

216 lines
7.8 KiB

//////////////////////////////////////////////////////////////////
// File : resmain.cpp
// Purpose : IMEPad's neutral resource &
// Help API.
//
//
// Date : Thu May 20 20:58:06 1999
// Author : toshiak
//
// Copyright(c) 1995-1999, Microsoft Corp. All rights reserved
//////////////////////////////////////////////////////////////////
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "cmddef.h"
#include "padhelp.h"
//#include "../common/cutil.h"
#include "resmain.h"
#include "common.h"
// Safe String
#define STRSAFE_NO_DEPRECATE
#include "strsafe.h"
//----------------------------------------------------------------
//Helpfile name
//----------------------------------------------------------------
#define TSZ_HTMLHELP_FILE_KOR TEXT("impdko61.chm") //Helpfile for Htmlhelp
#define TSZ_HTMLHELP_FILE_ENG TEXT("korpaden.chm") //Helpfile for Htmlhelp
#define TSZ_WMHELP_FILE TEXT("imkr61.hlp") // IME Pad Context Help. Kor only.
//----------------------------------------------------------------
//HelpId table
//----------------------------------------------------------------
static INT g_helpIdList[]={
IDC_KBTN_BACKSPACE, IDH_PAD_BASE_BASIC_BS,
IDC_KBTN_DELETE, IDH_PAD_BASE_BASIC_DEL,
IDC_KBTN_FAREAST, IDH_PAD_BASE_BASIC_CONV,
IDC_KBTN_ENTER, IDH_PAD_BASE_BASIC_ENTER,
IDC_KBTN_SPACE, IDH_PAD_BASE_BASIC_SPACE,
IDC_KBTN_ESCAPE, IDH_PAD_BASE_BASIC_ESC,
IDC_KBTN_ARROWS, IDH_PAD_BASE_BASIC_LEFT,
IDC_KBTN_ARROW_LEFT, IDH_PAD_BASE_BASIC_LEFT,
IDC_KBTN_ARROW_RIGHT,IDH_PAD_BASE_BASIC_RIGHT,
IDC_KBTN_ARROW_UP, IDH_PAD_BASE_BASIC_UP,
IDC_KBTN_ARROW_DOWN, IDH_PAD_BASE_BASIC_DOWN,
IDC_KBTN_HOME, IDH_PAD_BASE_EX_HOME,
IDC_KBTN_END, IDH_PAD_BASE_EX_END,
IDC_KBTN_PAGEUP, IDH_PAD_BASE_EX_PGUP,
IDC_KBTN_PAGEDOWN, IDH_PAD_BASE_EX_PGDN,
IDC_KBTN_TAB, IDH_PAD_BASE_EX_TAB,
IDC_KBTN_INSERT, IDH_PAD_BASE_EX_INS,
IDC_KBTN_LWIN, IDH_PAD_BASE_EX_WINDOWS,
IDC_KBTN_APPKEY, IDH_PAD_BASE_EX_APP,
//IMEPad's property dialog's Popup-help.
IDC_CFG_GEN_BASIC_BUTTONS, IDH_PAD_PROPERTY_BASIC,
IDC_CFG_GEN_EXTEND_BUTTONS, IDH_PAD_PROPERTY_EX,
IDC_CFG_GEN_BUTTON_POSITION, IDH_PAD_PROPERTY_POS,
IDC_CFG_GEN_MENU_LANGUAGE, IDH_PAD_PROPERTY_LANG,
IDC_CFG_GEN_BUTTON_OK, IDH_PAD_PROPERTY_OK,
IDC_CFG_GEN_BUTTON_CANCEL, IDH_PAD_PROPERTY_CANCEL,
IDC_CFG_GEN_BUTTON_HELP, IDH_PAD_PROPERTY_HELP,
//IMEPad's user configu dialog's Popup-help.
IDC_CFG_CHGMENU_APPLETS, 0,
IDC_CFG_CHGMENU_CURAPPLETS, 0,
IDC_CFG_CHGMENU_CLOSE, IDH_PAD_USER_CLOSE,
IDC_CFG_CHGMENU_RESET, IDH_PAD_USER_RESET,
IDC_CFG_CHGMENU_ADD, IDH_PAD_USER_ADD,
IDC_CFG_CHGMENU_DELETE, IDH_PAD_USER_REMOVE,
IDC_CFG_CHGMENU_UP, IDH_PAD_USER_UP,
IDC_CFG_CHGMENU_DOWN, IDH_PAD_USER_DOWN,
0, 0,
};
//////////////////////////////////////////////////////////////////
// Function : PadHelp_HandleHelp
// Type : INT WINAPI
// Purpose :
// Args :
// : HWND hwnd
// : INT padHelpIndex
// : LANGID imepadUiLangID
// Return :
// DATE : Fri Aug 04 08:59:21 2000
// Histroy : Fri Aug 04 09:03:17 2000
// # Add imepadUiLangID.
//////////////////////////////////////////////////////////////////
INT WINAPI
PadHelp_HandleHelp(HWND hwnd, INT padHelpIndex, LANGID imepadUiLangID)
{
TCHAR tszPath[MAX_PATH];
TCHAR tszFile[MAX_PATH];
BOOL fKoreanEnv = (imepadUiLangID == MAKELANGID(LANG_KOREAN, SUBLANG_DEFAULT)) ? TRUE : FALSE;
tszPath[0] = (TCHAR)0x00;
tszFile[0] = (TCHAR)0x00;
// There is No Korean TS NT4.0
#if 0
//----------------------------------------------------------------
//In WinNT4.0 TerminalServer, htmlhlp has bug.
//have to set absolute HTML helpfile path to it
//----------------------------------------------------------------
if(CUtil::IsHydra() && CUtil::IsWinNT4()) {
INT size = CUtil::GetWINDIR(tszFile, sizeof(tszFile)/sizeof(tszFile[0]));
tszFile[size] = (TCHAR)0x00;
lstrcat(tszFile, TEXT("\\help\\"));
lstrcat(tszFile, fKoreanEnv ? TSZ_HTMLHELP_FILE_KOR : TSZ_HTMLHELP_FILE_ENG);
}
else {
lstrcpy(tszFile, fKoreanEnv ? TSZ_HTMLHELP_FILE_KOR : TSZ_HTMLHELP_FILE_ENG);
}
#endif
StringCchCopy(tszFile, ARRAYSIZE(tszFile), fKoreanEnv ? TSZ_HTMLHELP_FILE_KOR : TSZ_HTMLHELP_FILE_ENG);
switch(padHelpIndex) {
case PADHELPINDEX_MAIN:
case PADHELPINDEX_APPLETMENUCHANGE:
wsprintf(tszPath, TEXT("hh.exe %s"), tszFile);
break;
case PADHELPINDEX_PROPERTY:
wsprintf(tszPath, TEXT("hh.exe %s::/howIMETopic166_ChangetheIMEPadOperatingEnvironment.htm"), tszFile);
break;
#if 0
case PADHELPINDEX_RESERVED1:
wsprintf(tszPath, TEXT("hh.exe %s::/IDH_TOC_IMEPAD_fake.htm"), tszFile);
break;
case PADHELPINDEX_RESERVED2:
wsprintf(tszPath, TEXT("hh.exe %s::/IDH_TOC_IMEPAD_fake.htm"), tszFile);
break;
#endif
default:
return -1;
}
#ifndef UNDER_CE
::WinExec(tszPath, SW_SHOWNORMAL);
#else
#pragma message("Not Implemented yet!!")
#endif
return 0;
UNREFERENCED_PARAMETER(hwnd);
UNREFERENCED_PARAMETER(imepadUiLangID);
}
//////////////////////////////////////////////////////////////////
// Function : PadHelp_HandleContextPopup
// Type : INT WINAPI
// Purpose : Invoke Popup Help.
// ::WinHelp(HWND hwndCtrl, //set passed parameter.
// LPTSTR TSZ_WMHELP_FILE, //set your WinHelp file name.
// DWORD HELP_CONTEXTPOPUP, //uCommand.
// DWORD realHelpIndex); //Context Identifier for a topic.
// This code only popups context help.
// Args :
// : HWND hwndCtrl: Control window handle for popup.
// : INT idCtrl: Logical Control ID
// Return :
// DATE : Tue Jun 22 15:49:37 1999
// : LANGID imepadUiLangID: IMEPad's Ui langID.
// Return :
// DATE : Tue Jun 22 15:49:37 1999
// Histroy : Fri Aug 04 09:02:12 2000
// # Add imepadUiLangID. but you don't need to check it now.
//////////////////////////////////////////////////////////////////
INT WINAPI
PadHelp_HandleContextPopup(HWND hwndCtrl, INT idCtrl, LANGID imepadUiLangID)
{
#ifdef _DEBUG
TCHAR tszBuf[256];
TCHAR tszClass[256];
GetClassName(hwndCtrl, tszClass, sizeof(tszClass)/sizeof(tszClass[0]));
wsprintf(tszBuf,
"PadHelp_HandleContextPopup: hwndCtrl[0x%08x][%s] idCtrl[%d][0x%08x]\n",
hwndCtrl,
tszClass,
idCtrl,
idCtrl);
OutputDebugString(tszBuf);
#endif
int i;
for(i = 0; i < sizeof(g_helpIdList)/sizeof(g_helpIdList[0]); i+=2) {
if(idCtrl == g_helpIdList[i]) {
#ifdef _DEBUG
wsprintf(tszBuf,
"Find idCtrl[%d][0x%08x] helpId[%d][0x%08x]\n",
idCtrl, idCtrl,
g_helpIdList[i+1], g_helpIdList[i+1]);
OutputDebugString(tszBuf);
#endif
return ::WinHelp(hwndCtrl,
TSZ_WMHELP_FILE,
HELP_CONTEXTPOPUP,
g_helpIdList[i+1]);
}
}
return 0;
UNREFERENCED_PARAMETER(hwndCtrl);
UNREFERENCED_PARAMETER(imepadUiLangID);
}
//----------------------------------------------------------------
//DllMain
//----------------------------------------------------------------
BOOL WINAPI DllMain(HANDLE hInst, DWORD dwF, LPVOID lpNotUsed)
{
return TRUE;
UNREFERENCED_PARAMETER(hInst);
UNREFERENCED_PARAMETER(dwF);
UNREFERENCED_PARAMETER(lpNotUsed);
}