Open-Source-Software-Entwicklung und Downloads

Browse Subversion Repository

Contents of /trunk/TTXSamples/TTXFixedWinSize/TTXFixedWinSize.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3227 - (show annotations) (download) (as text)
Tue Mar 24 15:10:33 2009 UTC (15 years, 1 month ago) by maya
File MIME type: text/x-csrc
File size: 3134 byte(s)
CVS から SVN へ移行: 改行コードを LF から CR+LF へ変換
1 #include "teraterm.h"
2 #include "tttypes.h"
3 #include "ttplugin.h"
4 // #include "ttlib.h"
5 #include <stdlib.h>
6 #include <stdio.h>
7 #include <string.h>
8
9 #include "compat_w95.h"
10
11 #define WIDTH 80
12 #define HEIGHT 24
13
14 #define ORDER 5990
15
16 static HANDLE hInst; /* Instance handle of TTX*.DLL */
17
18 typedef struct {
19 PTTSet ts;
20 PComVar cv;
21 BOOL sizeModify;
22 PSetupTerminal origSetupTerminalDlg;
23 PReadIniFile origReadIniFile;
24 } TInstVar;
25
26 static TInstVar FAR * pvar;
27 static TInstVar InstVar;
28
29 static void PASCAL FAR TTXInit(PTTSet ts, PComVar cv) {
30 pvar->ts = ts;
31 pvar->cv = cv;
32
33 pvar->sizeModify = FALSE;
34 pvar->origSetupTerminalDlg = NULL;
35 pvar->origReadIniFile = NULL;
36 }
37
38 static BOOL FAR PASCAL FixedSizeSetupTerminalDlg(HWND parent, PTTSet ts) {
39 BOOL ret;
40 if (pvar->sizeModify) {
41 pvar->ts->TerminalWidth = WIDTH;
42 pvar->ts->TerminalHeight = HEIGHT;
43 pvar->sizeModify = FALSE;
44 ret = TRUE;
45 }
46 else {
47 ret = (pvar->origSetupTerminalDlg)(parent, ts);
48 if (ret) {
49 pvar->ts->TerminalWidth = WIDTH;
50 pvar->ts->TerminalHeight = HEIGHT;
51 }
52 }
53
54 return ret;
55 }
56
57 static void PASCAL FAR TTXGetUIHooks(TTXUIHooks FAR * hooks) {
58 pvar->origSetupTerminalDlg = *hooks->SetupTerminal;
59 *hooks->SetupTerminal = FixedSizeSetupTerminalDlg;
60 }
61
62 static void PASCAL FAR FixedSizeReadIniFile(PCHAR fn, PTTSet ts) {
63 (pvar->origReadIniFile)(fn, ts);
64 ts->TerminalWidth = WIDTH;
65 ts->TerminalHeight = HEIGHT;
66 }
67
68 static void PASCAL FAR TTXGetSetupHooks(TTXSetupHooks FAR * hooks) {
69 pvar->origReadIniFile = *hooks->ReadIniFile;
70 *hooks->ReadIniFile = FixedSizeReadIniFile;
71 }
72
73 static void PASCAL FAR TTXSetWinSize(int rows, int cols) {
74 if (rows != HEIGHT || cols != WIDTH) {
75 pvar->sizeModify = TRUE;
76 // Call Setup-Terminal dialog
77 SendMessage(pvar->cv->HWin, WM_COMMAND, MAKELONG(50310, 0), 0);
78 }
79 }
80
81 static TTXExports Exports = {
82 sizeof(TTXExports),
83 ORDER,
84
85 TTXInit,
86 TTXGetUIHooks,
87 TTXGetSetupHooks,
88 NULL, // TTXOpenTCP,
89 NULL, // TTXCloseTCP,
90 TTXSetWinSize,
91 NULL, // TTXModifyMenu,
92 NULL, // TTXModifyPopupMenu,
93 NULL, // TTXProcessCommand,
94 NULL, // TTXEnd
95 };
96
97 BOOL __declspec(dllexport) PASCAL FAR TTXBind(WORD Version, TTXExports FAR * exports) {
98 int size = sizeof(Exports) - sizeof(exports->size);
99
100 if (size > exports->size) {
101 size = exports->size;
102 }
103 memcpy((char FAR *)exports + sizeof(exports->size),
104 (char FAR *)&Exports + sizeof(exports->size),
105 size);
106 return TRUE;
107 }
108
109 BOOL WINAPI DllMain(HANDLE hInstance,
110 ULONG ul_reason_for_call,
111 LPVOID lpReserved)
112 {
113 switch( ul_reason_for_call ) {
114 case DLL_THREAD_ATTACH:
115 /* do thread initialization */
116 break;
117 case DLL_THREAD_DETACH:
118 /* do thread cleanup */
119 break;
120 case DLL_PROCESS_ATTACH:
121 /* do process initialization */
122 DoCover_IsDebuggerPresent();
123 hInst = hInstance;
124 pvar = &InstVar;
125 break;
126 case DLL_PROCESS_DETACH:
127 /* do process cleanup */
128 break;
129 }
130 return TRUE;
131 }

Properties

Name Value
svn:executable *

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26