この関数は、ユーザからアーカイブのパスワードを取得するために呼び出されます。
ArcInitPluginW. の関数へのポインタをプラグインに記憶させる必要があります。
Syntax C++
typedef int (__stdcall *ArcGetPasswordProcW)(
_In_ LONG_PTR Session,
_In_ HANDLE hArcData,
_In_ wchar_t *ArcFileName,
_In_ wchar_t *FileNameInArc,
_Out_ wchar_t *PasswordBuf,
_In_ int PasswordMaxLen
);
|
パラメータ
Session [in]
Type: LONG_PTR
Session identifier .
hArcData [in]
Type: HANDLE
アーカイブの識別子 . ArcOpenW が呼び出されていないときに、ファイルパッキングなどの操作を行う場合は、パラメータは 0 でなければなりません。
ArcFileName [in]
Type: wchar_t*
アーカイブ名を持つ文字列へのポインタ.
FileNameInArc [in]
Type: wchar_t*
アーカイブされていないファイル名を持つ文字列へのポインタ。 特定のファイルだけでなく、アーカイブ全体に対してパスワードが必要な場合は、このポインタは NULL でなければなりません。
PasswordBuf [out]
Type: wchar_t*
0-termination のパスワードを格納したバッファへのポインタ. プラグインが確保するバッファの長さは、PasswordMaxLen + 1 文字以上でなければなりません。
PasswordMaxLen [in]
Type: 整数
パスワードバッファの最大長.
戻り値
Type: 整数
以下のいずれかの値を返します:
Code
|
Comments
|
PK_GETPASS_OK
0
|
ユーザが "Ok" ボタンを押下
|
PK_GETPASS_CANCEL
1
|
ユーザが "キャンセル"ボタンを押下 (展開を中断する必要あり)
|
PK_GETPASS_SKIP
2
|
ユーザが "スキップ"ボタンを押下 (特定のファイルに対してパスワードが入力された場合)
|
PK_GETPASS_UNEXPECTED_ERR
-1
|
予期せぬエラー
|
備考
この関数は、必要に応じてプラグインから呼び出されます。 この関数を実行すると、ユーザからパスワードを取得するための適切なダイアログが表示されます。
パスワードは、特定のファイル、またはアーカイブ全体に対して受け取ることができます。
戻り値で "OK"、"キャンセル"、"スキップ "ボタンが扱えるようになります。 (パスワードが特定のファイルに対するものだった場合)。
|