source: trunk/src/mmi_inistuff.h@ 2

Last change on this file since 2 was 2, checked in by ktk, 17 years ago

Initial import

File size: 9.5 KB
Line 
1//
2// MINSTALL.DLL (c) Copyright 2002-2005 Martin Kiewitz
3//
4// This file is part of MINSTALL.DLL for OS/2 / eComStation
5//
6// MINSTALL.DLL is free software: you can redistribute it and/or modify
7// it under the terms of the GNU General Public License as published by
8// the Free Software Foundation, either version 3 of the License, or
9// (at your option) any later version.
10//
11// MINSTALL.DLL is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15//
16// You should have received a copy of the GNU General Public License
17// along with MINSTALL.DLL. If not, see <http://www.gnu.org/licenses/>.
18//
19
20// Byte-Packing, these structures are fixed. They must not get optimized
21#pragma pack(1)
22
23typedef struct _MINSTINIHEADER {
24 ULONG ID;
25 ULONG Size;
26 PVOID NextPtr;
27 } MINSTINIHEADER;
28typedef MINSTINIHEADER *PMINSTINIHEADER;
29
30// ****************************************************************************
31
32// Some of those structures exist in MM-OS/2 headers, but I redefine them here
33// cause some of them spread havoc on VAC3. Some of them are also pretty
34// undocumented or are used in multiple ways (mmio-(Codec1/Codec2)-Install)
35
36typedef struct _EA_JOINEA {
37 MINSTINIHEADER Header;
38 CHAR JoinFileName[MINSTMAX_PATHLENGTH];
39 CHAR JoinEAFileName[MINSTMAX_PATHLENGTH];
40 } EA_JOINEA;
41typedef EA_JOINEA *PEA_JOINEA;
42#define EA_JOINEA_ID 0xD56F3A0A
43
44typedef struct _EA_JOINLONGNAMEEA {
45 MINSTINIHEADER Header;
46 CHAR JoinLongName[MINSTMAX_PATHLENGTH];
47 CHAR JoinLongFileName[MINSTMAX_PATHLENGTH];
48 CHAR JoinEALongFileName[MINSTMAX_PATHLENGTH];
49 } EA_JOINLONGNAMEEA;
50typedef EA_JOINLONGNAMEEA *PEA_JOINLONGNAMEEA;
51#define EA_JOINLONGNAMEEA_ID 0x0A110003
52
53#define MCIMAX_DEVICENAMELENGTH 20
54#define MCIMAX_VERSIONLENGTH 6
55#define MCIMAX_PRODLENGTH 40
56#define MCIMAX_PDDNAMELENGTH 9
57#define MCIMAX_ALIASNAMELENGTH 20
58#define MCIMAX_DEVPARAMSLENGTH 128
59#define MCIMAX_CLASSES 10 // Actual Limit 9 Classes
60#define MCIMAX_CONNECTORS 10
61#define MCIMAX_EXTENSIONS 25
62#define MCIMAX_EXTENSIONNAMELENGTH 4
63#define MCIMAX_TYPELISTLENGTH 257
64
65typedef struct _MCI_MCIINSTALLDRV {
66 MINSTINIHEADER Header;
67 CHAR szInstallName[MCIMAX_DEVICENAMELENGTH];
68 USHORT usDeviceType;
69 ULONG ulDeviceFlag;
70 CHAR szVersionNumber[MCIMAX_VERSIONLENGTH];
71 CHAR szProductInfo[MCIMAX_PRODLENGTH];
72 CHAR szMCDDriver[MCIMAX_DEVICENAMELENGTH];
73 CHAR szVSDDriver[MCIMAX_DEVICENAMELENGTH];
74 CHAR szPDDName[MCIMAX_PDDNAMELENGTH];
75 CHAR szMCDTable[MCIMAX_DEVICENAMELENGTH];
76 CHAR szVSDTable[MCIMAX_DEVICENAMELENGTH];
77 USHORT usShareType;
78 CHAR szResourceName[MCIMAX_DEVICENAMELENGTH];
79 USHORT usResourceUnits;
80 USHORT usResourceClasses;
81 USHORT ausClassArray[MCIMAX_CLASSES];
82 USHORT ausValidClassArray[MCIMAX_CLASSES][MCIMAX_CLASSES];
83 } MCI_MCIINSTALLDRV;
84typedef MCI_MCIINSTALLDRV *PMCI_MCIINSTALLDRV;
85#define MCI_MCIINSTALLDRV_ID 0x92325D4C
86
87typedef struct _MCI_MCIINSTALLCONNARRAY {
88 USHORT usConnectType;
89 CHAR szToInstallName[MCIMAX_DEVICENAMELENGTH];
90 USHORT usToConnectIndex;
91 } MCI_MCIINSTALLCONNARRAY;
92typedef MCI_MCIINSTALLCONNARRAY *PMCI_MCIINSTALLCONNARRAY;
93
94typedef struct _MCI_MCIINSTALLCONN {
95 MINSTINIHEADER Header;
96 CHAR szInstallName[MCIMAX_DEVICENAMELENGTH];
97 USHORT usNumConnectors;
98 MCI_MCIINSTALLCONNARRAY ConnectorList[MCIMAX_CONNECTORS];
99 } MCI_MCIINSTALLCONN;
100typedef MCI_MCIINSTALLCONN *PMCI_MCIINSTALLCONN;
101#define MCI_MCIINSTALLCONN_ID 0x37AC2C3F
102
103typedef struct _MCI_MCIINSTALLPARM {
104 MINSTINIHEADER Header;
105 CHAR szInstallName[MCIMAX_DEVICENAMELENGTH];
106 CHAR szDevParams[MCIMAX_DEVPARAMSLENGTH];
107 } MCI_MCIINSTALLPARM;
108typedef MCI_MCIINSTALLPARM *PMCI_MCIINSTALLPARM;
109#define MCI_MCIINSTALLPARM_ID 0x00E0F5A3
110
111typedef struct _MCI_MCIINSTALLALIAS {
112 MINSTINIHEADER Header;
113 CHAR szInstallName[MCIMAX_DEVICENAMELENGTH];
114 CHAR szAliasName[MCIMAX_ALIASNAMELENGTH];
115 } MCI_MCIINSTALLALIAS;
116typedef MCI_MCIINSTALLALIAS *PMCI_MCIINSTALLALIAS;
117#define MCI_MCIINSTALLALIAS_ID 0x7C939816
118
119typedef struct _MCI_MCIINSTALLEXT {
120 MINSTINIHEADER Header;
121 CHAR szInstallName[MCIMAX_DEVICENAMELENGTH];
122 USHORT usNumExtensions;
123 CHAR szExtension[MCIMAX_EXTENSIONS][MCIMAX_EXTENSIONNAMELENGTH];
124 } MCI_MCIINSTALLEXT;
125typedef MCI_MCIINSTALLEXT *PMCI_MCIINSTALLEXT;
126#define MCI_MCIINSTALLEXT_ID 0x8711BEDD
127
128typedef struct _MCI_MCIINSTALLTYPES {
129 MINSTINIHEADER Header;
130 CHAR szInstallName[MCIMAX_DEVICENAMELENGTH];
131 CHAR szTypes[MCIMAX_TYPELISTLENGTH];
132 } MCI_MCIINSTALLTYPES;
133typedef MCI_MCIINSTALLTYPES *PMCI_MCIINSTALLTYPES;
134#define MCI_MCIINSTALLTYPES_ID 0xC4CF7AB2
135
136#define MMIOMAX_DLLLENGTH CCHMAXPATH
137#define MMIOMAX_PROCNAMELENGTH 32
138#define MMIOMAX_EXTENSIONNAMELENGTH 4
139#define MMIOMAX_HWNAMELENGTH 32
140#define MMIOMAX_CODECINFOLENGTH 8
141#define MMIOMAX_SPECINFOLENGTH 32
142
143// MMIO_MMIOINSTALL -> MMINIFILEINFO
144// MMIO_MMIOCODEC -> CODECINIFILEINFO
145
146typedef struct _MMIO_MMIOINSTALL {
147 MINSTINIHEADER Header;
148 ULONG fccIOProc;
149 CHAR szDLLName[MMIOMAX_DLLLENGTH];
150 CHAR szProcName[MMIOMAX_PROCNAMELENGTH];
151 ULONG dwFlags;
152 ULONG dwExtendLen;
153 ULONG dwMediaType;
154 ULONG dwIOProcType;
155 CHAR szDefExt[MMIOMAX_EXTENSIONNAMELENGTH];
156 } MMIO_MMIOINSTALL;
157typedef MMIO_MMIOINSTALL *PMMIO_MMIOINSTALL;
158#define MMIO_MMIOINSTALL_ID 0x12709014
159
160typedef struct _MMIO_MMIOCODEC {
161 MINSTINIHEADER Header;
162 ULONG ulStructLen;
163 ULONG fcc;
164 CHAR szDLLName[MMIOMAX_DLLLENGTH];
165 CHAR szProcName[MMIOMAX_PROCNAMELENGTH];
166 ULONG ulCompressType;
167 ULONG ulCompressSubType;
168 ULONG ulMediaType;
169 ULONG ulCapsFlags;
170 ULONG ulFlags;
171 CHAR szHWID[MMIOMAX_HWNAMELENGTH];
172 ULONG ulMaxSrcBufLen;
173 ULONG ulSyncMethod;
174 ULONG fccPreferredFormat;
175 ULONG ulXalignment;
176 ULONG ulYalignment;
177 CHAR szSpecInfo[MMIOMAX_SPECINFOLENGTH];
178 } MMIO_MMIOCODEC;
179typedef MMIO_MMIOCODEC *PMMIO_MMIOCODEC;
180#define MMIO_MMIOCODECDELETE_ID 0xA359F6F9
181#define MMIO_MMIOCODEC1INSTALL_ID 0x75AE2FBC
182#define MMIO_MMIOCODEC2INSTALL_ID 0xFB21285F
183
184typedef struct _PRF_PROFILEDATA {
185 MINSTINIHEADER Header;
186 CHAR Ini[MINSTMAX_PATHLENGTH];
187 CHAR AppName[MINSTMAX_STRLENGTH];
188 CHAR KeyName[MINSTMAX_STRLENGTH];
189 CHAR Dll[MINSTMAX_PATHLENGTH];
190 ULONG Id;
191 } PRF_PROFILEDATA;
192typedef PRF_PROFILEDATA *PPRF_PROFILEDATA;
193#define PRF_PROFILEDATA_ID 0xC339D14E
194
195typedef struct _PRF_PROFILESTRING {
196 MINSTINIHEADER Header;
197 CHAR Inis[MINSTMAX_PATHLENGTH];
198 CHAR AppNames[MINSTMAX_STRLENGTH];
199 CHAR KeyNames[MINSTMAX_STRLENGTH];
200 CHAR Datas[MINSTMAX_PATHLENGTH];
201 } PRF_PROFILESTRING;
202typedef PRF_PROFILESTRING *PPRF_PROFILESTRING;
203#define PRF_PROFILESTRING_ID 0xC51EC302
204
205typedef LHANDLE HPROGRAM;
206typedef HPROGRAM *PHPROGRAM;
207typedef LHANDLE HAPP;
208
209typedef LHANDLE HINI;
210typedef HINI *PHINI;
211
212HINI APIENTRY PrfOpenProfile(HAB hab, PSZ pszFileName);
213BOOL APIENTRY PrfCloseProfile(HINI hini);
214BOOL APIENTRY PrfWriteProfileString(HINI hini, PSZ pszApp, PSZ pszKey, PSZ pszData);
215BOOL APIENTRY PrfWriteProfileData(HINI hini, PSZ pszApp, PSZ pszKey, PVOID pData, ULONG cchDataLen);
216
217typedef struct _SPI_SPIINSTALL {
218 MINSTINIHEADER Header;
219 CHAR SpiDllName[MINSTMAX_PATHLENGTH];
220 } SPI_SPIINSTALL;
221typedef SPI_SPIINSTALL *PSPI_SPIINSTALL;
222#define SPI_SPIINSTALL_ID 0x78CA5190
223
224typedef struct _WPS_CREATEOBJECT { // Originally named WPS_WPOBJECT
225 MINSTINIHEADER Header;
226 CHAR WPClassName[MINSTMAX_STRLENGTH];
227 CHAR WPTitle[MINSTMAX_STRLENGTH];
228 CHAR WPSetupString[MINSTMAX_PATHLENGTH]; // No path but huge buffer
229 CHAR WPLocation[MINSTMAX_STRLENGTH];
230 ULONG WPFlags;
231 } WPS_CREATEOBJECT;
232typedef WPS_CREATEOBJECT *PWPS_CREATEOBJECT;
233#define WPS_CREATEOBJECT_ID 0xF08301C8
234
235typedef struct _WPS_DESTROYOBJECT {
236 MINSTINIHEADER Header;
237 CHAR WPDestroyObjectID[MINSTMAX_STRLENGTH];
238 } WPS_DESTROYOBJECT;
239typedef WPS_DESTROYOBJECT *PWPS_DESTROYOBJECT;
240#define WPS_DESTROYOBJECT_ID 0x92D45D84
241
242typedef struct _WPS_WPCLASS {
243 MINSTINIHEADER Header;
244 CHAR WPClassNameNew[MINSTMAX_STRLENGTH];
245 CHAR WPDllName[MINSTMAX_PATHLENGTH];
246 CHAR WPReplaceClass[MINSTMAX_STRLENGTH];
247 } WPS_WPCLASS;
248typedef WPS_WPCLASS *PWPS_WPCLASS;
249#define WPS_WPCLASS_ID 0xABAD2C82
250
251// Public variables...
252MINSTINI_DEFENTRY MINSTINI_FuncList[];
253MINSTINI_DEFENTRY MINSTINIWPS_WPObject[];
254
255#pragma pack()
Note: See TracBrowser for help on using the repository browser.