IFaxSecurity2
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
FAX クライアント アプリケーションが FAX サーバーのセキュリティを構成するために使用します。また、呼び出し元のアプリケーションが FAX サーバーのセキュリティ記述子を設定および取得することもできます。
解説(Remarks)
このインターフェイスは Windows Vista 以降でのみサポートされます。それ以前のバージョンの Windows では IFaxSecurity を使用してください。
FAX サーバーのセキュリティを構成できるのは、権限を持つ管理者のみです。詳細については、Access Control を参照してください。
既定の実装は FaxSecurity2 として提供されます。
メソッド 7
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
IFaxServer2 オブジェクトのセキュリティ記述子を表します。(Get)
| pvDescriptor | VARIANT* | out | セキュリティ記述子(自己相対SD)をバイト配列として格納したVARIANTを受け取るポインタ。 |
解説(Remarks)
IFaxSecurity2::Descriptor プロパティはセキュリティ記述子を表します。セキュリティ記述子には、FAX 管理者がユーザーに明示的に付与した権限が含まれます。IFaxSecurity2::GrantedRights プロパティは、この記述子に基づいて FAX サーバーが付与するユーザー権限を反映します。具体的には、ユーザーがアクセス権 far2SUBMIT_HIGH を持つ場合、そのユーザーは高優先度、通常優先度、および低優先度の FAX を送信できます。ユーザーがアクセス権 far2SUBMIT_NORMAL を持つ場合、そのユーザーは通常優先度および低優先度の FAX を送信できます。
このプロパティの読み取りと書き込みを行うには、ユーザーが far2MANAGE_CONFIG アクセス権を持っている必要があります。far2QUERY_CONFIG アクセス権を持つユーザーは、このプロパティを読み取ることができます。
IFaxServer2 オブジェクトのセキュリティ記述子を表します。(Put)
| vDescriptor | VARIANT | in | 設定するセキュリティ記述子をバイト配列として格納したVARIANT。アクセス権を定義する。 |
解説(Remarks)
IFaxSecurity2::Descriptor プロパティはセキュリティ記述子を表します。セキュリティ記述子には、FAX 管理者がユーザーに明示的に付与した権限が含まれます。IFaxSecurity2::GrantedRights プロパティは、この記述子に基づいて FAX サーバーが付与するユーザー権限を反映します。具体的には、ユーザーがアクセス権 far2SUBMIT_HIGH を持つ場合、そのユーザーは高優先度、通常優先度、および低優先度の FAX を送信できます。ユーザーがアクセス権 far2SUBMIT_NORMAL を持つ場合、そのユーザーは通常優先度および低優先度の FAX を送信できます。
このプロパティの読み取りと書き込みを行うには、ユーザーが far2MANAGE_CONFIG アクセス権を持っている必要があります。far2QUERY_CONFIG アクセス権を持つユーザーは、このプロパティを読み取ることができます。
このプロパティを参照しているユーザーに付与されている FAX サーバーのアクセス権の組み合わせを取得します。
| pGrantedRights | FAX_ACCESS_RIGHTS_ENUM_2* | out | 現在のユーザーに付与されているアクセス権を表すFAX_ACCESS_RIGHTS_ENUM_2値を受け取るポインタ。ビット組合せ。 |
解説(Remarks)
IFaxSecurity2::GrantedRights プロパティは FAX サーバーが付与する権限を反映します。これに対して Descriptor プロパティはセキュリティ記述子を表し、そこには FAX 管理者がユーザーに明示的に付与した権限が含まれます。
このプロパティを読み取るには、ユーザーが far2QUERY_CONFIG アクセス権を持っている必要があります。
FAX サーバーから FaxSecurity2 オブジェクトの情報を再取得します。
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラー コードを返します。
解説(Remarks)
IFaxSecurity2::Refresh メソッドを呼び出すと、最後に IFaxSecurity2::Save メソッドを呼び出した後に加えられた構成の変更はすべて失われます。
このメソッドを使用するには、ユーザーが far2QUERY_CONFIG アクセス権を持っている必要があります。
FaxSecurity オブジェクトのデータを保存します。
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラー コードを返します。
解説(Remarks)
このメソッドを使用するには、ユーザーが far2MANAGE_CONFIG および far2QUERY_CONFIG のアクセス権を持っている必要があります。
セキュリティ情報の種類を取得します。(Get)
| plInformationType | INT* | out | 取得対象のセキュリティ情報種別(SECURITY_INFORMATIONビット)を受け取るINTポインタ。 |
解説(Remarks)
情報の種類はビットの組み合わせであり、Descriptor プロパティでセキュリティ記述子を要求するとき、または IFaxSecurity2::Refresh メソッドで FaxSecurity2 オブジェクトを更新するときに、サーバーからどのセキュリティ情報を取得するかを示します。また、この情報の種類のプロパティは、IFaxSecurity2::Save メソッドで FaxSecurity2 オブジェクトへの変更を保存するときに、FAX サーバーへ送信される情報も決定します。
これらのビットは、Winnt.h で定義されている SECURITY_INFORMATION 構造体で指定されます。セキュリティ情報の各項目はビット フラグで指定されます。次の値は、FAX サービスに適用されるビットを示します。
| 値 | 意味 |
|---|---|
| DACL_SECURITY_INFORMATION | オブジェクトの任意アクセス制御リスト (ACL) が参照されることを示します。 |
| GROUP_SECURITY_INFORMATION | オブジェクトのプライマリ グループ識別子が参照されることを示します。 |
| OWNER_SECURITY_INFORMATION | オブジェクトの所有者識別子が参照されることを示します。 |
| SACL_SECURITY_INFORMATION | オブジェクトのシステム ACL が参照されることを示します。 |
目的の情報を確実に受け取り、かつ適切なアクセス権を持つ情報のみを要求するために、Descriptor プロパティを取得する前に IFaxSecurity2::InformationType プロパティを設定してください。また、IFaxSecurity2::InformationType プロパティは、IFaxSecurity2::Save メソッドを呼び出したときに FAX サーバーへ送信される情報にも影響します。IFaxSecurity2::InformationType プロパティを設定しない場合、既定値は DACL_SECURITY_INFORMATION、GROUP_SECURITY_INFORMATION、および OWNER_SECURITY_INFORMATION の各フラグになります。
セキュリティ情報の種類を取得します。(Put)
| lInformationType | INT | in | 設定対象のセキュリティ情報種別(SECURITY_INFORMATIONビット)を設定するINT。DACL等を指定する。 |
解説(Remarks)
情報の種類はビットの組み合わせであり、Descriptor プロパティでセキュリティ記述子を要求するとき、または IFaxSecurity2::Refresh メソッドで FaxSecurity2 オブジェクトを更新するときに、サーバーからどのセキュリティ情報を取得するかを示します。また、この情報の種類のプロパティは、IFaxSecurity2::Save メソッドで FaxSecurity2 オブジェクトへの変更を保存するときに、FAX サーバーへ送信される情報も決定します。
これらのビットは、Winnt.h で定義されている SECURITY_INFORMATION 構造体で指定されます。セキュリティ情報の各項目はビット フラグで指定されます。次の値は、FAX サービスに適用されるビットを示します。
| 値 | 意味 |
|---|---|
| DACL_SECURITY_INFORMATION | オブジェクトの任意アクセス制御リスト (ACL) が参照されることを示します。 |
| GROUP_SECURITY_INFORMATION | オブジェクトのプライマリ グループ識別子が参照されることを示します。 |
| OWNER_SECURITY_INFORMATION | オブジェクトの所有者識別子が参照されることを示します。 |
| SACL_SECURITY_INFORMATION | オブジェクトのシステム ACL が参照されることを示します。 |
目的の情報を確実に受け取り、かつ適切なアクセス権を持つ情報のみを要求するために、Descriptor プロパティを取得する前に IFaxSecurity2::InformationType プロパティを設定してください。また、IFaxSecurity2::InformationType プロパティは、IFaxSecurity2::Save メソッドを呼び出したときに FAX サーバーへ送信される情報にも影響します。IFaxSecurity2::InformationType プロパティを設定しない場合、既定値は DACL_SECURITY_INFORMATION、GROUP_SECURITY_INFORMATION、および OWNER_SECURITY_INFORMATION の各フラグになります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFaxSecurity2 "{17D851F4-D09B-48FC-99C9-8F24C4DB9AB1}" #usecom global IFaxSecurity2 IID_IFaxSecurity2 "{735C1248-EC89-4C30-A127-656E92E3C4EA}" #comfunc global IFaxSecurity2_get_Descriptor 7 var #comfunc global IFaxSecurity2_put_Descriptor 8 int #comfunc global IFaxSecurity2_get_GrantedRights 9 var #comfunc global IFaxSecurity2_Refresh 10 #comfunc global IFaxSecurity2_Save 11 #comfunc global IFaxSecurity2_get_InformationType 12 var #comfunc global IFaxSecurity2_put_InformationType 13 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFaxSecurity2 "{17D851F4-D09B-48FC-99C9-8F24C4DB9AB1}" #usecom global IFaxSecurity2 IID_IFaxSecurity2 "{735C1248-EC89-4C30-A127-656E92E3C4EA}" #comfunc global IFaxSecurity2_get_Descriptor 7 sptr #comfunc global IFaxSecurity2_put_Descriptor 8 int #comfunc global IFaxSecurity2_get_GrantedRights 9 sptr #comfunc global IFaxSecurity2_Refresh 10 #comfunc global IFaxSecurity2_Save 11 #comfunc global IFaxSecurity2_get_InformationType 12 sptr #comfunc global IFaxSecurity2_put_InformationType 13 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。