IFaxServer
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IFaxServer インターフェイスは、FAX クライアント アプリケーションが FAX サービスへの接続を管理するために使用するメッセージング コレクションを表します。
解説(Remarks)
IFaxServer の既定の実装は、FaxServer オブジェクトとして提供されます。
メソッド 26
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
IFaxServer::Connect メソッドは、FAX クライアント アプリケーションを指定した FAX サーバーに接続します。
| bstrServerName | LPWSTR | in | 対象となる FAX サーバーの名前 ("computername" など) を指定する null 終端文字列です。このパラメーターが NULL または空の文字列の場合、このメソッドはアプリケーションをローカル コンピューター上の FAX サーバーに接続します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
FAX 拡張コンポーネント オブジェクト モデル (COM) のほとんどのオブジェクトにアクセスする前に、アプリケーションはこのメソッドを呼び出して、アクティブな FAX サーバーとの接続を開始する必要があります。FaxDocument オブジェクトにアクセスする場合、FAX サーバーへの接続は不要です。クライアントがアクティブな FAX サーバーに接続していない場合、このメソッドは失敗します。
ローカル サーバーに接続するには、bstrServerName パラメーターに NULL または空の文字列を設定します。使用例については、「FAX サーバーへの接続」を参照してください。
IFaxServer::get_ServerName プロパティは、FAX クライアントが接続しているアクティブな FAX サーバーの名前を取得します。
| pbstrServerName | LPWSTR* | out | 接続中のFAXサーバー名を受け取るBSTR出力先。 |
IFaxServer::GetDeviceProviders メソッドは、FAX サービスに現在登録されている FAX サービス プロバイダー (FSP) のコレクションである IFaxDeviceProviders インターフェイスを作成します。
| ppFaxDeviceProviders | IFaxDeviceProviders** | out | IFaxDeviceProviders インターフェイスを受け取るポインターのアドレスです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
このメソッドを使用するには、ユーザーが farQUERY_CONFIG アクセス権を持っている必要があります。
IFaxServer::GetDevices メソッドは、FAX サービスに現在登録されているすべての FAX サービス プロバイダー (FSP) が公開するすべての FAX デバイスのコレクションである IFaxDevices インターフェイスを作成します。
| ppFaxDevices | IFaxDevices** | out | IFaxDevices インターフェイスを受け取るポインターのアドレスです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
IFaxDevices インターフェイスを使用すると、接続中の FAX サーバーに関連付けられた FAX デバイスを列挙し、それらに対応する IFaxDevice インターフェイスを作成できます。
このメソッドを使用するには、ユーザーが farQUERY_CONFIG アクセス権を持っている必要があります。
IFaxServer::get_InboundRouting プロパティは、IFaxInboundRouting 構成インターフェイスを作成します。このインターフェイスにより、受信 FAX ルーティング拡張機能とそのメソッドにアクセスできます。
| ppFaxInboundRouting | IFaxInboundRouting** | out | 受信ルーティング設定オブジェクトを受け取る出力先。 |
IFaxServer::get_Folders プロパティは、IFaxFolders 構成インターフェイスにアクセスします。このインターフェイスを使用すると、接続中の FAX サーバー上のフォルダー、ジョブ、およびメッセージにアクセスできます。
| pFaxFolders | IFaxFolders** | out | FAXフォルダー群を表すIFaxFoldersを受け取る出力先。 |
IFaxServer::get_LoggingOptions プロパティは、IFaxLoggingOptions 構成インターフェイスを作成します。このインターフェイスにより、FAX サービスが使用するアクティビティ ログのオプションとイベント ログのカテゴリの両方を構成できます。
| ppFaxLoggingOptions | IFaxLoggingOptions** | out | ログ記録オプションオブジェクトを受け取る出力先。 |
IFaxServer::get_MajorVersion プロパティは、FAX サービスのバージョン番号のメジャー部分を示す値です。
| plMajorVersion | INT* | out | FAXサーバーのメジャーバージョン番号を受け取る出力先。 |
解説(Remarks)
FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。
IFaxServer::get_MinorVersion プロパティは、FAX サービスのバージョン番号のマイナー部分を示す値です。
| plMinorVersion | INT* | out | FAXサーバーのマイナーバージョン番号を受け取る出力先。 |
解説(Remarks)
FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。
IFaxServer::get_MajorBuild プロパティは、FAX サービスのビルド番号のメジャー部分を示す値です。
| plMajorBuild | INT* | out | FAXサーバーのメジャービルド番号を受け取る出力先。 |
解説(Remarks)
FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。
IFaxServer::get_MinorBuild プロパティは、FAX サービスのビルド番号のマイナー部分を示す値です。
| plMinorBuild | INT* | out | FAXサーバーのマイナービルド番号を受け取る出力先。 |
解説(Remarks)
FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。
IFaxServer::get_Debug プロパティは、FAX サーバーがデバッグ環境で作成されたかどうかを示すブール値です。
| pbDebug | VARIANT_BOOL* | out | サーバーがデバッグビルドかをVARIANT_BOOLで受け取る出力先。 |
解説(Remarks)
このプロパティが TRUE の場合、FAX サーバーはデバッグ環境で作成されています。このプロパティが FALSE の場合、FAX サーバーはデバッグ環境では作成されていません。
IFaxServer::get_Activity プロパティは、IFaxActivity インターフェイス オブジェクトを作成します。このインターフェイスにより、FAX クライアント アプリケーションは、接続中の FAX サーバー上のアクティビティに関する情報と FAX サーバーの状態にアクセスできます。
| ppFaxActivity | IFaxActivity** | out | 現在のサーバー稼働状況を表すIFaxActivityを受け取る出力先。 |
IFaxServer::get_OutboundRouting プロパティは、IFaxOutboundRouting 構成インターフェイスを作成します。このインターフェイスにより、ユーザーは送信ルーティングのグループと規則を構成できます。
| ppFaxOutboundRouting | IFaxOutboundRouting** | out | 送信ルーティング設定オブジェクトを受け取る出力先。 |
解説(Remarks)
このプロパティは Windows XP ではサポートされておらず、エラー FAX_E_NOT_SUPPORTED_ON_THIS_SKU を返します。
IFaxServer::get_ReceiptOptions プロパティは、IFaxReceiptOptions 構成インターフェイスを作成します。このオブジェクトにより、FAX クライアント アプリケーションは、FAX サービスが FAX の受信確認を送信する際に使用する受信確認の構成を設定および取得できます。
| ppFaxReceiptOptions | IFaxReceiptOptions** | out | 送達確認(レシート)オプションを受け取る出力先。 |
IFaxServer::get_Security プロパティは、IFaxSecurity 構成インターフェイスを作成します。このインターフェイスにより、呼び出し元のアプリケーションは FAX サーバーのセキュリティ記述子を設定および取得できます。
| ppFaxSecurity | IFaxSecurity** | out | FAXサーバーのセキュリティ設定を受け取る出力先。 |
IFaxServer::Disconnect メソッドは、FAX クライアント アプリケーションと FAX サーバーとの接続を終了します。クライアントがアクティブな FAX サーバーに接続していない場合、このメソッドは失敗します。
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
IFaxServer::GetExtensionProperty メソッドは、サーバー レベルで格納されている拡張機能の構成プロパティを取得します。
| bstrGUID | LPWSTR | in | 取得するデータを一意に識別する文字列形式の GUID を指定します。 |
| pvProperty | VARIANT* | out | データを格納した VARIANT を受け取る変数へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
返されるデータは、unsigned char の VARIANT セーフ配列 (VT_UI1 | VT_ARRAY) として表現されるバイト列の BLOB です。このデータは、それを使用する特定の拡張機能に対してのみ意味を持ちます。詳細については、「FAX 拡張機能構成 API について」を参照してください。
このメソッドを使用するには、ユーザーが farQUERY_CONFIG アクセス権を持っている必要があります。
IFaxServer::SetExtensionProperty メソッドは、拡張機能の構成プロパティをサーバー レベルに格納します。
| bstrGUID | LPWSTR | in | 設定するデータを識別する文字列形式の GUID を指定します。 |
| vProperty | VARIANT | in | 設定するデータを指定する VARIANT です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
拡張機能の構成プロパティは、unsigned char の VARIANT セーフ配列 (VT_UI1 | VT_ARRAY) として表現されるバイト列の BLOB です。このデータは、それを使用する特定の拡張機能に対してのみ意味を持ちます。詳細については、「FAX 拡張機能構成 API について」を参照してください。
このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。
IFaxServer::ListenToServerEvents メソッドは、1 種類以上のサーバー イベントに関する通知を受け取るように FaxServer オブジェクトを登録します。また、これらの通知を停止する場合にも使用します。
| EventTypes | FAX_SERVER_EVENTS_TYPE_ENUM | in | FaxServer オブジェクトが通知を受け取るために登録するイベントの種類を表すビット フラグのセットを含む値です。詳細については、FAX_SERVER_EVENTS_TYPE_ENUM を参照してください。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
Microsoft Visual Basic で FAX サーバーの通知を受け取るには、次の構文を使用して FaxServer オブジェクトを作成する必要があります。
Dim WithEvents objFaxServer As New FAXCOMEXLib.FaxServer
Set objFaxServer = CreateObject("FaxServer")
Microsoft Visual C++ では、FaxServer オブジェクト上の IFaxServerNotify インターフェイスがイベントの通知を受け取ります。
既定では、FaxServer オブジェクトはどのサーバー イベントの通知も受け取りません。FaxServer オブジェクトで通知を受け取るには、IFaxServer::ListenToServerEvents を呼び出し、通知を受け取りたいイベントの種類を渡す必要があります。通知の受信を停止するには、EventTypes に fsetNONE を指定してこのメソッドを呼び出します。
このメソッドに必要なアクセス権は、要求するイベントによって次の表のように異なります。
IFaxServer::RegisterDeviceProvider メソッドは、FAX サービス プロバイダー (FSP) を FAX サービスに登録します。登録は FAX サービスの再起動後に有効になります。
| bstrGUID | LPWSTR | in | 登録する FSP を一意に識別する GUID を格納した null 終端文字列です。 |
| bstrFriendlyName | LPWSTR | in | 登録する FSP について表示する、ユーザーにわかりやすい名前を格納した null 終端文字列です。 |
| bstrImageName | LPWSTR | in | FSP DLL の完全修飾パスとファイル名を格納した null 終端文字列です。 |
| TspName | LPWSTR | in | FSP のデバイスに関連付けられたテレフォニー サービス プロバイダーの名前を格納した null 終端文字列です。 |
| lFSPIVersion | INT | in | FSP のバージョンを示す long 値です。0x00010000 を指定する必要があります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
FSP を登録できるのは管理者のみです。
このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。
IFaxServer::UnregisterDeviceProvider メソッドは、既存のデバイス プロバイダーの登録を解除 (登録を削除) します。登録解除は、FAX サーバーの再起動後にのみ有効になります。
| bstrUniqueName | LPWSTR | in | 必須です。登録を解除する FSP を識別する一意の名前を指定します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
FAX サービス プロバイダーの登録を解除できるのは管理者のみです。
このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。
IFaxServer::RegisterInboundRoutingExtension メソッドは、FAX の受信ルーティング拡張機能を FAX サービスに登録します。登録は FAX サービスの再起動後に有効になります。
| bstrExtensionName | LPWSTR | in | FAX ルーティング拡張機能 DLL の内部名を指定する文字列です。 |
| bstrFriendlyName | LPWSTR | in | FAX ルーティング拡張機能 DLL に関連付ける文字列です。これは、表示に適した、ルーティング拡張機能のユーザーにわかりやすい名前です。 |
| bstrImageName | LPWSTR | in | FAX ルーティング拡張機能 DLL の完全なパスとファイル名を指定する文字列です。パスには、%SYSTEMDRIVE% や %SYSTEMROOT% などの有効な環境変数を含めることができます。 |
| vMethods | VARIANT | in | BSTR のセーフ配列を指定する VARIANT です。配列は 1 次元でなければならず、空にすることはできません。また、下限は 0 である必要があります。配列内の各項目 (文字列) は、ルーティング方法を識別するものでなければなりません。文字列は次の形式である必要があります: Method name; Friendly name; Function Name; Method GUID |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
ルーティング拡張機能を登録できるのは管理者のみです。また、このメソッドはローカルの FAX サーバーでのみ動作します。
このプロパティは Windows XP ではサポートされておらず、エラー FAX_E_NOT_SUPPORTED_ON_THIS_SKU を返します。
このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。
IFaxServer::UnregisterInboundRoutingExtension メソッドは、既存の受信ルーティング拡張機能の登録を解除します。登録解除は、FAX サーバーの再起動後にのみ有効になります。
| bstrExtensionUniqueName | LPWSTR | in | FAX ルーティング拡張機能 DLL の内部名を指定する文字列値です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
ルーティング拡張機能の登録を解除できるのは管理者のみです。また、このメソッドはローカルの FAX サーバーでのみ動作します。
このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。
IFaxServer::get_RegisteredEvents プロパティは、クライアント アプリケーションが待機している FAX サービス イベントの種類を示す、列挙体の値です。
| pEventTypes | FAX_SERVER_EVENTS_TYPE_ENUM* | out | 現在購読中のイベント種別FAX_SERVER_EVENTS_TYPE_ENUMを受け取る出力先。 |
IFaxServer::get_APIVersion プロパティは、FAX サーバー API のバージョンを示す値です。
| pAPIVersion | FAX_SERVER_APIVERSION_ENUM* | out | サーバーのAPIバージョンを表すFAX_SERVER_APIVERSION_ENUMを受け取る出力先。 |
解説(Remarks)
一般に、FAX サーバー API の新しいバージョンは、以前の API バージョンと完全に互換性があります。コンポーネント オブジェクト モデル (COM) オブジェクトを使用して FAX サーバーに接続する場合、COM 層が変換とマッピングを行い、サーバーの FAX API バージョンを透過的にサポートするため、FAX サーバーの API バージョンは必要ありません。ただし、接続先の FAX サーバーのバージョンを検出したい場合は、IFaxServer::get_APIVersion プロパティを使用できます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFaxServer "{475B6469-90A5-4878-A577-17A86E8E3462}" #usecom global IFaxServer IID_IFaxServer "{D73733C8-CC80-11D0-B225-00C04FB6C2F5}" #comfunc global IFaxServer_Connect 7 wstr #comfunc global IFaxServer_get_ServerName 8 var #comfunc global IFaxServer_GetDeviceProviders 9 sptr #comfunc global IFaxServer_GetDevices 10 sptr #comfunc global IFaxServer_get_InboundRouting 11 sptr #comfunc global IFaxServer_get_Folders 12 sptr #comfunc global IFaxServer_get_LoggingOptions 13 sptr #comfunc global IFaxServer_get_MajorVersion 14 var #comfunc global IFaxServer_get_MinorVersion 15 var #comfunc global IFaxServer_get_MajorBuild 16 var #comfunc global IFaxServer_get_MinorBuild 17 var #comfunc global IFaxServer_get_Debug 18 var #comfunc global IFaxServer_get_Activity 19 sptr #comfunc global IFaxServer_get_OutboundRouting 20 sptr #comfunc global IFaxServer_get_ReceiptOptions 21 sptr #comfunc global IFaxServer_get_Security 22 sptr #comfunc global IFaxServer_Disconnect 23 #comfunc global IFaxServer_GetExtensionProperty 24 wstr,var #comfunc global IFaxServer_SetExtensionProperty 25 wstr,int #comfunc global IFaxServer_ListenToServerEvents 26 int #comfunc global IFaxServer_RegisterDeviceProvider 27 wstr,wstr,wstr,wstr,int #comfunc global IFaxServer_UnregisterDeviceProvider 28 wstr #comfunc global IFaxServer_RegisterInboundRoutingExtension 29 wstr,wstr,wstr,int #comfunc global IFaxServer_UnregisterInboundRoutingExtension 30 wstr #comfunc global IFaxServer_get_RegisteredEvents 31 var #comfunc global IFaxServer_get_APIVersion 32 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFaxServer "{475B6469-90A5-4878-A577-17A86E8E3462}" #usecom global IFaxServer IID_IFaxServer "{D73733C8-CC80-11D0-B225-00C04FB6C2F5}" #comfunc global IFaxServer_Connect 7 wstr #comfunc global IFaxServer_get_ServerName 8 sptr #comfunc global IFaxServer_GetDeviceProviders 9 sptr #comfunc global IFaxServer_GetDevices 10 sptr #comfunc global IFaxServer_get_InboundRouting 11 sptr #comfunc global IFaxServer_get_Folders 12 sptr #comfunc global IFaxServer_get_LoggingOptions 13 sptr #comfunc global IFaxServer_get_MajorVersion 14 sptr #comfunc global IFaxServer_get_MinorVersion 15 sptr #comfunc global IFaxServer_get_MajorBuild 16 sptr #comfunc global IFaxServer_get_MinorBuild 17 sptr #comfunc global IFaxServer_get_Debug 18 sptr #comfunc global IFaxServer_get_Activity 19 sptr #comfunc global IFaxServer_get_OutboundRouting 20 sptr #comfunc global IFaxServer_get_ReceiptOptions 21 sptr #comfunc global IFaxServer_get_Security 22 sptr #comfunc global IFaxServer_Disconnect 23 #comfunc global IFaxServer_GetExtensionProperty 24 wstr,sptr #comfunc global IFaxServer_SetExtensionProperty 25 wstr,int #comfunc global IFaxServer_ListenToServerEvents 26 int #comfunc global IFaxServer_RegisterDeviceProvider 27 wstr,wstr,wstr,wstr,int #comfunc global IFaxServer_UnregisterDeviceProvider 28 wstr #comfunc global IFaxServer_RegisterInboundRoutingExtension 29 wstr,wstr,wstr,int #comfunc global IFaxServer_UnregisterInboundRoutingExtension 30 wstr #comfunc global IFaxServer_get_RegisteredEvents 31 sptr #comfunc global IFaxServer_get_APIVersion 32 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。