Delen via


CCommandLineInfo-klasse

Helpt bij het parseren van de opdrachtregel bij het opstarten van de toepassing.

Syntaxis

class CCommandLineInfo : public CObject

Leden

Openbare constructors

Naam Beschrijving
CCommandLineInfo::CCommandLineInfo Maakt een standaardobject CCommandLineInfo .

Openbare methoden

Naam Beschrijving
CCommandLineInfo::ParseParam Overschrijf deze callback om afzonderlijke parameters te parseren.

Leden van openbare gegevens

Naam Beschrijving
CCommandLineInfo::m_bRunAutomated Geeft aan dat de opdrachtregeloptie /Automation is gevonden.
CCommandLineInfo::m_bRunEmbedded Geeft aan dat de opdrachtregeloptie /Embedding is gevonden.
CCommandLineInfo::m_bShowSplash Geeft aan of er een welkomstscherm moet worden weergegeven.
CCommandLineInfo::m_nShellCommand Geeft de shell-opdracht aan die moet worden verwerkt.
CCommandLineInfo::m_strDriverName Geeft de naam van het stuurprogramma aan als de shell-opdracht is afgedrukt naar; anders leeg.
CCommandLineInfo::m_strFileName Geeft de bestandsnaam aan die moet worden geopend of afgedrukt; leeg als de shell-opdracht Nieuw of DDE is.
CCommandLineInfo::m_strPortName Geeft de naam van de poort aan als de shell-opdracht is afgedrukt naar; anders leeg.
CCommandLineInfo::m_strPrinterName Geeft de naam van de printer aan als de shell-opdracht is afgedrukt naar; anders leeg.
CCommandLineInfo::m_strRestartIdentifier Geeft de unieke id voor opnieuw opstarten voor de manager voor opnieuw opstarten aan als de herstartmanager de toepassing opnieuw heeft opgestart.

Opmerkingen

Een MFC-toepassing maakt doorgaans een lokaal exemplaar van deze klasse in de functie van het InitInstance toepassingsobject. Dit object wordt vervolgens doorgegeven aan CWinApp::ParseCommandLine, waarmee herhaaldelijk wordt aangeroepen ParseParam om het CCommandLineInfo object te vullen. Het CCommandLineInfo object wordt vervolgens doorgegeven om CWinApp::ProcessShellCommand de opdrachtregelargumenten en vlaggen te verwerken.

U kunt dit object gebruiken om de volgende opdrachtregelopties en -parameters in te kapselen:

Opdrachtregelargument Opdracht uitgevoerd
app Nieuw bestand.
bestandsnaam van app Open het bestand.
app/p Bestandsnaam Druk het bestand af op de standaardprinter.
app/pt poort van printerstuurprogramma Druk het bestand af op de opgegeven printer.
app/dde Start en wacht op de DDE-opdracht.
app/Automation Opstarten als een OLE-automatiseringsserver.
app/Embedding Een ingesloten OLE-item bewerken.
app/Register

app/Regserver
Informeert de toepassing om registratietaken uit te voeren.
app/Unregister

app/Unregserver
Informeert de toepassing om eventuele niet-registratietaken uit te voeren.

Een nieuwe klasse afleiden van CCommandLineInfo waaruit andere vlaggen en parameterwaarden moeten worden verwerkt. Overschrijven ParseParam om de nieuwe vlaggen te verwerken.

Overnamehiërarchie

CObject-

CCommandLineInfo

Behoeften

koptekst:afxwin.h

CCommandLineInfo::CCommandLineInfo

Met deze constructor maakt u een CCommandLineInfo object met standaardwaarden.

CCommandLineInfo();

Opmerkingen

De standaardinstelling is om het welkomstscherm (m_bShowSplash=TRUE) weer te geven en de opdracht Nieuw uit te voeren in het menu Bestand (m_nShellCommand=NewFile).

Het toepassingsframework roept ParseParam aan om gegevensleden van dit object in te vullen.

Voorbeeld

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

Geeft aan dat de /Automation vlag is gevonden op de opdrachtregel.

BOOL m_bRunAutomated;

Opmerkingen

Als TRUE, betekent dit opstarten als een OLE-automatiseringsserver.

CCommandLineInfo::m_bRunEmbedded

