次の方法で共有


CCommandLineInfo クラス

アプリケーション起動時のコマンド ライン解析を補助します。

構文

class CCommandLineInfo : public CObject

メンバー

パブリック コンストラクター

名前 説明
CCommandLineInfo::CCommandLineInfo 既定の CCommandLineInfo オブジェクトを構築します。

パブリック メソッド

名前 説明
CCommandLineInfo::ParseParam 個々のパラメーターを解析するには、このコールバックをオーバーライドします。

パブリック データ メンバー

名前 説明
CCommandLineInfo::m_bRunAutomated コマンド ライン /Automation オプションが見つかりました。
CCommandLineInfo::m_bRunEmbedded コマンド ライン /Embedding オプションが見つかりました。
CCommandLineInfo::m_bShowSplash スプラッシュ 画面を表示するかどうかを示します。
CCommandLineInfo::m_nShellCommand 処理するシェル コマンドを示します。
CCommandLineInfo::m_strDriverName シェル コマンドが Print To の場合、ドライバー名を示します。それ以外の場合は空です。
CCommandLineInfo::m_strFileName 開くか印刷するファイル名を示します。シェル コマンドが New または DDE の場合は空です。
CCommandLineInfo::m_strPortName シェル コマンドが Print To の場合はポート名を示します。それ以外の場合は空です。
CCommandLineInfo::m_strPrinterName シェル コマンドが Print To の場合はプリンター名を示します。それ以外の場合は空です。
CCommandLineInfo::m_strRestartIdentifier 再起動マネージャーがアプリケーションを再起動した場合の再起動マネージャーの一意の再起動識別子を示します。

解説

MFC アプリケーションは、通常、そのアプリケーション オブジェクトの InitInstance 関数で、このクラスのローカル インスタンスを作成します。 このオブジェクトはCWinApp::ParseCommandLineに渡され、CCommandLineInfo オブジェクトを塗りつぶすためにParseParamが繰り返し呼び出されます。 その後、 CCommandLineInfo オブジェクトが CWinApp::ProcessShellCommand に渡され、コマンド ライン引数とフラグが処理されます。

このオブジェクトを使用して、次のコマンド ライン オプションとパラメーターをカプセル化できます。

コマンドライン引数 実行されたコマンド
app 新しいファイル。
app filename ファイルを開きます。
app /p filename ファイルを既定のプリンターに印刷します。
app /pt ファイル名プリンター ドライバー ポート 指定したプリンターにファイルを印刷します。
app /dde DDE コマンドを起動して待機します。
app /Automation OLE オートメーション サーバーとして起動します。
app /Embedding 埋め込み OLE 項目の編集を開始します。
app /Register

app /Regserver
登録タスクを実行するようにアプリケーションに通知します。
app /Unregister

app /Unregserver
登録解除タスクを実行するようにアプリケーションに通知します。

CCommandLineInfoから新しいクラスを派生させ、他のフラグとパラメーター値を処理します。 ParseParamをオーバーライドして新しいフラグを処理します。

継承階層

CObject

CCommandLineInfo

要件

ヘッダー: afxwin.h

CCommandLineInfo::CCommandLineInfo

このコンストラクターは、既定値を使用して CCommandLineInfo オブジェクトを作成します。

CCommandLineInfo();

解説

既定では、スプラッシュ画面 (m_bShowSplash=TRUE) を表示し、File メニュー (m_nShellCommand=NewFile) で New コマンドを実行します。

アプリケーション フレームワークは、このオブジェクトのデータ メンバーを埋めるために ParseParam を呼び出します。

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

コマンド ラインで /Automation フラグが見つかったことを示します。

BOOL m_bRunAutomated;

解説

TRUE場合は、OLE オートメーション サーバーとして起動します。

CCommandLineInfo::m_bRunEmbedded

コマンド ラインで /Embedding フラグが見つかったことを示します。

BOOL m_bRunEmbedded;

解説

TRUE場合は、埋め込み OLE アイテムの編集を開始することを意味します。

CCommandLineInfo::m_bShowSplash

スプラッシュ画面を表示する必要があることを示します。

BOOL m_bShowSplash;

解説

TRUE場合は、このアプリケーションのスプラッシュ画面が起動時に表示されることを意味します。 ParseParamの既定の実装では、m_nShellCommandCCommandLineInfo::FileNew と等しい場合に、このデータ メンバーをTRUEに設定します。

CCommandLineInfo::m_nShellCommand

アプリケーションのこのインスタンスのシェル コマンドを示します。

m_nShellCommand;

解説

このデータ メンバーの型は、 CCommandLineInfo クラスで定義されている次の列挙型です。

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

これらの値の簡単な説明については、次の一覧を参照してください。

  • CCommandLineInfo::FileNew コマンド ラインでファイル名が見つからなかったことを示します。

  • CCommandLineInfo::FileOpen コマンド ラインでファイル名が見つかり、コマンド ラインで次のフラグが見つからなかったことを示します: /p/pt/dde

  • CCommandLineInfo::FilePrint コマンド ラインで /p フラグが見つかったことを示します。

  • CCommandLineInfo::FilePrintTo コマンド ラインで /pt フラグが見つかったことを示します。

  • CCommandLineInfo::FileDDE コマンド ラインで /dde フラグが見つかったことを示します。

  • CCommandLineInfo::AppRegister コマンド ラインで /Register または /Regserver フラグが見つかり、アプリケーションに登録を求められたことを示します。

  • CCommandLineInfo::AppUnregister/Unregisterまたは/Unregserver アプリケーションの登録解除を求められたことを示します。

  • CCommandLineInfo::RestartByRestartManager アプリケーションが再起動マネージャーによって再起動されたことを示します。

  • CCommandLineInfo::FileNothing 起動時に新しい MDI 子ウィンドウの表示をオフにします。 設計上、アプリケーション ウィザードによって生成された MDI アプリケーションでは、起動時に新しい子ウィンドウが表示されます。 この機能を無効にするには、アプリケーションがProcessShellCommandを呼び出すときにシェル コマンドとしてCCommandLineInfo::FileNothingを使用できます。 ProcessShellCommandは、すべてのCWinApp派生クラスのInitInstance( )によって呼び出されます。

// 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

3 番目のフラグ以外のパラメーターの値をコマンド ラインに格納します。

CString m_strDriverName;

解説

このパラメーターは通常、Print To シェル コマンドのプリンター ドライバーの名前です。 ParseParamの既定の実装では、コマンド ラインで/pt フラグが見つかった場合にのみ、このデータ メンバーが設定されます。

CCommandLineInfo::m_strFileName

最初のフラグ以外のパラメーターの値をコマンド ラインに格納します。

CString m_strFileName;

解説

通常、このパラメーターは開くファイルの名前です。

CCommandLineInfo::m_strPortName

4 番目のフラグ以外のパラメーターの値をコマンド ラインに格納します。

CString m_strPortName;

解説

このパラメーターは、通常、Print To シェル コマンドのプリンター ポートの名前です。 ParseParamの既定の実装では、コマンド ラインで/pt フラグが見つかった場合にのみ、このデータ メンバーが設定されます。

CCommandLineInfo::m_strPrinterName

2 番目のフラグ以外のパラメーターの値をコマンド ラインに格納します。

CString m_strPrinterName;

解説

このパラメーターは、通常、Print To シェル コマンドのプリンターの名前です。 ParseParamの既定の実装では、コマンド ラインで/pt フラグが見つかった場合にのみ、このデータ メンバーが設定されます。

CCommandLineInfo::m_strRestartIdentifier

コマンド ラインの一意の再起動識別子。

CString m_strRestartIdentifier;

解説

再起動識別子は、アプリケーションのインスタンスごとに一意です。

再起動マネージャーがアプリケーションを終了し、アプリケーションを再起動するように構成されている場合、再起動マネージャーは、オプションのパラメーターとして再起動識別子を使用してコマンド ラインからアプリケーションを実行します。 再起動マネージャーが再起動識別子を使用する場合、アプリケーションは以前に開いているドキュメントを再度開き、自動保存されたファイルを回復できます。

CCommandLineInfo::ParseParam

フレームワークはこの関数を呼び出して、コマンド ラインから個々のパラメーターを解析/解釈します。 2 番目のバージョンは、Unicode プロジェクトの最初のバージョンとは異なります。

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

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

パラメーター

pszParam
パラメーターまたはフラグ。

bFlag
pszParamがパラメーターかフラグかを示します。

bLast
これがコマンド ラインの最後のパラメーターまたはフラグであるかどうかを示します。

解説

CWinApp::ParseCommandLine は、コマンド ラインでパラメーターまたはフラグごとに 1 回 ParseParam を呼び出し、引数を pszParam に渡します。 パラメーターの最初の文字が - または /の場合は削除され、 bFlagTRUEに設定されます。 最終的なパラメーターを解析する場合、 bLastTRUE に設定されます。

この関数の既定の実装では、次の表に示すように、 /p/pt/dde/Automation、および /Embeddingのフラグが認識されます。

コマンドライン引数 実行されたコマンド
app 新しいファイル。
app filename ファイルを開きます。
app /p filename ファイルを既定のプリンターに印刷します。
app /pt ファイル名プリンター ドライバー ポート 指定したプリンターにファイルを印刷します。
app /dde DDE コマンドを起動して待機します。
app /Automation OLE オートメーション サーバーとして起動します。
app /Embedding 埋め込み OLE 項目の編集を開始します。
app /Register

app /Regserver
登録タスクを実行するようにアプリケーションに通知します。
app /Unregister

app /Unregserver
登録解除タスクを実行するようにアプリケーションに通知します。

この情報は、 m_bRunAutomatedm_bRunEmbedded、および m_nShellCommandに格納されます。 フラグは、スラッシュ / またはハイフン -でマークされます。

既定の実装では、最初の非フラグ パラメーターが m_strFileNameに配置されます。 /pt フラグの場合、既定の実装では、2 番目、3 番目、および 4 番目のフラグ以外のパラメーターがそれぞれm_strPrinterNamem_strDriverName、およびm_strPortNameに配置されます。

また、既定の実装では、新しいファイルの場合にのみ m_bShowSplashTRUE に設定されます。 新しいファイルの場合、ユーザーはアプリケーション自体に関連するアクションを実行しました。 シェルを使用して既存のファイルを開くなど、その他の場合、ユーザーアクションにはファイルが直接含まれます。 ドキュメント中心の観点では、スプラッシュ画面でアプリケーションの起動を読み上げる必要はありません。

他のフラグとパラメーター値を処理するには、派生クラスでこの関数をオーバーライドします。

関連項目

CObject クラス
階層図
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand