109{
113 UINT iSkipTextIndex = 0, iTextIndex;
118 TCHAR cDefault =
_T(
'\0'), cDefParam =
_T(
'\0');
125
129
132
134 {
136 return 0;
137 }
138
139
141
142
145 {
147 {
149 {
151 }
153 {
155 }
157 {
159 lpOptions = &
arg[
i][3];
161 lpOptions = &
arg[
i][2];
163 lpOptions =
arg[iSkipTextIndex = ++
i];
164
165 if (!*lpOptions)
166 {
167 invalid_choice_characters:
171 }
172 }
174 {
176 lpText = lpTextParam = &
arg[
i][3];
178 lpText = lpTextParam =
arg[++
i];
179 else
180 {
184 }
185 }
187 {
189 }
191 {
193 cDefault = cDefParam =
arg[
i][3];
194 else if (
i + 1 <
argc)
195 cDefault = cDefParam =
arg[iSkipTextIndex = ++
i][0];
196 else
197 goto invalid_parameter_format;
198 }
200 {
202 TCHAR cSaveDefault = cDefault;
203
205 {
206 cDefault =
arg[
i][3];
208 }
209 else
210 {
211 cDefault =
arg[
i][2];
213 }
214
216 {
217
218 cDefault = cSaveDefault;
221 else if (
i + 1 <
argc)
222 s =
arg[iSkipTextIndex = ++
i];
223
226 goto parse_timeout_seconds;
227
228 failed_parse_timeout:
232 }
233
235 parse_timeout_seconds:
238 }
239 else if (
arg[
i][0] ==
_T(
'/'))
240 {
241 invalid_parameter_format:
245 }
246 }
247 }
248
249 if (bTimeout)
250 {
251 if (!cDefault)
252 goto failed_parse_timeout;
253 if (nTimeout < 0 || (cDefParam && nTimeout > 9999))
254 goto failed_parse_timeout;
256 goto failed_parse_timeout;
257
258
259 for (
p = lpOptions; *
p; ++
p)
260 {
262 goto invalid_choice_characters;
263 }
264 }
265
266
269
270
271 for (
p =
param, iTextIndex = 0; !lpTextParam; ++iTextIndex)
272 {
274 break;
275
276 if (*
p !=
_T(
'/') && (!iSkipTextIndex || iTextIndex > iSkipTextIndex))
277 {
279 break;
280 }
282 if (!np)
283 break;
285 }
286
287
288 if (lpText)
290
291
292 if (bNoPrompt ==
FALSE)
293 {
296
299
301 }
302
304
305 if (!bTimeout)
306 {
308 {
310
314#else
316#endif
318
320 {
322
324
325 break;
326 }
327
329 }
330
334 }
335
337 amount = nTimeout*1000;
338
339loop:
341 if (nTimeout < 0)
343 else
345
346 switch (GCret)
347 {
349 TRACE (
"GC_TIMEOUT\n");
351 break;
352
354 TRACE (
"GC_NOKEY\n");
356 goto loop;
357
359 TRACE (
"GC_KEYREAD\n");
363 {
365 goto loop;
366 }
368 break;
369 }
370
371 TRACE (
"exiting wait loop after %d msecs\n",
373
376
378
380
382
384}
VOID ConOutResPaging(BOOL StartPaging, UINT resID)
VOID ConInKey(PINPUT_RECORD lpBuffer)
#define ConErrResPuts(uID)
#define ConOutPrintf(szStr,...)
#define ConErrResPrintf(uID,...)
#define STRING_CHOICE_ERROR_TXT
#define STRING_CHOICE_OPTION
#define STRING_CHOICE_HELP
#define STRING_CHOICE_ERROR_OPTION
#define STRING_CHOICE_ERROR
static INT IsKeyInString(LPTSTR lpString, TCHAR cKey, BOOL bCaseSensitive)
static INT GetCharacterTimeout(LPTCH ch, DWORD dwMilliseconds)
static VOID freep(LPSTR *p)
static LPSTR * split(LPSTR s, LPINT args)
BOOL WINAPI Beep(IN DWORD dwFreq, IN DWORD dwDuration)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static unsigned(__cdecl *hash_bstr)(bstr_t s)
union _KEY_EVENT_RECORD::@3578 uChar
static BOOL bCaseSensitive
Character const *const prefix
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options