Geeft aan dat de /Embedding vlag is gevonden op de opdrachtregel.

BOOL m_bRunEmbedded;

Opmerkingen

Als TRUEdit betekent dat u een ingesloten OLE-item kunt bewerken.

CCommandLineInfo::m_bShowSplash

Geeft aan dat het welkomstscherm moet worden weergegeven.

BOOL m_bShowSplash;

Opmerkingen

Als TRUEdit betekent dat het welkomstscherm voor deze toepassing moet worden weergegeven tijdens het opstarten. De standaard implementatie van ParseParam dit gegevenslid TRUE wordt ingesteld op als m_nShellCommand deze gelijk is aan CCommandLineInfo::FileNew.

CCommandLineInfo::m_nShellCommand

Geeft de shell-opdracht voor dit exemplaar van de toepassing aan.

m_nShellCommand;

Opmerkingen

Het type voor dit gegevenslid is het volgende geïnventariseerd type, dat is gedefinieerd in de CCommandLineInfo klasse.

enum {
    FileNew,
    FileOpen,
    FilePrint,
    FilePrintTo,
    FileDDE,
    AppRegister,
    AppUnregister,
    RestartByRestartManager,
    FileNothing = -1
    };

Zie de volgende lijst voor een korte beschrijving van deze waarden.

  • CCommandLineInfo::FileNew Geeft aan dat er geen bestandsnaam is gevonden op de opdrachtregel.

  • CCommandLineInfo::FileOpenGeeft aan dat er een bestandsnaam is gevonden op de opdrachtregel en dat geen van de volgende vlaggen is gevonden op de opdrachtregel: /p, , /pt. /dde

  • CCommandLineInfo::FilePrint Geeft aan dat de /p vlag is gevonden op de opdrachtregel.

  • CCommandLineInfo::FilePrintTo Geeft aan dat de /pt vlag is gevonden op de opdrachtregel.

  • CCommandLineInfo::FileDDE Geeft aan dat de /dde vlag is gevonden op de opdrachtregel.

  • CCommandLineInfo::AppRegister Geeft aan dat de /Register of /Regserver vlag is gevonden op de opdrachtregel en dat de toepassing is gevraagd om te registreren.

  • CCommandLineInfo::AppUnregister Hiermee wordt aangegeven dat de registratie van de /Unregister toepassing of /Unregserver de toepassing is opgehefd.

  • CCommandLineInfo::RestartByRestartManager Geeft aan dat de toepassing opnieuw is opgestart door de manager voor opnieuw opstarten.

  • CCommandLineInfo::FileNothing Hiermee schakelt u de weergave van een nieuw MDI-onderliggend venster uit bij het opstarten. Door de toepassingswizard gegenereerde MDI-toepassingen geven standaard een nieuw onderliggend venster weer bij het opstarten. Als u deze functie wilt uitschakelen, kan een toepassing deze als shell-opdracht gebruiken CCommandLineInfo::FileNothing wanneer deze aanroept ProcessShellCommand. ProcessShellCommand wordt aangeroepen door alle InitInstance( )CWinApp afgeleide klassen.

Voorbeeld

// From CMyWinApp::InitInstance

// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

// DON'T display a new MDI child window during startup!!!
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;

// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
{
   return FALSE;
}

CCommandLineInfo::m_strDriverName

Slaat de waarde op van de derde parameter zonder vlag op de opdrachtregel.

CString m_strDriverName;

Opmerkingen

Deze parameter is doorgaans de naam van het printerstuurprogramma voor de opdracht Afdrukken naar shell. De standaard implementatie van ParseParam dit gegevenslid wordt alleen ingesteld als de /pt vlag op de opdrachtregel is gevonden.

CCommandLineInfo::m_strFileName

Slaat de waarde op van de eerste parameter zonder vlag op de opdrachtregel.

CString m_strFileName;

Opmerkingen

Deze parameter is doorgaans de naam van het bestand dat moet worden geopend.

CCommandLineInfo::m_strPortName

Slaat de waarde op van de vierde parameter zonder vlag op de opdrachtregel.

CString m_strPortName;

Opmerkingen

Deze parameter is doorgaans de naam van de printerpoort voor de opdracht Afdrukken naar shell. De standaard implementatie van ParseParam dit gegevenslid wordt alleen ingesteld als de /pt vlag op de opdrachtregel is gevonden.

