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
をオーバーライドして新しいフラグを処理します。
継承階層
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_nShellCommand
が CCommandLineInfo::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
に渡します。 パラメーターの最初の文字が -
または /
の場合は削除され、 bFlag
は TRUE
に設定されます。 最終的なパラメーターを解析する場合、 bLast
は TRUE
に設定されます。
この関数の既定の実装では、次の表に示すように、 /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_bRunAutomated
、 m_bRunEmbedded
、および m_nShellCommand
に格納されます。 フラグは、スラッシュ /
またはハイフン -
でマークされます。
既定の実装では、最初の非フラグ パラメーターが m_strFileName
に配置されます。 /pt
フラグの場合、既定の実装では、2 番目、3 番目、および 4 番目のフラグ以外のパラメーターがそれぞれm_strPrinterName
、m_strDriverName
、およびm_strPortName
に配置されます。
また、既定の実装では、新しいファイルの場合にのみ m_bShowSplash
が TRUE
に設定されます。 新しいファイルの場合、ユーザーはアプリケーション自体に関連するアクションを実行しました。 シェルを使用して既存のファイルを開くなど、その他の場合、ユーザーアクションにはファイルが直接含まれます。 ドキュメント中心の観点では、スプラッシュ画面でアプリケーションの起動を読み上げる必要はありません。
他のフラグとパラメーター値を処理するには、派生クラスでこの関数をオーバーライドします。
関連項目
CObject
クラス
階層図
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand