| /* Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * https://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef _CMDLINE_H_INCLUDED_ |
| #define _CMDLINE_H_INCLUDED_ |
| |
| __APXBEGIN_DECLS |
| |
| #define APXCMDOPT_NIL 0x00000000 /* Argopt value not needed */ |
| #define APXCMDOPT_INT 0x00000001 /* Argopt value is unsigned integer */ |
| #define APXCMDOPT_STR 0x00000002 /* Argopt value is string */ |
| #define APXCMDOPT_STE 0x00000006 /* Argopt value is expandable string */ |
| #define APXCMDOPT_MSZ 0x00000010 /* Multiline string '#' separated */ |
| #define APXCMDOPT_BIN 0x00000020 /* Encrypted binary */ |
| |
| #define APXCMDOPT_REG 0x00000100 /* Save to registry */ |
| #define APXCMDOPT_SRV 0x00000200 /* Save to service registry */ |
| #define APXCMDOPT_USR 0x00000400 /* Save to user registry */ |
| |
| #define APXCMDOPT_FOUND 0x00001000 /* The option is present in cmdline as -- */ |
| #define APXCMDOPT_ADD 0x00002000 /* The option is present in cmdline as ++ */ |
| |
| |
| typedef struct APXCMDLINEOPT APXCMDLINEOPT; |
| |
| struct APXCMDLINEOPT { |
| LPWSTR szName; /* Long Argument Name */ |
| LPWSTR szRegistry; /* Registry Association */ |
| LPWSTR szSubkey; /* Registry Association */ |
| DWORD dwType; /* Argument type (string, number, multi-string */ |
| LPWSTR szValue; /* Return string value */ |
| DWORD dwValue; /* Return numeric value or present if NIL */ |
| }; |
| |
| typedef struct APXCMDLINE { |
| APXCMDLINEOPT *lpOptions; |
| LPWSTR szArgv0; |
| LPWSTR szExecutable; /* Parsed argv0 */ |
| LPWSTR szExePath; /* Parsed argv0 */ |
| LPWSTR szApplication; /* Fist string after //CMD// */ |
| DWORD dwCmdIndex; /* Command index */ |
| LPWSTR *lpArgvw; |
| DWORD dwArgc; |
| APXHANDLE hPool; |
| |
| } APXCMDLINE, *LPAPXCMDLINE; |
| |
| LPAPXCMDLINE apxCmdlineParse( |
| APXHANDLE hPool, |
| APXCMDLINEOPT *lpOptions, |
| LPCWSTR *lpszCommands, |
| LPCWSTR *lpszAltcmds |
| ); |
| |
| void apxCmdlineLoadEnvVars( |
| LPAPXCMDLINE lpCmdline |
| ); |
| |
| void apxCmdlineFree( |
| LPAPXCMDLINE lpCmdline |
| ); |
| |
| |
| __APXEND_DECLS |
| |
| #endif /* _CMDLINE_H_INCLUDED_ */ |