Программирование для Windows NT (том 2)



         

Исходные тексты приложения SETLOCAL


Главный файл исходных текстов приложения SETLOCAL приведен в листинге 4.1.

Листинг 4.1. Файл setlocal\setlocal.c

// ==================================================

// Приложение SETLOCAL

// Работа с национальными языками

//

// (С) Фролов А.В., 1996

// Email: frolov@glas.apc.org

// ==================================================

#define STRICT

#include <windows.h>

#include <windowsx.h>

#include "resource.h"

#include "afxres.h"

#include "setlocal.h"

HINSTANCE hInst;

char szAppName[]  = "SetLocalApp";

char szAppTitle[] = "Set and Get Local Info";

// Количество установленных раскладок клавиатуры

UINT uLayouts;

// Указатель на массив идентификаторов

// раскладок клавиатуры

HKL * lpList;

// -----------------------------------------------------

// Функция WinMain

// -----------------------------------------------------

int APIENTRY

WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

        LPSTR lpCmdLine, int nCmdShow)

{

  WNDCLASSEX wc;

  HWND hWnd;

  MSG msg;

 

  // Сохраняем идентификатор приложения

  hInst = hInstance;

  // Проверяем, не было ли это приложение запущено ранее

  hWnd = FindWindow(szAppName, NULL);

  if(hWnd)

  {

    // Если было, выдвигаем окно приложения на

    // передний план

    if(IsIconic(hWnd))

      ShowWindow(hWnd, SW_RESTORE);

    SetForegroundWindow(hWnd);

    return FALSE;

  }

  // Определяем количество установленных

  // раскалдок клавиатуры

  uLayouts = GetKeyboardLayoutList(0, NULL);

  // Заказываем массив для хранения идентификаторов

  // раскладок клавиатуры

  lpList = malloc(uLayouts * sizeof(HKL));

  // Заполнение массива идентификаторов

  // раскладок клавиатуры

  uLayouts = GetKeyboardLayoutList(uLayouts, lpList);

 

  // Регистрируем класс окна

  memset(&wc, 0, sizeof(wc));

  wc.cbSize = sizeof(WNDCLASSEX);

  wc.hIconSm = LoadImage(hInst,




Содержание  Назад  Вперед