Open-Source-Software-Entwicklung und Downloads

Browse Subversion Repository

Contents of /trunk/TTXSamples/TTXCopyIniFile/TTXCopyIniFile.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: 2331 byte(s)
CVS から SVN へ移行: 改行コードを LF から CR+LF へ変換
1 #include "teraterm.h"
2 #include "tttypes.h"
3 #include "ttplugin.h"
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include <string.h>
7 #include <windows.h>
8
9 #include "compat_w95.h"
10
11 #define ORDER 9999
12
13 static HANDLE hInst; /* Instance handle of TTX*.DLL */
14
15 typedef struct {
16 PReadIniFile origReadIniFile;
17 PWriteIniFile origWriteIniFile;
18 char origIniFileName[MAXPATHLEN];
19 } TInstVar;
20
21 static TInstVar FAR * pvar;
22 static TInstVar InstVar;
23
24 static void PASCAL FAR TTXReadIniFile(PCHAR fn, PTTSet ts) {
25 strcpy_s(pvar->origIniFileName, sizeof(pvar->origIniFileName), fn);
26 (pvar->origReadIniFile)(fn, ts);
27 }
28
29 static void PASCAL FAR TTXWriteIniFile(PCHAR fn, PTTSet ts) {
30 CopyFile(pvar->origIniFileName, fn, TRUE);
31 (pvar->origWriteIniFile)(fn, ts);
32 }
33
34 static void PASCAL FAR TTXGetSetupHooks(TTXSetupHooks FAR * hooks) {
35 if (pvar->origIniFileName[0] == 0) {
36 pvar->origReadIniFile = *hooks->ReadIniFile;
37 *hooks->ReadIniFile = TTXReadIniFile;
38 }
39 else {
40 pvar->origWriteIniFile = *hooks->WriteIniFile;
41 *hooks->WriteIniFile = TTXWriteIniFile;
42 }
43 }
44
45 static TTXExports Exports = {
46 sizeof(TTXExports),
47 ORDER,
48
49 NULL, // TTXInit,
50 NULL, // TTXGetUIHooks,
51 TTXGetSetupHooks,
52 NULL, // TTXOpenTCP,
53 NULL, // TTXCloseTCP,
54 NULL, // TTXSetWinSize,
55 NULL, // TTXModifyMenu,
56 NULL, // TTXModifyPopupMenu,
57 NULL, // TTXProcessCommand,
58 NULL, // TTXEnd,
59 NULL, // TTXSetCommandLine,
60 NULL, // TTXOpenFile,
61 NULL // TTXCloseFile
62 };
63
64 BOOL __declspec(dllexport) PASCAL FAR TTXBind(WORD Version, TTXExports FAR * exports) {
65 int size = sizeof(Exports) - sizeof(exports->size);
66
67 if (size > exports->size) {
68 size = exports->size;
69 }
70 memcpy((char FAR *)exports + sizeof(exports->size),
71 (char FAR *)&Exports + sizeof(exports->size),
72 size);
73 return TRUE;
74 }
75
76 BOOL WINAPI DllMain(HANDLE hInstance,
77 ULONG ul_reason_for_call,
78 LPVOID lpReserved)
79 {
80 switch( ul_reason_for_call ) {
81 case DLL_THREAD_ATTACH:
82 /* do thread initialization */
83 break;
84 case DLL_THREAD_DETACH:
85 /* do thread cleanup */
86 break;
87 case DLL_PROCESS_ATTACH:
88 /* do process initialization */
89 DoCover_IsDebuggerPresent();
90 hInst = hInstance;
91 pvar = &InstVar;
92 break;
93 case DLL_PROCESS_DETACH:
94 /* do process cleanup */
95 break;
96 }
97 return TRUE;
98 }

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