source: lab.git/Dev/utvpn/utvpn-unix-v101-7101-public/src/Cedar/WinUi.h @ a1bae3e

trunk
Last change on this file since a1bae3e was a1bae3e, checked in by mitty <mitty@…>, 12 years ago
  • copy vendor drop to trunk

git-svn-id: https://lab.mitty.jp/svn/lab/trunk@147 7d2118f6-f56c-43e7-95a2-4bb3031d96e7

  • Property mode set to 100644
File size: 29.4 KB
Line 
1// SoftEther UT-VPN SourceCode
2//
3// Copyright (C) 2004-2010 SoftEther Corporation.
4// Copyright (C) 2004-2010 University of Tsukuba, Japan.
5// Copyright (C) 2003-2010 Daiyuu Nobori.
6// All Rights Reserved.
7//
8// http://utvpn.tsukuba.ac.jp/
9//
10// This program is free software; you can redistribute it and/or
11// modify it under the terms of the GNU General Public License
12// version 2 as published by the Free Software Foundation.
13//
14// This program is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17// GNU General Public License for more details.
18//
19// You should have received a copy of the GNU General Public License version 2
20// along with this program; if not, write to the Free Software
21// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22//
23// このファイルは GPL バージョン 2 ライセンスで公開されています。
24// 誰でもこのファイルの内容を複製、改変したり、改変したバージョンを再配布
25// することができます。ただし、原著作物を改変した場合は、原著作物の著作権表示
26// を除去することはできません。改変した著作物を配布する場合は、改変実施者の
27// 著作権表示を原著作物の著作権表示に付随して記載するようにしてください。
28//
29// この SoftEther UT-VPN オープンソース・プロジェクトは、日本国の
30// ソフトイーサ株式会社 (SoftEther Corporation, http://www.softether.co.jp/ )
31// および筑波大学 (University of Tsukuba, http://www.tsukuba.ac.jp/ ) によって
32// ホストされています。
33// 本プログラムの配布者は、本プログラムを、業としての利用以外のため、
34// および、試験または研究のために利用が行われることを想定して配布
35// しています。
36// SoftEther UT-VPN プロジェクトの Web サイトは http://utvpn.tsukuba.ac.jp/ に
37// あります。
38// 本ソフトウェアの不具合の修正、機能改良、セキュリティホールの修復などのコード
39// の改変を行った場合で、その成果物を SoftEther UT-VPN プロジェクトに提出して
40// いただける場合は、 http://utvpn.tsukuba.ac.jp/ までソースコードを送付して
41// ください。SoftEther UT-VPN プロジェクトの本体リリースまたはブランチリリース
42// に組み込みさせていただきます。
43//
44// GPL に基づいて原著作物が提供される本ソフトウェアの改良版を配布、販売する
45// 場合は、そのソースコードを GPL に基づいて誰にでも開示する義務が生じます。
46//
47// 本ソフトウェアに関連する著作権、特許権、商標権はソフトイーサ株式会社
48// (SoftEther Corporation) およびその他の著作権保持者が保有しています。
49// ソフトイーサ株式会社等はこれらの権利を放棄していません。本ソフトウェアの
50// 二次著作物を配布、販売する場合は、これらの権利を侵害しないようにご注意
51// ください。
52//
53// お願い: どのような通信ソフトウェアにも通常は必ず未発見の
54// セキュリティホールが潜んでいます。本ソースコードをご覧いただいた結果、
55// UT-VPN にセキュリティホールを発見された場合は、当該セキュリティホールの
56// 情報を不特定多数に開示される前に、必ず、ソフトイーサ株式会社
57// および脆弱性情報の届出を受け付ける公的機関まで通報いただき、
58// 公益保護にご協力いただきますようお願い申し上げます。
59//
60// ソフトイーサ株式会社は、当該セキュリティホールについて迅速に対処を
61// 行い、UT-VPN および UT-VPN に関連するソフトウェアのユーザー・顧客
62// を保護するための努力を行います。
63//
64// ソフトイーサへの届出先: http://www.softether.co.jp/jp/contact/
65// 日本国内の脆弱性情報届出受付公的機関:
66//         独立行政法人 情報処理推進機構
67//         http://www.ipa.go.jp/security/vuln/report/
68//
69// 上記各事項について不明な点は、ソフトイーサ株式会社までご連絡ください。
70// 連絡先: http://www.softether.co.jp/jp/contact/
71
72// -----------------------------------------------
73// [ChangeLog]
74// 2010.05.20
75//  新規リリース by SoftEther
76// -----------------------------------------------
77
78// WinUi.h
79// Win32 用ユーザーインターフェースコード
80
81#ifdef  OS_WIN32
82
83#define WINUI_DEBUG_TEXT                            "@winui_debug.txt"
84
85#define LV_INSERT_RESET_ALL_ITEM_MIN                500
86
87#define WINUI_PASSWORD_NULL_USERNAME                "NULL"
88
89#define WINUI_DEFAULT_DIALOG_UNIT_X                 7
90#define WINUI_DEFAULT_DIALOG_UNIT_Y                 12
91
92// Windows 用の型が windows.h をインクルードしていなくても使えるようにする
93#ifndef _WINDEF_
94
95typedef void *HWND;
96typedef void *HFONT;
97typedef void *HICON;
98typedef void *HMENU;
99typedef UINT_PTR WPARAM;
100typedef LONG_PTR LPARAM;
101typedef void *HINSTANCE;
102
103#endif  // _WINDEF_
104
105
106// 定数
107#define FREE_REGKEY             "Software\\SoftEther Corporation\\UT-VPN Client\\Free Edition Info"
108#define ONCE_MSG_REGKEY         "Software\\SoftEther Corporation\\UT-VPN\\Common"
109#define ONCE_MSG_REGVALUE       "HideMessage_%u"
110
111#define SPLASH_BMP_REGKEY       "Software\\SoftEther Corporation\\UT-VPN\\SplashScreen"
112#define SPLASH_BMP_REGVALUE     "LastId"
113
114#define NICINFO_AUTOCLOSE_TIME_1    (20 * 1000)
115#define NICINFO_AUTOCLOSE_TIME_2    1800
116
117extern bool UseAlpha;
118extern UINT AlphaValue;
119
120
121// マクロ
122#define DIALOG          DIALOGEX(false)
123#define DIALOG_WHITE    DIALOGEX(true)
124#define DIALOGEX(white)                             \
125    void *param = GetParam(hWnd);                   \
126    {                                               \
127        UINT ret;                                   \
128        ret = DlgProc(hWnd, msg, wParam, lParam, white);    \
129        if (ret != 0) return ret;                   \
130    }
131
132typedef UINT (__stdcall DIALOG_PROC)(HWND, UINT, WPARAM, LPARAM);
133
134typedef UINT (WINUI_DIALOG_PROC)(HWND, UINT, WPARAM, LPARAM, void *);
135
136
137// セキュア操作内容
138#define WINUI_SECURE_ENUM_OBJECTS       1           // オブジェクトの列挙
139#define WINUI_SECURE_WRITE_DATA         2           // データの書き込み
140#define WINUI_SECURE_READ_DATA          3           // データの読み込み
141#define WINUI_SECURE_WRITE_CERT         4           // 証明書の書き込み
142#define WINUI_SECURE_READ_CERT          5           // 証明書の読み込み
143#define WINUI_SECURE_WRITE_KEY          6           // 秘密鍵の書き込み
144#define WINUI_SECURE_SIGN_WITH_KEY      7           // 秘密鍵による署名
145#define WINUI_SECURE_DELETE_OBJECT      8           // オブジェクトの削除
146#define WINUI_SECURE_DELETE_CERT        9           // 証明書の削除
147#define WINUI_SECURE_DELETE_KEY         10          // 秘密鍵の削除
148#define WINUI_SECURE_DELETE_DATA        11          // データの削除
149
150// セキュア操作構造体
151typedef struct WINUI_SECURE_BATCH
152{
153    UINT Type;                                      // 動作の種類
154    char *Name;                                     // 名前
155    bool Private;                                   // プライベートモード
156    BUF *InputData;                                 // 入力データ
157    BUF *OutputData;                                // 出力データ
158    X *InputX;                                      // 入力証明書
159    X *OutputX;                                     // 出力証明書
160    K *InputK;                                      // 入力秘密鍵
161    LIST *EnumList;                                 // 列挙リスト
162    UCHAR OutputSign[128];                          // 出力署名
163    bool Succeed;                                   // 成功フラグ
164} WINUI_SECURE_BATCH;
165
166// ステータスウインドウ
167typedef struct STATUS_WINDOW
168{
169    HWND hWnd;
170    THREAD *Thread;
171} STATUS_WINDOW;
172
173// バッチ処理アイテム
174typedef struct LVB_ITEM
175{
176    UINT NumStrings;                // 文字列数
177    wchar_t **Strings;              // 文字列バッファ
178    UINT Image;                     // 画像番号
179    void *Param;                    // パラメータ
180} LVB_ITEM;
181
182// LV 挿入バッチ処理
183typedef struct LVB
184{
185    LIST *ItemList;                 // アイテムリスト
186} LVB;
187
188
189#ifdef  CreateWindow
190
191// 内部用コード
192
193// フォント
194typedef struct FONT
195{
196    UINT Size;                      // サイズ
197    bool Bold;                      // 太字
198    bool Italic;                    // 斜体
199    bool UnderLine;                 // 下線
200    bool StrikeOut;                 // 取り消し線
201    char *Name;                     // フォント名
202    HFONT hFont;                    // フォント
203    UINT x, y;                      // フォントサイズ
204} FONT;
205
206// フォントキャッシュリスト
207static LIST *font_list = NULL;
208
209// ダイアログ関係
210typedef struct DIALOG_PARAM
211{
212    bool white;
213    void *param;
214    WINUI_DIALOG_PROC *proc;
215    bool meiryo;
216} DIALOG_PARAM;
217
218// セキュアデバイスウインドウ関係
219typedef struct SECURE_DEVICE_WINDOW
220{
221    WINUI_SECURE_BATCH *batch;
222    UINT num_batch;
223    UINT device_id;
224    struct SECURE_DEVICE_THREAD *p;
225    char *default_pin;
226    UINT BitmapId;
227} SECURE_DEVICE_WINDOW;
228
229// スレッド
230typedef struct SECURE_DEVICE_THREAD
231{
232    SECURE_DEVICE_WINDOW *w;
233    HWND hWnd;
234    bool Succeed;
235    wchar_t *ErrorMessage;
236    char *pin;
237} SECURE_DEVICE_THREAD;
238
239void StartSecureDevice(HWND hWnd, SECURE_DEVICE_WINDOW *w);
240
241// パスフレーズ
242typedef struct PASSPHRASE_DLG
243{
244    char pass[MAX_SIZE];
245    BUF *buf;
246    bool p12;
247} PASSPHRASE_DLG;
248
249void PassphraseDlgProcCommand(HWND hWnd, PASSPHRASE_DLG *p);
250
251// ステータスウインドウ
252typedef struct STATUS_WINDOW_PARAM
253{
254    HWND hWnd;
255    SOCK *Sock;
256    THREAD *Thread;
257    wchar_t AccountName[MAX_ACCOUNT_NAME_LEN + 1];
258} STATUS_WINDOW_PARAM;
259
260// 証明書表示ダイアログ
261typedef struct CERT_DLG
262{
263    X *x, *issuer_x;
264    bool ManagerMode;
265} CERT_DLG;
266
267
268typedef struct IMAGELIST_ICON
269{
270    UINT id;
271    HICON hSmallImage;
272    HICON hLargeImage;
273    UINT Index;
274} IMAGELIST_ICON;
275
276typedef struct SEARCH_WINDOW_PARAM
277{
278    wchar_t *caption;
279    HWND hWndFound;
280} SEARCH_WINDOW_PARAM;
281
282// リモート接続画面設定
283typedef struct WINUI_REMOTE
284{
285    bool flag1;
286    char *RegKeyName;                   // レジストリキー名
287    UINT Icon;                          // アイコン
288    wchar_t *Caption;                   // キャプション
289    wchar_t *Title;                     // タイトル
290    char *Hostname;                     // ホスト名
291    char *DefaultHostname;              // デフォルトホスト名
292    LIST *CandidateList;                // 候補リスト
293} WINUI_REMOTE;
294
295void InitImageList();
296void FreeImageList();
297IMAGELIST_ICON *LoadIconForImageList(UINT id);
298int CompareImageListIcon(void *p1, void *p2);
299BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG_PTR lParam);
300void PrintCertInfo(HWND hWnd, CERT_DLG *p);
301void CertDlgUpdate(HWND hWnd, CERT_DLG *p);
302bool CALLBACK SearchWindowEnumProc(HWND hWnd, LPARAM lParam);
303UINT RemoteDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
304void RemoteDlgInit(HWND hWnd, WINUI_REMOTE *r);
305void RemoteDlgRefresh(HWND hWnd, WINUI_REMOTE *r);
306void RemoteDlgOnOk(HWND hWnd, WINUI_REMOTE *r);
307int CALLBACK LvSortProc(LPARAM param1, LPARAM param2, LPARAM sort_param);
308
309// アイコンキャッシュ
310typedef struct ICON_CACHE
311{
312    UINT id;
313    bool small_icon;
314    HICON hIcon;
315} ICON_CACHE;
316
317static LIST *icon_cache_list = NULL;
318
319// ソート関係
320typedef struct WINUI_LV_SORT
321{
322    HWND hWnd;
323    UINT id;
324    UINT subitem;
325    bool desc;
326    bool numeric;
327} WINUI_LV_SORT;
328
329// バージョン情報
330typedef struct WINUI_ABOUT
331{
332    CEDAR *Cedar;
333    char *ProductName;
334    UINT Bitmap;
335} WINUI_ABOUT;
336
337UINT AboutDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
338void AboutDlgInit(HWND hWnd, WINUI_ABOUT *a);
339
340typedef struct WIN9X_REBOOT_DLG
341{
342    UINT64 StartTime;
343    UINT TotalTime;
344} WIN9X_REBOOT_DLG;
345
346
347
348// STRING
349typedef struct STRING_DLG
350{
351    wchar_t String[MAX_SIZE];
352    wchar_t *Title;
353    wchar_t *Info;
354    UINT Icon;
355    bool AllowEmpty;
356    bool AllowUnsafe;
357} STRING_DLG;
358
359void StringDlgInit(HWND hWnd, STRING_DLG *s);
360void StringDlgUpdate(HWND hWnd, STRING_DLG *s);
361
362// PIN コードは 5 分間キャッシュされる
363#define WINUI_SECUREDEVICE_PIN_CACHE_TIME       (5 * 60 * 1000)
364extern char cached_pin_code[MAX_SIZE];
365extern UINT64 cached_pin_code_expires;
366
367// TCP 接続ダイアログ関係
368typedef struct WINCONNECT_DLG_DATA
369{
370    wchar_t *caption;
371    wchar_t *info;
372    UINT icon_id;
373    UINT timeout;
374    char *hostname;
375    UINT port;
376    bool cancel;
377    SOCK *ret_sock;
378    THREAD *thread;
379    HWND hWnd;
380} WINCONNECT_DLG_DATA;
381
382#endif  // WINUI_C
383
384// 隠し
385typedef struct KAKUSHI
386{
387    HWND hWnd;
388    THREAD *Thread;
389    volatile bool Halt;
390    UINT64 StartTick, Span;
391} KAKUSHI;
392
393// フリー版に関する情報画面
394typedef struct FREEINFO
395{
396    char ServerName[MAX_SERVER_STR_LEN + 1];
397    HWND hWnd;
398    THREAD *Thread;
399    EVENT *Event;
400} FREEINFO;
401
402// メッセージ
403typedef struct ONCEMSG_DLG
404{
405    UINT Icon;
406    wchar_t *Title;
407    wchar_t *Message;
408    bool ShowCheckbox;
409    bool Checked;
410    UINT MessageHash;
411    bool *halt;
412} ONCEMSG_DLG;
413
414// 悪いプロセスの定義
415typedef struct BAD_PROCESS
416{
417    char *ExeName;
418    char *Title;
419} BAD_PROCESS;
420
421// ビットマップ
422typedef struct WINBMP
423{
424    void *hBitmap;
425    UINT Width, Height, Bits;
426    void *hDC;
427} WINBMP;
428
429// メモリ DC
430typedef struct WINMEMDC
431{
432    void *hDC;
433    UINT Width, Height;
434    void *hBitmap;
435    UCHAR *Data;
436} WINMEMDC;
437
438#ifdef  WINUI_C
439
440// 競合するアンチウイルスソフトのプロセス名一覧
441static BAD_PROCESS bad_processes[] =
442{
443    {"nod32krn.exe", "NOD32 Antivirus",},
444};
445
446static UINT num_bad_processes = sizeof(bad_processes) / sizeof(bad_processes[0]);
447
448#endif  // WINUI_C
449
450// 関数プロトタイプ
451void InitWinUi(wchar_t *software_name, char *font, UINT fontsize);
452void SetWinUiTitle(wchar_t *title);
453void FreeWinUi();
454HWND DlgItem(HWND hWnd, UINT id);
455void SetText(HWND hWnd, UINT id, wchar_t *str);
456void SetTextInner(HWND hWnd, UINT id, wchar_t *str);
457void SetTextA(HWND hWnd, UINT id, char *str);
458wchar_t *GetText(HWND hWnd, UINT id);
459char *GetTextA(HWND hWnd, UINT id);
460bool GetTxt(HWND hWnd, UINT id, wchar_t *str, UINT size);
461bool GetTxtA(HWND hWnd, UINT id, char *str, UINT size);
462bool IsEnable(HWND hWnd, UINT id);
463bool IsDisable(HWND hWnd, UINT id);
464void Enable(HWND hWnd, UINT id);
465void Disable(HWND hWnd, UINT id);
466void SetEnable(HWND hWnd, UINT id, bool b);
467void Close(HWND hWnd);
468void DoEvents(HWND hWnd);
469void Refresh(HWND hWnd);
470UINT GetInt(HWND hWnd, UINT id);
471void SetInt(HWND hWnd, UINT id, UINT value);
472void SetIntEx(HWND hWnd, UINT id, UINT value);
473void Focus(HWND hWnd, UINT id);
474void FocusEx(HWND hWnd, UINT id);
475bool IsFocus(HWND hWnd, UINT id);
476wchar_t *GetClass(HWND hWnd, UINT id);
477char *GetClassA(HWND hWnd, UINT id);
478void SelectEdit(HWND hWnd, UINT id);
479void UnselectEdit(HWND hWnd, UINT id);
480UINT SendMsg(HWND hWnd, UINT id, UINT msg, WPARAM wParam, LPARAM lParam);
481bool IsEmpty(HWND hWnd, UINT id);
482UINT GetTextLen(HWND hWnd, UINT id, bool unicode);
483UINT GetTextSize(HWND hWnd, UINT id, bool unicode);
484UINT GetStyle(HWND hWnd, UINT id);
485void SetStyle(HWND hWnd, UINT id, UINT style);
486void RemoveStyle(HWND hWnd, UINT id, UINT style);
487UINT GetExStyle(HWND hWnd, UINT id);
488void SetExStyle(HWND hWnd, UINT id, UINT style);
489void RemoveExStyle(HWND hWnd, UINT id, UINT style);
490void Hide(HWND hWnd, UINT id);
491void Show(HWND hWnd, UINT id);
492void SetShow(HWND hWnd, UINT id, bool b);
493bool IsHide(HWND hWnd, UINT id);
494bool IsShow(HWND hWnd, UINT id);
495void Top(HWND hWnd);
496void NoTop(HWND hWnd);
497void *GetParam(HWND hWnd);
498void SetParam(HWND hWnd, void *param);
499UINT DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, bool white_color);
500void SetAplha(HWND hWnd, UINT value0_255);
501void NoticeSettingChange();
502void UiTest();
503UINT DialogInternal(HWND hWnd, UINT id, DIALOG_PROC *proc, void *param);
504UINT MsgBox(HWND hWnd, UINT flag, wchar_t *msg);
505UINT MsgBoxEx(HWND hWnd, UINT flag, wchar_t *msg, ...);
506void SetTextEx(HWND hWnd, UINT id, wchar_t *str, ...);
507void SetTextExA(HWND hWnd, UINT id, char *str, ...);
508void FormatText(HWND hWnd, UINT id, ...);
509void FormatTextA(HWND hWnd, UINT id, ...);
510void Center(HWND hWnd);
511void Center2(HWND hWnd);
512void CenterParent(HWND hWnd);
513void GetMonitorSize(UINT *width, UINT *height);
514void DisableClose(HWND hWnd);
515void EnableClose(HWND hWnd);
516void InitFont();
517void FreeFont();
518int CompareFont(void *p1, void *p2);
519HFONT GetFont(char *name, UINT size, bool bold, bool italic, bool underline, bool strikeout);
520bool CalcFontSize(HFONT hFont, UINT *x, UINT *y);
521bool GetFontSize(HFONT hFont, UINT *x, UINT *y);
522void SetFont(HWND hWnd, UINT id, HFONT hFont);
523void LimitText(HWND hWnd, UINT id, UINT count);
524bool CheckTextLen(HWND hWnd, UINT id, UINT len, bool unicode);
525bool CheckTextSize(HWND hWnd, UINT id, UINT size, bool unicode);
526void Check(HWND hWnd, UINT id, bool b);
527bool IsChecked(HWND hWnd, UINT id);
528void SetIcon(HWND hWnd, UINT id, UINT icon_id);
529void SetBitmap(HWND hWnd, UINT id, UINT bmp_id);
530bool SecureDeviceWindow(HWND hWnd, WINUI_SECURE_BATCH *batch, UINT num_batch, UINT device_id, UINT bitmap_id);
531UINT Dialog(HWND hWnd, UINT id, WINUI_DIALOG_PROC *proc, void *param);
532UINT DialogEx(HWND hWnd, UINT id, WINUI_DIALOG_PROC *proc, void *param, bool white);
533UINT DialogEx2(HWND hWnd, UINT id, WINUI_DIALOG_PROC *proc, void *param, bool white, bool meiryo);
534HWND DialogCreateEx(HWND hWnd, UINT id, WINUI_DIALOG_PROC *proc, void *param, bool white);
535UINT __stdcall InternalDialogProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
536UINT SecureDeviceWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
537HFONT Font(UINT size, UINT bold);
538void DlgFont(HWND hWnd, UINT id, UINT size, UINT bold);
539void OpenAvi(HWND hWnd, UINT id, UINT avi_id);
540void CloseAvi(HWND hWnd, UINT id);
541void PlayAvi(HWND hWnd, UINT id, bool repeat);
542void StopAvi(HWND hWnd, UINT id);
543void EnableSecureDeviceWindowControls(HWND hWnd, bool enable);
544void SecureDeviceThread(THREAD *t, void *param);
545void Command(HWND hWnd, UINT id);
546wchar_t *OpenDlg(HWND hWnd, wchar_t *filter, wchar_t *title);
547char *OpenDlgA(HWND hWnd, char *filter, char *title);
548wchar_t *SaveDlg(HWND hWnd, wchar_t *filter, wchar_t *title, wchar_t *default_name, wchar_t *default_ext);
549char *SaveDlgA(HWND hWnd, char *filter, char *title, char *default_name, char *default_ext);
550wchar_t *MakeFilter(wchar_t *str);
551char *MakeFilterA(char *str);
552void PkcsUtil();
553UINT PkcsUtilProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
554void PkcsUtilWrite(HWND hWnd);
555void PkcsUtilErase(HWND hWnd);
556bool PassphraseDlg(HWND hWnd, char *pass, UINT pass_size, BUF *buf, bool p12);
557UINT PassphraseDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
558bool PasswordDlg(HWND hWnd, UI_PASSWORD_DLG *p);
559void PasswordDlgOnOk(HWND hWnd, UI_PASSWORD_DLG *p);
560UINT PasswordDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
561void PasswordDlgProcChange(HWND hWnd, UI_PASSWORD_DLG *p);
562UINT CbAddStr(HWND hWnd, UINT id, wchar_t *str, UINT data);
563UINT CbAddStrA(HWND hWnd, UINT id, char *str, UINT data);
564UINT CbAddStr9xA(HWND hWnd, UINT id, char *str, UINT data);
565UINT CbInsertStr(HWND hWnd, UINT id, UINT index, wchar_t *str, UINT data);
566UINT CbInsertStrA(HWND hWnd, UINT id, UINT index, char *str, UINT data);
567UINT CbInsertStr9xA(HWND hWnd, UINT id, UINT index, char *str, UINT data);
568void CbSelectIndex(HWND hWnd, UINT id, UINT index);
569UINT CbNum(HWND hWnd, UINT id);
570UINT CbFindStr(HWND hWnd, UINT id, wchar_t *str);
571UINT CbFindStr9xA(HWND hWnd, UINT id, char *str);
572wchar_t *CbGetStr(HWND hWnd, UINT id);
573UINT CbFindData(HWND hWnd, UINT id, UINT data);
574UINT CbGetData(HWND hWnd, UINT id, UINT index);
575void CbSelect(HWND hWnd, UINT id, int data);
576void CbReset(HWND hWnd, UINT id);
577void CbSetHeight(HWND hWnd, UINT id, UINT value);
578UINT CbGetSelectIndex(HWND hWnd, UINT id);
579UINT CbGetSelect(HWND hWnd, UINT id);
580void SetRange(HWND hWnd, UINT id, UINT start, UINT end);
581void SetPos(HWND hWnd, UINT id, UINT pos);
582UINT LbAddStr(HWND hWnd, UINT id, wchar_t *str, UINT data);
583UINT LbAddStrA(HWND hWnd, UINT id, char *str, UINT data);
584UINT LbInsertStr(HWND hWnd, UINT id, UINT index, wchar_t *str, UINT data);
585UINT LbInsertStrA(HWND hWnd, UINT id, UINT index, char *str, UINT data);
586void LbSelectIndex(HWND hWnd, UINT id, UINT index);
587UINT LbNum(HWND hWnd, UINT id);
588UINT LbFindStr(HWND hWnd, UINT id, wchar_t *str);
589wchar_t *LbGetStr(HWND hWnd, UINT id);
590UINT LbFindData(HWND hWnd, UINT id, UINT data);
591UINT LbGetData(HWND hWnd, UINT id, UINT index);
592void LbSelect(HWND hWnd, UINT id, int data);
593void LbReset(HWND hWnd, UINT id);
594void LbSetHeight(HWND hWnd, UINT id, UINT value);
595UINT LbGetSelectIndex(HWND hWnd, UINT id);
596UINT LbGetSelect(HWND hWnd, UINT id);
597STATUS_WINDOW *StatusPrinterWindowStart(SOCK *s, wchar_t *account_name);
598void StatusPrinterWindowStop(STATUS_WINDOW *sw);
599void StatusPrinterWindowPrint(STATUS_WINDOW *sw, wchar_t *str);
600void StatusPrinterWindowThread(THREAD *thread, void *param);
601UINT StatusPrinterWindowDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
602void CertDlg(HWND hWnd, X *x, X *issuer_x, bool manager);
603UINT CertDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
604void LvInit(HWND hWnd, UINT id);
605void LvInitEx(HWND hWnd, UINT id, bool no_image);
606void LvInitEx2(HWND hWnd, UINT id, bool no_image, bool large_icon);
607void LvReset(HWND hWnd, UINT id);
608void LvInsertColumn(HWND hWnd, UINT id, UINT index, wchar_t *str, UINT width);
609UINT GetIcon(UINT icon_id);
610void LvInsert(HWND hWnd, UINT id, UINT icon, void *param, UINT num_str, ...);
611UINT LvInsertItem(HWND hWnd, UINT id, UINT icon, void *param, wchar_t *str);
612UINT LvInsertItemByImageListId(HWND hWnd, UINT id, UINT image, void *param, wchar_t *str);
613UINT LvInsertItemByImageListIdA(HWND hWnd, UINT id, UINT image, void *param, char *str);
614void LvSetItem(HWND hWnd, UINT id, UINT index, UINT pos, wchar_t *str);
615void LvSetItemA(HWND hWnd, UINT id, UINT index, UINT pos, char *str);
616void LvSetItemParam(HWND hWnd, UINT id, UINT index, void *param);
617void LvSetItemImage(HWND hWnd, UINT id, UINT index, UINT icon);
618void LvSetItemImageByImageListId(HWND hWnd, UINT id, UINT index, UINT image);
619void LvDeleteItem(HWND hWnd, UINT id, UINT index);
620UINT LvNum(HWND hWnd, UINT id);
621void *LvGetParam(HWND hWnd, UINT id, UINT index);
622wchar_t *LvGetStr(HWND hWnd, UINT id, UINT index, UINT pos);
623char *LvGetStrA(HWND hWnd, UINT id, UINT index, UINT pos);
624void LvShow(HWND hWnd, UINT id, UINT index);
625UINT LvSearchParam(HWND hWnd, UINT id, void *param);
626UINT LvSearchStr(HWND hWnd, UINT id, UINT pos, wchar_t *str);
627UINT LvSearchStrA(HWND hWnd, UINT id, UINT pos, char *str);
628UINT LvGetSelected(HWND hWnd, UINT id);
629UINT LvGetFocused(HWND hWnd, UINT id);
630wchar_t *LvGetFocusedStr(HWND hWnd, UINT id, UINT pos);
631wchar_t *LvGetSelectedStr(HWND hWnd, UINT id, UINT pos);
632char *LvGetSelectedStrA(HWND hWnd, UINT id, UINT pos);
633bool LvIsSelected(HWND hWnd, UINT id);
634UINT LvGetNextMasked(HWND hWnd, UINT id, UINT start);
635bool LvIsMasked(HWND hWnd, UINT id);
636bool LvIsSingleSelected(HWND hWnd, UINT id);
637bool LvIsMultiMasked(HWND hWnd, UINT id);
638UINT LvGetMaskedNum(HWND hWnd, UINT id);
639void LvAutoSize(HWND hWnd, UINT id);
640void LvSelect(HWND hWnd, UINT id, UINT index);
641void LvSelectAll(HWND hWnd, UINT id);
642void LvSwitchSelect(HWND hWnd, UINT id);
643void LvSetView(HWND hWnd, UINT id, bool details);
644UINT LvGetColumnWidth(HWND hWnd, UINT id, UINT index);
645void CheckCertDlg(UI_CHECKCERT *p);
646UINT CheckCertDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
647void PrintCheckCertInfo(HWND hWnd, UI_CHECKCERT *p);
648void ShowDlgDiffWarning(HWND hWnd, UI_CHECKCERT *p);
649void CheckCertDialogOnOk(HWND hWnd, UI_CHECKCERT *p);
650bool ConnectErrorDlg(UI_CONNECTERROR_DLG *p);
651UINT ConnectErrorDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
652HINSTANCE GetUiDll();
653HICON LoadLargeIconInner(UINT id);
654HICON LoadSmallIconInner(UINT id);
655HICON LoadLargeIcon(UINT id);
656HICON LoadSmallIcon(UINT id);
657HICON LoadIconEx(UINT id, bool small_icon);
658void InitIconCache();
659void FreeIconCache();
660LVB *LvInsertStart();
661void LvInsertAdd(LVB *b, UINT icon, void *param, UINT num_str, ...);
662void LvInsertEnd(LVB *b, HWND hWnd, UINT id);
663void LvInsertEndEx(LVB *b, HWND hWnd, UINT id, bool force_reset);
664void LvSetStyle(HWND hWnd, UINT id, UINT style);
665void LvRemoveStyle(HWND hWnd, UINT id, UINT style);
666HMENU LoadSubMenu(UINT menu_id, UINT pos, HMENU *parent_menu);
667UINT GetMenuItemPos(HMENU hMenu, UINT id);
668void DeleteMenuItem(HMENU hMenu, UINT pos);
669void SetMenuItemEnable(HMENU hMenu, UINT pos, bool enable);
670void SetMenuItemBold(HMENU hMenu, UINT pos, bool bold);
671wchar_t *GetMenuStr(HMENU hMenu, UINT pos);
672char *GetMenuStrA(HMENU hMenu, UINT pos);
673void SetMenuStr(HMENU hMenu, UINT pos, wchar_t *str);
674void SetMenuStrA(HMENU hMenu, UINT pos, char *str);
675void RemoveShortcutKeyStrFromMenu(HMENU hMenu);
676UINT GetMenuNum(HMENU hMenu);
677void PrintMenu(HWND hWnd, HMENU hMenu);
678void LvRename(HWND hWnd, UINT id, UINT pos);
679void AllowFGWindow(UINT process_id);
680HWND SearchWindow(wchar_t *caption);
681char *RemoteDlg(HWND hWnd, char *regkey, UINT icon, wchar_t *caption, wchar_t *title, char *default_host);
682LIST *ReadCandidateFromReg(UINT root, char *key, char *name);
683void WriteCandidateToReg(UINT root, char *key, LIST *o, char *name);
684UINT LvGetColumnNum(HWND hWnd, UINT id);
685void LvSetItemParamEx(HWND hWnd, UINT id, UINT index, UINT subitem, void *param);
686void LvSortEx(HWND hWnd, UINT id, UINT subitem, bool desc, bool numeric);
687void LvSort(HWND hWnd, UINT id, UINT subitem, bool desc);
688void *LvGetParamEx(HWND hWnd, UINT id, UINT index, UINT subitem);
689void LvSortHander(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, UINT id);
690void LvStandardHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, UINT id);
691void IpSet(HWND hWnd, UINT id, UINT ip);
692UINT IpGet(HWND hWnd, UINT id);
693void IpClear(HWND hWnd, UINT id);
694bool IpIsFilled(HWND hWnd, UINT id);
695UINT IpGetFilledNum(HWND hWnd, UINT id);
696void About(HWND hWnd, CEDAR *cedar, char *product_name, UINT bitmap);
697void Win9xReboot(HWND hWnd);
698void Win9xRebootThread(THREAD *t, void *p);
699UINT Win9xRebootDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
700wchar_t *StringDlg(HWND hWnd, wchar_t *title, wchar_t *info, wchar_t *def, UINT icon, bool allow_empty, bool allow_unsafe);
701char *StringDlgA(HWND hWnd, wchar_t *title, wchar_t *info, char *def, UINT icon, bool allow_empty, bool allow_unsafe);
702UINT StringDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
703void InitDialogInternational(HWND hWnd, void *param);
704void AdjustWindowAndControlSize(HWND hWnd);
705void AdjustDialogXY(UINT *x, UINT *y, UINT dlgfont_x, UINT dlgfont_y);
706HFONT GetDialogDefaultFont();
707HFONT GetDialogDefaultFontEx(bool meiryo);
708void InitMenuInternational(HMENU hMenu, char *prefix);
709void InitMenuInternationalUni(HMENU hMenu, char *prefix);
710void ShowTcpIpConfigUtil(HWND hWnd, bool util_mode);
711void ShowCpu64Warning();
712UINT Cpu64DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
713UINT TcpIpDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
714void TcpIpDlgInit(HWND hWnd);
715void TcpIpDlgUpdate(HWND hWnd);
716UINT TcpMsgDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
717UINT KakushiDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
718void KakushiThread(THREAD *thread, void *param);
719KAKUSHI *InitKakushi();
720void FreeKakushi(KAKUSHI *k);
721void ShowEasterEgg(HWND hWnd);
722bool ExecuteHamcoreExe(char *name);
723bool Win32CnCheckAlreadyExists(bool lock);
724void RegistWindowsFirewallAll();
725void InitVistaWindowTheme(HWND hWnd);
726void WinUiDebug(wchar_t *str);
727void WinUiDebugInit();
728void WinUiDebugFree();
729void OnceMsg(HWND hWnd, wchar_t *title, wchar_t *message, bool show_checkbox, UINT icon);
730void OnceMsgEx(HWND hWnd, wchar_t *title, wchar_t *message, bool show_checkbox, UINT icon, bool *halt);
731UINT GetOnceMsgHash(wchar_t *title, wchar_t *message);
732UINT OnceMsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
733bool CheckBadProcesses(HWND hWnd);
734BAD_PROCESS *IsBadProcess(char *exe);
735void ShowBadProcessWarning(HWND hWnd, BAD_PROCESS *bad);
736void SetFontMeiryo(HWND hWnd, UINT id);
737void SetFontDefault(HWND hWnd, UINT id);
738HFONT GetMeiryoFont();
739HFONT GetMeiryoFontEx(UINT font_size);
740bool ShowWindowsNetworkConnectionDialog();
741SOCK *WinConnectEx2(HWND hWnd, char *server, UINT port, UINT timeout, UINT icon_id, wchar_t *caption, wchar_t *info);
742UINT WinConnectDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
743void WinConnectDlgThread(THREAD *thread, void *param);
744void NicInfo(UI_NICINFO *info);
745UINT NicInfoProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
746void NicInfoInit(HWND hWnd, UI_NICINFO *info);
747void NicInfoOnTimer(HWND hWnd, UI_NICINFO *info);
748void NicInfoRefresh(HWND hWnd, UI_NICINFO *info);
749void NicInfoShowStatus(HWND hWnd, UI_NICINFO *info, wchar_t *msg1, wchar_t *msg2, UINT icon, bool animate);
750void NicInfoCloseAfterTime(HWND hWnd, UI_NICINFO *info, UINT tick);
751bool IsNewStyleModeEnabled();
752void DisableNewStyleMode();
753void EnableNewStyleMode();
754void InitGdiCache();
755WINBMP *LoadBmpFromFileW(wchar_t *filename);
756WINBMP *LoadBmpFromFileInnerW(wchar_t *filename);
757WINBMP *LoadBmpFromFileA(char *filename);
758WINBMP *LoadBmpFromResource(UINT id);
759WINBMP *LoadBmpMain(void *hBitmap);
760void FreeBmp(WINBMP *b);
761void ShowSplash(HWND hWndParent, wchar_t *bmp_file_name, char *title, wchar_t *caption, UINT ticks, UINT line_color, void *param);
762void ShowSplashEx(HWND hWndParent, char *software_name, UINT ticks, UINT line_color);
763WINMEMDC *NewMemDC(UINT width, UINT height);
764void FreeMemDC(WINMEMDC *m);
765void LvSetBkImage(HWND hWnd, UINT id, char *bmp_file_name);
766bool IsFullColor();
767
768#endif  // OS_WIN32
769
770
771
772
773
774
Note: See TracBrowser for help on using the repository browser.