70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
|
//+----------------------------------------------------------------------------
|
||
|
//
|
||
|
// File: processcmdln.h
|
||
|
//
|
||
|
// Module: CMSETUP.LIB
|
||
|
//
|
||
|
// Synopsis: Definition of the CProcessCmdLn class.
|
||
|
//
|
||
|
// Copyright (c) 1998 Microsoft Corporation
|
||
|
//
|
||
|
// Author: quintinb Created Header 08/19/99
|
||
|
//
|
||
|
//+----------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef _CM_PROCESSCMDLN_H_
|
||
|
#define _CM_PROCESSCMDLN_H_
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include "cfilename.h"
|
||
|
#include "mutex.h"
|
||
|
|
||
|
//
|
||
|
// Command Line struct for storing cmd line flags
|
||
|
//
|
||
|
|
||
|
typedef struct _ArgStruct
|
||
|
{
|
||
|
TCHAR* pszArgString;
|
||
|
DWORD dwFlagModifier;
|
||
|
} ArgStruct;
|
||
|
|
||
|
//
|
||
|
// Command Line State enumeration taken from Icm.h
|
||
|
//
|
||
|
|
||
|
typedef enum _CMDLN_STATE
|
||
|
{
|
||
|
CS_END_SPACE, // done handling a space
|
||
|
CS_BEGIN_QUOTE, // we've encountered a begin quote
|
||
|
CS_END_QUOTE, // we've encountered a end quote
|
||
|
CS_CHAR, // we're scanning chars
|
||
|
CS_DONE
|
||
|
} CMDLN_STATE;
|
||
|
|
||
|
class CProcessCmdLn
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
CProcessCmdLn(UINT NumSwitches, ArgStruct* pArrayOfArgStructs, BOOL bSkipFirstToken, BOOL bBlankCmdLnOkay);
|
||
|
~CProcessCmdLn();
|
||
|
|
||
|
BOOL GetCmdLineArgs(IN LPTSTR pszCmdln, OUT LPDWORD pdwFlags, OUT LPTSTR pszPath, UINT uPathStrLimit);
|
||
|
|
||
|
private:
|
||
|
UINT m_NumSwitches;
|
||
|
BOOL m_bSkipFirstToken;
|
||
|
BOOL m_bBlankCmdLnOkay;
|
||
|
ArgStruct* m_CommandLineSwitches;
|
||
|
|
||
|
BOOL IsValidSwitch(LPCTSTR pszSwitch, LPDWORD pdwFlags);
|
||
|
BOOL IsValidFilePath(LPCTSTR pszFile);
|
||
|
BOOL EnsureFullFilePath(LPTSTR pszFile, UINT uNumChars);
|
||
|
BOOL CheckIfValidSwitchOrPath(LPCTSTR pszToken, LPDWORD pdwFlags,
|
||
|
BOOL* pbFoundPath, LPTSTR pszPath);
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif //_CM_PROCESSCMDLN_H_
|
||
|
|