次の方法で共有


SccGetCommandOptions 関数

この関数を使用すると、特定のコマンドの詳細設定オプションの入力をユーザーに求めることができます。

構文

SCCRTN SccGetCommandOptions(
   LPVOID pvContext,
   HWND hWnd,
   enum SCCCOMMAND iCommand,
   LPCMDOPTS* ppvOptions
);

パラメーター

pvContext

[入力] ソース管理プラグインのコンテキスト構造体。

hWnd

[入力] ソース管理プラグインが、提供するすべてのダイアログ ボックスの親として使用できる IDE ウィンドウへのハンドル。

iCommand

[入力] 詳細設定オプションが要求されるコマンド (使用できる値については、コマンド コードに関するページを参照してください)。

ppvOptions

[入力] 省略可能な構造体 (NULLにすることもできます)。

戻り値

この関数のソース管理プラグインの実装では、次のいずれかの値が返されることが予期されています。

Value 説明
SCC_OK 成功しました。
SCC_I_ADV_SUPPORT こりソース管理プラグインは、コマンドの詳細設定オプションをサポートしています。
SCC_I_OPERATIONCANCELED ユーザーは、ソース管理プラグインの [オプション] ダイアログ ボックスを取り消しました。
SCC_E_OPTNOTSUPPORTED ソース管理プラグインは、この操作をサポートしていません。
SCC_E_ISCHECKEDOUT 現在チェックアウトされているファイルに対してこの操作を実行することはできません。
SCC_E_ACCESSFAILURE ソース管理システムへのアクセス中に問題が発生しました。ネットワークまたは競合の問題である可能性があります。 再試行することをお勧めします。
SCC_E_NONSPECIFICERROR 不特定のエラーです。

解説

IDE により、最初に ppvOptions=NULL を使用してこの関数が呼び出され、指定されたコマンドの詳細設定オプション機能をソース管理プラグインがサポートしているかどうかが判断されます。 プラグインがそのコマンドの機能をサポートしている場合、ユーザーが詳細設定オプション (通常、ダイアログ ボックスの [詳細設定] ボタンとして実装されます) を要求し、NULL ポインターを指す ppvOptions の非 NULL ポインターを指定すると、IDE からこの関数が再度呼び出されます。 プラグインにより、ユーザーが指定した詳細設定オプションは非公開の構造体に格納され、その構造体へのポインターが ppvOptions に返されます。 次に、この構造体は、SccGetCommandOptions 関数への後続の呼び出しを含め、それを認識する必要がある他のすべてのソース管理プラグイン API 関数に渡されます。

たとえば、次の状況を明確にするために役立つことがあります。

ユーザーが Get コマンドを選択すると、IDE には [Get]\(取得\) ダイアログ ボックスが表示されます。 IDE から、iCommandSCC_COMMAND_GET に設定され、ppvOptionsNULL に設定された SccGetCommandOptions 関数が呼び出されます。 これは、ソース管理プラグインによって、"このコマンドに詳細設定オプションはありますか?" という質問として解釈されます。プラグインから SCC_I_ADV_SUPPORT が返されると、IDE により、[取得] ダイアログ ボックスに [詳細設定] ボタンが表示されます。

ユーザーが初めて [詳細設定] ボタンをクリックすると、IDE により、SccGetCommandOptions 関数が再度呼び出されます。今回は、NULL ポインターを指す非 NULL``ppvOptions が使用されます。 プラグインには、独自の [Get Options]\(オプションの取得\) ダイアログ ボックスが表示され、ユーザーに情報の入力が求められ、その情報は独自の構造体に格納され、ppvOptions でその構造体へのポインターが返されます。

ユーザーが同じダイアログ ボックスでもう一度 [詳細設定] をクリックすると、IDE によって ppvOptions は変更されず、SccGetCommandOptions 関数が再度呼び出され、構造体がプラグインに返されます。 これにより、プラグインにより、ユーザーが以前に設定した値へとダイアログ ボックスを再初期化できます。 プラグインにより、所定の位置にある構造体が変更されてから返されます。

最後に、ユーザーが IDE の [Get]\(取得\) ダイアログ ボックスで [OK] をクリックすると、IDE から SccGet が呼び出され、ppvOptions で返された詳細設定オプションを含む構造体が渡されます。

Note

コマンド SCC_COMMAND_OPTIONS は、IDE により [オプション] ダイアログ ボックスが表示されるときに使用されます。これで、ユーザーは統合の動作を制御する環境設定を設定できるようになります。 ソース管理プラグインに独自の環境設定ダイアログ ボックスが用意されている場合は、IDE の環境設定ダイアログ ボックスの [詳細設定] ボタンから表示できます。 このプラグインは、この情報の取得と保持するだけの役割を担い、IDE からそれを使用したり変更したりすることはありません。

関連項目