Win32 API 日本語リファレンス
ホームDevices.Fax › IFaxServer

IFaxServer

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID475b6469-90a5-4878-a577-17a86e8e3462継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

IFaxServer インターフェイスは、FAX クライアント アプリケーションが FAX サービスへの接続を管理するために使用するメッセージング コレクションを表します。

解説(Remarks)

IFaxServer の既定の実装は、FaxServer オブジェクトとして提供されます。

メソッド 26

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT Connect(LPWSTR bstrServerName)

IFaxServer::Connect メソッドは、FAX クライアント アプリケーションを指定した FAX サーバーに接続します。

bstrServerNameLPWSTRin対象となる FAX サーバーの名前 ("computername" など) を指定する null 終端文字列です。このパラメーターが NULL または空の文字列の場合、このメソッドはアプリケーションをローカル コンピューター上の FAX サーバーに接続します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

FAX 拡張コンポーネント オブジェクト モデル (COM) のほとんどのオブジェクトにアクセスする前に、アプリケーションはこのメソッドを呼び出して、アクティブな FAX サーバーとの接続を開始する必要があります。FaxDocument オブジェクトにアクセスする場合、FAX サーバーへの接続は不要です。クライアントがアクティブな FAX サーバーに接続していない場合、このメソッドは失敗します。

ローカル サーバーに接続するには、bstrServerName パラメーターに NULL または空の文字列を設定します。使用例については、「FAX サーバーへの接続」を参照してください。

vtbl 8 HRESULT get_ServerName(LPWSTR* pbstrServerName)

IFaxServer::get_ServerName プロパティは、FAX クライアントが接続しているアクティブな FAX サーバーの名前を取得します。

pbstrServerNameLPWSTR*out接続中のFAXサーバー名を受け取るBSTR出力先。
vtbl 9 HRESULT GetDeviceProviders(IFaxDeviceProviders** ppFaxDeviceProviders)

IFaxServer::GetDeviceProviders メソッドは、FAX サービスに現在登録されている FAX サービス プロバイダー (FSP) のコレクションである IFaxDeviceProviders インターフェイスを作成します。

ppFaxDeviceProvidersIFaxDeviceProviders**outIFaxDeviceProviders インターフェイスを受け取るポインターのアドレスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

このメソッドを使用するには、ユーザーが farQUERY_CONFIG アクセス権を持っている必要があります。

vtbl 10 HRESULT GetDevices(IFaxDevices** ppFaxDevices)

IFaxServer::GetDevices メソッドは、FAX サービスに現在登録されているすべての FAX サービス プロバイダー (FSP) が公開するすべての FAX デバイスのコレクションである IFaxDevices インターフェイスを作成します。

ppFaxDevicesIFaxDevices**outIFaxDevices インターフェイスを受け取るポインターのアドレスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

IFaxDevices インターフェイスを使用すると、接続中の FAX サーバーに関連付けられた FAX デバイスを列挙し、それらに対応する IFaxDevice インターフェイスを作成できます。

このメソッドを使用するには、ユーザーが farQUERY_CONFIG アクセス権を持っている必要があります。

vtbl 11 HRESULT get_InboundRouting(IFaxInboundRouting** ppFaxInboundRouting)

IFaxServer::get_InboundRouting プロパティは、IFaxInboundRouting 構成インターフェイスを作成します。このインターフェイスにより、受信 FAX ルーティング拡張機能とそのメソッドにアクセスできます。

ppFaxInboundRoutingIFaxInboundRouting**out受信ルーティング設定オブジェクトを受け取る出力先。
vtbl 12 HRESULT get_Folders(IFaxFolders** pFaxFolders)

IFaxServer::get_Folders プロパティは、IFaxFolders 構成インターフェイスにアクセスします。このインターフェイスを使用すると、接続中の FAX サーバー上のフォルダー、ジョブ、およびメッセージにアクセスできます。

pFaxFoldersIFaxFolders**outFAXフォルダー群を表すIFaxFoldersを受け取る出力先。
vtbl 13 HRESULT get_LoggingOptions(IFaxLoggingOptions** ppFaxLoggingOptions)

IFaxServer::get_LoggingOptions プロパティは、IFaxLoggingOptions 構成インターフェイスを作成します。このインターフェイスにより、FAX サービスが使用するアクティビティ ログのオプションとイベント ログのカテゴリの両方を構成できます。

ppFaxLoggingOptionsIFaxLoggingOptions**outログ記録オプションオブジェクトを受け取る出力先。
vtbl 14 HRESULT get_MajorVersion(INT* plMajorVersion)

IFaxServer::get_MajorVersion プロパティは、FAX サービスのバージョン番号のメジャー部分を示す値です。

plMajorVersionINT*outFAXサーバーのメジャーバージョン番号を受け取る出力先。

解説(Remarks)

FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。

vtbl 15 HRESULT get_MinorVersion(INT* plMinorVersion)

IFaxServer::get_MinorVersion プロパティは、FAX サービスのバージョン番号のマイナー部分を示す値です。

plMinorVersionINT*outFAXサーバーのマイナーバージョン番号を受け取る出力先。

解説(Remarks)

FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。

vtbl 16 HRESULT get_MajorBuild(INT* plMajorBuild)

IFaxServer::get_MajorBuild プロパティは、FAX サービスのビルド番号のメジャー部分を示す値です。

plMajorBuildINT*outFAXサーバーのメジャービルド番号を受け取る出力先。

解説(Remarks)

FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。

vtbl 17 HRESULT get_MinorBuild(INT* plMinorBuild)

IFaxServer::get_MinorBuild プロパティは、FAX サービスのビルド番号のマイナー部分を示す値です。

plMinorBuildINT*outFAXサーバーのマイナービルド番号を受け取る出力先。

解説(Remarks)

FAX サービスのビルド番号の形式は MajorVersion.MinorVersion.MajorBuild.MinorBuild です。

vtbl 18 HRESULT get_Debug(VARIANT_BOOL* pbDebug)

IFaxServer::get_Debug プロパティは、FAX サーバーがデバッグ環境で作成されたかどうかを示すブール値です。

pbDebugVARIANT_BOOL*outサーバーがデバッグビルドかをVARIANT_BOOLで受け取る出力先。

解説(Remarks)

このプロパティが TRUE の場合、FAX サーバーはデバッグ環境で作成されています。このプロパティが FALSE の場合、FAX サーバーはデバッグ環境では作成されていません。

vtbl 19 HRESULT get_Activity(IFaxActivity** ppFaxActivity)

IFaxServer::get_Activity プロパティは、IFaxActivity インターフェイス オブジェクトを作成します。このインターフェイスにより、FAX クライアント アプリケーションは、接続中の FAX サーバー上のアクティビティに関する情報と FAX サーバーの状態にアクセスできます。

ppFaxActivityIFaxActivity**out現在のサーバー稼働状況を表すIFaxActivityを受け取る出力先。
vtbl 20 HRESULT get_OutboundRouting(IFaxOutboundRouting** ppFaxOutboundRouting)

IFaxServer::get_OutboundRouting プロパティは、IFaxOutboundRouting 構成インターフェイスを作成します。このインターフェイスにより、ユーザーは送信ルーティングのグループと規則を構成できます。

ppFaxOutboundRoutingIFaxOutboundRouting**out送信ルーティング設定オブジェクトを受け取る出力先。

解説(Remarks)

このプロパティは Windows XP ではサポートされておらず、エラー FAX_E_NOT_SUPPORTED_ON_THIS_SKU を返します。

vtbl 21 HRESULT get_ReceiptOptions(IFaxReceiptOptions** ppFaxReceiptOptions)

IFaxServer::get_ReceiptOptions プロパティは、IFaxReceiptOptions 構成インターフェイスを作成します。このオブジェクトにより、FAX クライアント アプリケーションは、FAX サービスが FAX の受信確認を送信する際に使用する受信確認の構成を設定および取得できます。

ppFaxReceiptOptionsIFaxReceiptOptions**out送達確認(レシート)オプションを受け取る出力先。
vtbl 22 HRESULT get_Security(IFaxSecurity** ppFaxSecurity)

IFaxServer::get_Security プロパティは、IFaxSecurity 構成インターフェイスを作成します。このインターフェイスにより、呼び出し元のアプリケーションは FAX サーバーのセキュリティ記述子を設定および取得できます。

ppFaxSecurityIFaxSecurity**outFAXサーバーのセキュリティ設定を受け取る出力先。
vtbl 23 HRESULT Disconnect()

IFaxServer::Disconnect メソッドは、FAX クライアント アプリケーションと FAX サーバーとの接続を終了します。クライアントがアクティブな FAX サーバーに接続していない場合、このメソッドは失敗します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 24 HRESULT GetExtensionProperty(LPWSTR bstrGUID, VARIANT* pvProperty)

IFaxServer::GetExtensionProperty メソッドは、サーバー レベルで格納されている拡張機能の構成プロパティを取得します。

bstrGUIDLPWSTRin取得するデータを一意に識別する文字列形式の GUID を指定します。
pvPropertyVARIANT*outデータを格納した VARIANT を受け取る変数へのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

返されるデータは、unsigned char の VARIANT セーフ配列 (VT_UI1 | VT_ARRAY) として表現されるバイト列の BLOB です。このデータは、それを使用する特定の拡張機能に対してのみ意味を持ちます。詳細については、「FAX 拡張機能構成 API について」を参照してください。

このメソッドを使用するには、ユーザーが farQUERY_CONFIG アクセス権を持っている必要があります。

vtbl 25 HRESULT SetExtensionProperty(LPWSTR bstrGUID, VARIANT vProperty)

IFaxServer::SetExtensionProperty メソッドは、拡張機能の構成プロパティをサーバー レベルに格納します。

bstrGUIDLPWSTRin設定するデータを識別する文字列形式の GUID を指定します。
vPropertyVARIANTin設定するデータを指定する VARIANT です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

拡張機能の構成プロパティは、unsigned char の VARIANT セーフ配列 (VT_UI1 | VT_ARRAY) として表現されるバイト列の BLOB です。このデータは、それを使用する特定の拡張機能に対してのみ意味を持ちます。詳細については、「FAX 拡張機能構成 API について」を参照してください。

このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。

vtbl 26 HRESULT ListenToServerEvents(FAX_SERVER_EVENTS_TYPE_ENUM EventTypes)

IFaxServer::ListenToServerEvents メソッドは、1 種類以上のサーバー イベントに関する通知を受け取るように FaxServer オブジェクトを登録します。また、これらの通知を停止する場合にも使用します。

EventTypesFAX_SERVER_EVENTS_TYPE_ENUMinFaxServer オブジェクトが通知を受け取るために登録するイベントの種類を表すビット フラグのセットを含む値です。詳細については、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 を呼び出し、通知を受け取りたいイベントの種類を渡す必要があります。通知の受信を停止するには、EventTypesfsetNONE を指定してこのメソッドを呼び出します。

このメソッドに必要なアクセス権は、要求するイベントによって次の表のように異なります。

イベント 必要なアクセス権
fsetINCOMING_CALL farQUERY_IN_ARCHIVE
fsetIN_QUEUE farSUBMIT_LOW
farQUERY_JOBS
fsetOUT_QUEUE farSUBMIT_LOW
farQUERY_JOBS
fsetCONFIG farQUERY_CONFIG
fsetDEVICE_STATUS farQUERY_CONFIG
fsetACTIVITY farQUERY_CONFIG
fsetIN_ARCHIVE farSUBMIT
farQUERY_IN_ARCHIVE
fsetOUT_ARCHIVE farSUBMIT_LOW
farQUERY_OUT_ARCHIVE
vtbl 27 HRESULT RegisterDeviceProvider(LPWSTR bstrGUID, LPWSTR bstrFriendlyName, LPWSTR bstrImageName, LPWSTR TspName, INT lFSPIVersion)