CCommandLineInfo::m_strPrinterName

Slaat de waarde op van de tweede parameter zonder vlag op de opdrachtregel.

CString m_strPrinterName;

Opmerkingen

Deze parameter is doorgaans de naam van de printer voor de opdracht Print To Shell. De standaard implementatie van ParseParam dit gegevenslid wordt alleen ingesteld als de /pt vlag op de opdrachtregel is gevonden.

CCommandLineInfo::m_strRestartIdentifier

De unieke herstart-id op de opdrachtregel.

CString m_strRestartIdentifier;

Opmerkingen

De id voor opnieuw opstarten is uniek voor elk exemplaar van de toepassing.

Als de manager voor opnieuw opstarten de toepassing afsluit en is geconfigureerd om deze opnieuw te starten, voert de manager voor opnieuw opstarten de toepassing uit vanaf de opdrachtregel met de id voor opnieuw opstarten als een optionele parameter. Wanneer de manager voor opnieuw opstarten de id voor opnieuw opstarten gebruikt, kan de toepassing de eerder geopende documenten opnieuw openen en automatisch opgeslagen bestanden herstellen.

CCommandLineInfo::ParseParam

In het framework wordt deze functie aangeroepen om afzonderlijke parameters vanaf de opdrachtregel te parseren/interpreteren. De tweede versie verschilt van de eerste alleen in Unicode-projecten.

virtual void ParseParam(
    const char* pszParam,
    BOOL bFlag,
    BOOL bLast);

virtual void ParseParam(
    const TCHAR* pszParam,
    BOOL bFlag,
    BOOL bLast);

Parameterwaarden

pszParam
De parameter of vlag.

bFlag
Geeft aan of pszParam het een parameter of vlag is.

bLast
Geeft aan of dit de laatste parameter of vlag op de opdrachtregel is.

Opmerkingen

CWinApp::ParseCommandLine roept ParseParam eenmaal aan voor elke parameter of vlag op de opdrachtregel, waarbij het argument wordt doorgegeven aan pszParam. Als het eerste teken van de parameter een - of een /is, wordt deze verwijderd en bFlag ingesteld op TRUE. Bij het parseren van de laatste parameter, bLast wordt ingesteld op TRUE.

De standaard implementatie van deze functie herkent de volgende vlaggen: /p, /pt, /dde, /Automationen /Embedding, zoals wordt weergegeven in de volgende tabel:

Opdrachtregelargument Opdracht uitgevoerd
app Nieuw bestand.
bestandsnaam van app Open het bestand.
app/p Bestandsnaam Druk het bestand af op de standaardprinter.
app/pt poort van printerstuurprogramma Druk het bestand af op de opgegeven printer.
app/dde Start en wacht op de DDE-opdracht.
app/Automation Opstarten als een OLE-automatiseringsserver.
app/Embedding Een ingesloten OLE-item bewerken.
app/Register

app/Regserver
Informeert de toepassing om registratietaken uit te voeren.
app/Unregister

app/Unregserver
Informeert de toepassing om eventuele niet-registratietaken uit te voeren.

Deze informatie wordt opgeslagen in m_bRunAutomated, m_bRunEmbeddeden m_nShellCommand. Vlaggen worden gemarkeerd door een slash / of afbreekstreepje -.

De standaard implementatie plaatst de eerste parameter zonder vlag in m_strFileName. In het geval van de /pt vlag plaatst de standaard implementatie respectievelijk de tweede, derde en vierde niet-vlagparameters in m_strPrinterName, m_strDriverNameen m_strPortName, respectievelijk.

De standaard implementatie wordt ook alleen ingesteld m_bShowSplashTRUE in het geval van een nieuw bestand. In het geval van een nieuw bestand heeft de gebruiker actie ondernomen met betrekking tot de toepassing zelf. In elk ander geval, inclusief het openen van bestaande bestanden met behulp van de shell, omvat de gebruikersactie het bestand rechtstreeks. In een documentgericht standpunt hoeft het welkomstscherm de toepassing niet aan te kondigen.

Overschrijf deze functie in uw afgeleide klasse om andere vlag- en parameterwaarden te verwerken.

Zie ook

CObject klasse
Hiërarchiegrafiek
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand