Click here to Skip to main content
15,906,455 members
Home / Discussions / System Admin
   

System Admin

 
GeneralA File Named ~ Pin
Roger Wright3-Jun-04 16:32
professionalRoger Wright3-Jun-04 16:32 
GeneralRe: A File Named ~ Pin
Member 11501763-Jun-04 20:43
Member 11501763-Jun-04 20:43 
GeneralRe: A File Named ~ Pin
Chris Meech7-Jun-04 8:03
Chris Meech7-Jun-04 8:03 
GeneralRe: A File Named ~ Pin
Roger Wright11-Jun-04 4:50
professionalRoger Wright11-Jun-04 4:50 
GeneralEmail Disclaimer Pin
David Sayers3-Jun-04 5:47
David Sayers3-Jun-04 5:47 
Generalusing multiple-language resource Pin
alexander chupeev3-Jun-04 5:26
alexander chupeev3-Jun-04 5:26 
GeneralRe: using multiple-language resource Pin
David Sayers3-Jun-04 6:03
David Sayers3-Jun-04 6:03 
GeneralRe: using multiple-language resource Pin
alexander chupeev4-Jun-04 4:40
alexander chupeev4-Jun-04 4:40 
This is an examle code that should load russian version of menu resource, but the main
window displayed with english UI though.

------------- sh ./eg.sh ------------------
#!/bin/sh
cat > generic.c << EOF
#include <windows.h>
#include <tchar.h>
#include <windowsx.h>

#define NAMESTART 16

WNDPROC Listbox_WindowProc;

BOOL CALLBACK Enumres_EnumProc(HMODULE hModule, \
LPCTSTR lpszType, LPCTSTR lpszName, LANGID wIDLanguage, LPARAM lParam)
{
TCHAR szItemText[NAMESTART + MAX_PATH];
HWND* hwnd = (HWND*) lParam;
wsprintf(szItemText, TEXT("%#03x %#03x - "), PRIMARYLANGID(wIDLanguage), SUBLANGID(wIDLanguage));
if (0 < GetModuleFileName(hModule, &szItemText[lstrlen(szItemText)], MAX_PATH))
{
ListBox_AddString(*hwnd, szItemText);
}
return (GetLastError() == ERROR_SUCCESS? TRUE: FALSE);
}

void Enumres_OnDestroy(HWND hwnd)
{
SetWindowLong(hwnd, GWL_WNDPROC, (LONG) Listbox_WindowProc);
PostQuitMessage(0);
}

LRESULT CALLBACK Enumres_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
HANDLE_WM_DESTROY(hwnd, wParam, lParam, Enumres_OnDestroy);
break;
default:
return Listbox_WindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}

BOOL InitInstance(int nCmdShow)
{
LCID dwCurrLocale = MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT), SORT_DEFAULT);
if (SetThreadLocale(dwCurrLocale))
{
HMENU menu = LoadMenu(NULL, TEXT("GENERIC"));
if (menu)
{
HWND hwnd = CreateWindow(
TEXT("LISTBOX"), // name of window class
TEXT("Enumres"), // title-bar string
WS_OVERLAPPEDWINDOW, // top-level window
CW_USEDEFAULT, // default horizontal position
CW_USEDEFAULT, // default vertical position
CW_USEDEFAULT, // default width
CW_USEDEFAULT, // default height
NULL, // no owner window
menu, // required menu
NULL, // handle to application instance
(LPVOID) NULL); // no window-creation data
if (hwnd)
{
Listbox_WindowProc = (WNDPROC) SetWindowLong(hwnd, GWL_WNDPROC, (LONG) Enumres_WindowProc);
if (EnumResourceLanguages(NULL, RT_MENU, TEXT("GENERIC"), Enumres_EnumProc, (LPARAM) &hwnd))
{
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}
}
}
}
return FALSE;
}

int WINAPI _tWinMain(HINSTANCE hCurrInst, HINSTANCE hPrevInst, LPTSTR lpCmdLine, int nCmdShow)
{
if (InitInstance(nCmdShow))
{
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return ((int) msg.wParam);
}
return 0;
DBG_UNREFERENCED_PARAMETER(hPrevInst);
DBG_UNREFERENCED_PARAMETER(lpCmdLine);
}
EOF
cat > resource.h << EOF
#define ID_FILE_NEW 100
#define ID_FILE_OPEN 101
#define ID_FILE_SAVE 102
#define ID_FILE_SAVE_AS 103
#define ID_FILE_PRINT 104
#define ID_FILE_PRINT_SETUP 105
#define ID_FILE_EXIT 106

#define ID_EDIT_UNDO 200
#define ID_EDIT_CUT 201
#define ID_EDIT_COPY 202
#define ID_EDIT_PASTE 203
#define ID_EDIT_LINK 204

#define ID_HELP_CONTENTS 300
#define ID_HELP_SEARCH 301
#define ID_HELP_HELP 302
#define ID_HELP_ABOUT 303
#define ID_HELPTOPICS 304
EOF
cat > generic.rc << EOF
#include "windows.h"
#include "winver.h"
#include "resource.h"

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

