ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/DTUtil/DTUtil.cpp
Revision: 63
Committed: 2003-12-17T18:14:24-08:00 (21 years, 6 months ago) by Douglas Thrift
File size: 1366 byte(s)
Log Message:
Extern "C", blah!

File Contents

# Content
1 // DT Util Nullsoft Installer System Plugin
2 //
3 // Douglas Thrift
4 //
5 // $Id$
6
7 #ifdef _DEBUG
8 #pragma warning(disable:4786)
9 #endif
10
11 #include <string>
12 #include <sstream>
13 #include <vector>
14
15 using namespace std;
16
17 #include <windows.h>
18 #include "D:\NSIS\Contrib\ExDll\exdll.h"
19
20 extern "C" void __declspec(dllexport) CheckNT(HWND hwndParent, int string_size,
21 char* variables, stack_t** stacktop)
22 {
23 EXDLL_INIT();
24
25 {
26 OSVERSIONINFO os;
27
28 os.dwOSVersionInfoSize = sizeof(os);
29
30 GetVersionEx(&os);
31
32 if (os.dwPlatformId == VER_PLATFORM_WIN32_NT)
33 {
34 pushstring("true");
35 }
36 else
37 {
38 pushstring("false");
39 }
40 }
41 }
42
43 extern "C" void __declspec(dllexport) GetArgs(HWND hwndParent, int string_size,
44 char* variables, stack_t** stacktop)
45 {
46 EXDLL_INIT();
47
48 {
49 istringstream line(getuservariable(INST_CMDLINE));
50 vector<string> args;
51
52 do
53 {
54 string arg;
55
56 if (line.peek() == '\"')
57 {
58 line.ignore();
59 getline(line, arg, '\"');
60 }
61 else
62 {
63 line >> arg;
64 line.ignore();
65 }
66
67 if (arg != "") args.push_back(arg);
68 }
69 while (line.good());
70
71 for (unsigned index = args.size(); index > 0; index--)
72 {
73 char* arg = new char[args[index - 1].size() + 1];
74
75 sprintf(arg, args[index - 1].c_str());
76 pushstring(arg);
77
78 delete [] arg;
79 }
80 }
81 }
82
83 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
84 {
85 return TRUE;
86 }

Properties

Name Value
svn:eol-style native
svn:keywords Id