IFaxServer::RegisterDeviceProvider メソッドは、FAX サービス プロバイダー (FSP) を FAX サービスに登録します。登録は FAX サービスの再起動後に有効になります。

bstrGUIDLPWSTRin登録する FSP を一意に識別する GUID を格納した null 終端文字列です。
bstrFriendlyNameLPWSTRin登録する FSP について表示する、ユーザーにわかりやすい名前を格納した null 終端文字列です。
bstrImageNameLPWSTRinFSP DLL の完全修飾パスとファイル名を格納した null 終端文字列です。
TspNameLPWSTRinFSP のデバイスに関連付けられたテレフォニー サービス プロバイダーの名前を格納した null 終端文字列です。
lFSPIVersionINTinFSP のバージョンを示す long 値です。0x00010000 を指定する必要があります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

FSP を登録できるのは管理者のみです。

このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。

vtbl 28 HRESULT UnregisterDeviceProvider(LPWSTR bstrUniqueName)

IFaxServer::UnregisterDeviceProvider メソッドは、既存のデバイス プロバイダーの登録を解除 (登録を削除) します。登録解除は、FAX サーバーの再起動後にのみ有効になります。

bstrUniqueNameLPWSTRin必須です。登録を解除する FSP を識別する一意の名前を指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

FAX サービス プロバイダーの登録を解除できるのは管理者のみです。

このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。

vtbl 29 HRESULT RegisterInboundRoutingExtension(LPWSTR bstrExtensionName, LPWSTR bstrFriendlyName, LPWSTR bstrImageName, VARIANT vMethods)

IFaxServer::RegisterInboundRoutingExtension メソッドは、FAX の受信ルーティング拡張機能を FAX サービスに登録します。登録は FAX サービスの再起動後に有効になります。

bstrExtensionNameLPWSTRinFAX ルーティング拡張機能 DLL の内部名を指定する文字列です。
bstrFriendlyNameLPWSTRinFAX ルーティング拡張機能 DLL に関連付ける文字列です。これは、表示に適した、ルーティング拡張機能のユーザーにわかりやすい名前です。
bstrImageNameLPWSTRinFAX ルーティング拡張機能 DLL の完全なパスとファイル名を指定する文字列です。パスには、%SYSTEMDRIVE% や %SYSTEMROOT% などの有効な環境変数を含めることができます。
vMethodsVARIANTinBSTR のセーフ配列を指定する 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 アクセス権を持っている必要があります。

vtbl 30 HRESULT UnregisterInboundRoutingExtension(LPWSTR bstrExtensionUniqueName)

IFaxServer::UnregisterInboundRoutingExtension メソッドは、既存の受信ルーティング拡張機能の登録を解除します。登録解除は、FAX サーバーの再起動後にのみ有効になります。

bstrExtensionUniqueNameLPWSTRinFAX ルーティング拡張機能 DLL の内部名を指定する文字列値です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

ルーティング拡張機能の登録を解除できるのは管理者のみです。また、このメソッドはローカルの FAX サーバーでのみ動作します。

このメソッドを使用するには、ユーザーが farMANAGE_CONFIG アクセス権を持っている必要があります。

vtbl 31 HRESULT get_RegisteredEvents(FAX_SERVER_EVENTS_TYPE_ENUM* pEventTypes)

IFaxServer::get_RegisteredEvents プロパティは、クライアント アプリケーションが待機している FAX サービス イベントの種類を示す、列挙体の値です。

pEventTypesFAX_SERVER_EVENTS_TYPE_ENUM*out現在購読中のイベント種別FAX_SERVER_EVENTS_TYPE_ENUMを受け取る出力先。
vtbl 32 HRESULT get_APIVersion(FAX_SERVER_APIVERSION_ENUM* pAPIVersion)

IFaxServer::get_APIVersion プロパティは、FAX サーバー API のバージョンを示す値です。

pAPIVersionFAX_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 の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 不要)。