GENERIC MENU
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "Созд&ать\tCtrl+N", ID_FILE_NEW, GRAYED
MENUITEM "&Открыть...\tCtrl+O", ID_FILE_OPEN, GRAYED
MENUITEM "&Сохранить\tCtrl+S", ID_FILE_SAVE, GRAYED
MENUITEM "Сохранить &как...", ID_FILE_SAVE_AS, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Печать...\tCtrl+P", ID_FILE_PRINT, GRAYED
MENUITEM "Пара&метры страницы...", ID_FILE_PRINT_SETUP, GRAYED
MENUITEM SEPARATOR
MENUITEM "В&ыход\tAlt+X", ID_FILE_EXIT
END
POPUP "&Правка"
BEGIN
MENUITEM "&Отменить\tCtrl+Z", ID_EDIT_UNDO, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Вырезать\tCtrl+X", ID_EDIT_CUT, GRAYED
MENUITEM "&Копировать\tCtrl+C", ID_EDIT_COPY, GRAYED
MENUITEM "&Вставить\tCtrl+V", ID_EDIT_PASTE, GRAYED
MENUITEM "Ссы&лка", ID_EDIT_LINK, GRAYED
END
POPUP "&Справка"
BEGIN
MENUITEM "&Содержание", ID_HELP_CONTENTS, HELP
MENUITEM "&Предметный указатель...", ID_HELP_SEARCH, HELP
MENUITEM "О сп&равочной системе", ID_HELP_HELP, HELP
MENUITEM SEPARATOR
MENUITEM "&О программе...", ID_HELP_ABOUT
END
END

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

GENERIC MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&New\tCtrl+N", ID_FILE_NEW, GRAYED
MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN, GRAYED
MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE, GRAYED
MENUITEM "Save &As...", ID_FILE_SAVE_AS, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT, GRAYED
MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+X", ID_FILE_EXIT
END
POPUP "&Edit"
BEGIN
MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO, GRAYED
MENUITEM SEPARATOR
MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT, GRAYED
MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY, GRAYED
MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE, GRAYED
MENUITEM "Paste &Link", ID_EDIT_LINK, GRAYED
END
POPUP "&Help"
BEGIN
MENUITEM "&Contents", ID_HELP_CONTENTS, HELP
MENUITEM "&Search for Help On...", ID_HELP_SEARCH, HELP
MENUITEM "&How to Use Help", ID_HELP_HELP, HELP
MENUITEM SEPARATOR
MENUITEM "&About Generic...", ID_HELP_ABOUT
END
END
EOF
rc generic.rc
cl /nologo /MDd /Zi /D_UNICODE /DUNICODE generic.c generic.res user32.lib
GeneralNew Program on Laptop Pin
sweep1231-Jun-04 22:21
sweep1231-Jun-04 22:21 
GeneralAutomate installation of windows 2000 Pin
Mekong River1-Jun-04 5:53
Mekong River1-Jun-04 5:53 
GeneralRe: Automate installation of windows 2000 Pin
Roger Wright2-Jun-04 4:56
professionalRoger Wright2-Jun-04 4:56 
GeneralChanging Netscape JRE Pin
LeprosyLM1-Jun-04 4:32
LeprosyLM1-Jun-04 4:32 
QuestionHow can I identify which app has locked a resource? Pin
BryonBaker1-Jun-04 3:06
professionalBryonBaker1-Jun-04 3:06 
AnswerRe: How can I identify which app has locked a resource? Pin
Roger Wright1-Jun-04 3:53
professionalRoger Wright1-Jun-04 3:53 
Generalrsh in windows XP-Urgent Pin
SatyaDY31-May-04 19:40
SatyaDY31-May-04 19:40 
GeneralFun With Firewalls Pin
Roger Wright31-May-04 4:29
professionalRoger Wright31-May-04 4:29 
GeneralRe: Fun With Firewalls Pin
Matt Newman31-May-04 17:12
Matt Newman31-May-04 17:12 
GeneralRe: Fun With Firewalls Pin
Roger Wright31-May-04 21:40
professionalRoger Wright31-May-04 21:40 
GeneralRe: Fun With Firewalls Pin
Matt Newman1-Jun-04 4:03
Matt Newman1-Jun-04 4:03 
GeneralAn Answer That Might Help Pin
Michael Martin29-May-04 22:59
professionalMichael Martin29-May-04 22:59 
GeneralRe: An Answer That Might Help Pin
Roger Wright30-May-04 4:17
professionalRoger Wright30-May-04 4:17 
GeneralRe: An Answer That Might Help Pin
Michael Martin30-May-04 4:24
professionalMichael Martin30-May-04 4:24 
GeneralRe: An Answer That Might Help Pin
Roger Wright30-May-04 4:55
professionalRoger Wright30-May-04 4:55 
GeneralLIF formatted Disks Pin
dentaur29-May-04 1:45
dentaur29-May-04 1:45 
GeneralLost user accounts Pin
Mekong River28-May-04 16:21
Mekong River28-May-04 16:21 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.