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

# User Rev Content
1 Douglas Thrift 61 // DT Util Nullsoft Installer System Plugin
2 Douglas Thrift 47 //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7 Douglas Thrift 62 #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 Douglas Thrift 47 #include <windows.h>
18     #include "D:\NSIS\Contrib\ExDll\exdll.h"
19    
20 Douglas Thrift 63 extern "C" void __declspec(dllexport) CheckNT(HWND hwndParent, int string_size,
21     char* variables, stack_t** stacktop)
22 Douglas Thrift 47 {
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 Douglas Thrift 63 extern "C" void __declspec(dllexport) GetArgs(HWND hwndParent, int string_size,
44     char* variables, stack_t** stacktop)
45 Douglas Thrift 62 {
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 Douglas Thrift 47 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
84     {
85     return TRUE;
86     }

Properties

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