次の方法で共有


DdeInitializeW 関数 (ddeml.h)

動的 Data Exchange 管理ライブラリ (DDEML) にアプリケーションを登録します。 アプリケーションは、他の動的データ交換管理ライブラリ (DDEML) 関数を呼び出す前に、この関数を呼び出す必要があります。

構文

UINT DdeInitializeW(
  [in, out] LPDWORD     pidInst,
  [in]      PFNCALLBACK pfnCallback,
  [in]      DWORD       afCmd,
            DWORD       ulRes
);

パラメーター

[in, out] pidInst

型: LPDWORD

アプリケーション インスタンス識別子。 初期化時に、このパラメーターは 0 を指す必要があります。 関数が成功した場合、このパラメーターはアプリケーションのインスタンス識別子を指します。 この値は、それを必要とする他のすべての DDEML 関数で、idInst パラメーターとして渡す必要があります。 アプリケーションで DDEML ダイナミック リンク ライブラリ (DLL) の複数のインスタンスを使用する場合、アプリケーションはインスタンスごとに異なるコールバック関数を提供する必要があります。

pidInst が 0 以外の値を指している場合、DDEML の再初期化は暗黙的に行われます。 この場合、pidInst は、有効なアプリケーション インスタンス識別子を指す必要があります。

[in] pfnCallback

型: PFNCALLBACK

アプリケーション定義の DDE コールバック関数へのポインター。 この関数は、システムによって送信された DDE トランザクションを処理します。 詳細については、DdeCallback コールバック関数を参照してください。

[in] afCmd

型: DWORD

APPCMD_CBF_、および MF_ フラグのセット。 APPCMD_ フラグは、DdeInitializeを するための特別な指示を提供します。 CBF_ フラグは、特定の種類のトランザクションがコールバック関数に到達できないようにするフィルターを指定します。 MF_ フラグは、DDE モニター・アプリケーションがモニターする DDE アクティビティーのタイプを指定します。 これらのフラグを使用すると、コールバック関数の不要な呼び出しを排除することで、DDE アプリケーションのパフォーマンスが向上します。

このパラメーターには、次の値のうち 1 つ以上を指定できます。

価値 意味
APPCLASS_MONITOR
0x00000001L
アプリケーションがシステム内の DDE アクティビティを監視できるようにします。 このフラグは、DDE 監視アプリケーションで使用されます。 アプリケーションは、1 つ以上のモニター・フラグと APPCLASS_MONITOR・フラグを組み合わせてモニターする DDE アクティビティーのタイプを指定します。 詳細については、次の「解説」セクションを参照してください。
APPCLASS_STANDARD
0x00000000L
アプリケーションを標準 (非監視) DDEML アプリケーションとして登録します。
APPCMD_CLIENTONLY
0x00000010L
アプリケーションが DDE 会話のサーバーになることを防ぎます。 アプリケーションはクライアントに限られます。 このフラグは、DDEML によるリソースの消費を減らします。 これには、CBF_FAIL_ALLSVRXACTIONS フラグの機能が含まれています。
APPCMD_FILTERINITS
0x00000020L
アプリケーションが文字列ハンドルを作成してサービス名を登録するか、DdeNameService または ddeInitialize 関数への後続の呼び出しによってフィルター処理を無効にするまで、DDEML が XTYP_CONNECT および XTYP_WILDCONNECT トランザクションをアプリケーションに送信できないようにします。 このフラグは、アプリケーションがフラグ 指定しているかどうかに関係なく、DdeInitialize を初めて呼び出すときに常に有効になります。 DdeInitializeを する後続の呼び出しでは、このフラグを指定しないと、アプリケーションのサービス名フィルターがオフになりますが、指定すると、アプリケーションのサービス名フィルターがオンになります。
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
コールバック関数がサーバー トランザクションを受信できないようにします。 システムは、トランザクションをこのアプリケーションに送信する各クライアントに DDE_FNOTPROCESSED を返します。 このフラグは、すべてのCBF_FAIL_フラグを結合することと同じです。
CBF_FAIL_ADVISES
0x00004000
コールバック関数が XTYP_ADVSTART および XTYP_ADVSTOP トランザクションを受け取らないようにします。 システムは、XTYP_ADVSTART または XTYP_ADVSTOP トランザクションをサーバーに送信する各クライアントに DDE_FNOTPROCESSED を返します。
CBF_FAIL_CONNECTIONS
0x00002000
コールバック関数が XTYP_CONNECT および XTYP_WILDCONNECT トランザクションを受け取らないようにします。
CBF_FAIL_EXECUTES
0x00008000
コールバック関数が XTYP_EXECUTE トランザクションを受け取らないようにします。 システムは、XTYP_EXECUTE トランザクションをサーバーに送信するクライアントに DDE_FNOTPROCESSED を返します。
CBF_FAIL_POKES
0x00010000
コールバック関数が XTYP_POKE トランザクションを受け取らないようにします。 システムは、XTYP_POKE トランザクションをサーバーに送信するクライアントに DDE_FNOTPROCESSED を返します。
CBF_FAIL_REQUESTS
0x00020000
コールバック関数が XTYP_REQUEST トランザクションを受け取らないようにします。 システムは、XTYP_REQUEST トランザクションをサーバーに送信するクライアントに DDE_FNOTPROCESSED を返します。
CBF_FAIL_SELFCONNECTIONS
0x00001000
コールバック関数が、アプリケーションの独自のインスタンスから XTYP_CONNECT トランザクションを受け取らないようにします。 このフラグにより、アプリケーションが独自のインスタンスとの DDE 会話を確立できなくなります。 アプリケーションは、それ自体の他のインスタンスと通信する必要があるが、それ自体とは通信しない場合は、このフラグを使用する必要があります。
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
コールバック関数が通知を受信できないようにします。 このフラグは、すべてのCBF_SKIP_フラグを結合することと同じです。
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
コールバック関数が XTYP_CONNECT_CONFIRM 通知を受信できないようにします。
CBF_SKIP_DISCONNECTS
0x00200000
コールバック関数が XTYP_DISCONNECT 通知を受信できないようにします。
CBF_SKIP_REGISTRATIONS
0x00080000
コールバック関数が XTYP_REGISTER 通知を受信できないようにします。
CBF_SKIP_UNREGISTRATIONS
0x00100000
コールバック関数が XTYP_UNREGISTER 通知を受信できないようにします。
MF_CALLBACKS
0x08000000
トランザクションがシステム内の任意の DDE コールバック関数に送信されるたびにコールバック関数に通知します。
MF_CONV
0x40000000
会話が確立または終了されるたびにコールバック関数に通知します。
MF_ERRORS
0x10000000
DDE エラーが発生するたびにコールバック関数に通知します。
MF_HSZ_INFO
0x01000000
DDE アプリケーションが文字列ハンドルの使用カウントを作成、解放、またはインクリメントするたびに、または DdeUninitialize 関数の呼び出しの結果として文字列ハンドルが解放されるたびにコールバック関数 通知します。
MF_LINKS
0x20000000
アドバイズ ループが開始または終了するたびにコールバック関数に通知します。
MF_POSTMSGS
0x04000000
システムまたはアプリケーションが DDE メッセージをポストするたびにコールバック関数に通知します。
MF_SENDMSGS
0x02000000
システムまたはアプリケーションが DDE メッセージを送信するたびにコールバック関数に通知します。

ulRes

型: DWORD

引っ込み思案;0 に設定する必要があります。

戻り値

型: UINT

関数が成功した場合、戻り値は DMLERR_NO_ERROR

関数が失敗した場合、戻り値は次のいずれかの値になります。

備考

DDEML の複数のインスタンスを使用するアプリケーションは、インスタンス間で DDEML オブジェクトを渡してはなりません。

DDE 監視アプリケーションは、同じアプリケーション インスタンスのコンテキスト内で DDE 操作 (会話の確立、トランザクションの発行など) を実行しないでください。

同期トランザクションは、同じタスクのインスタンスに既に進行中の同期トランザクションがある場合、DMLERR_REENTRANCY エラーで失敗します。

CBF_FAIL_ALLSVRXACTIONS フラグを指定すると、DDEML はすべてのサーバー トランザクションをフィルター処理し、ddeInitializeを する後続の呼び出しによって変更できます。 APPCMD_CLIENTONLY フラグを指定すると、DDEML はサーバーのキー リソースを作成できなくなります。また、ddeInitializeする後続の呼び出しでは変更できません。

ANSI バージョンと Unicode バージョンの ddeInitializeがあります。 呼び出されるバージョンによって、DDE 会話 (ANSI または Unicode) を制御するために使用されるウィンドウ プロシージャの種類と、CONVCONTEXT 構造体 (CP_WINANSI または CP_WINUNICODE) のメンバー iCodePage の既定値が決まります。

手記

ddeml.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DdeInitialize を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ddeml.h (Windows.h を含む)
ライブラリ User32.lib
DLL User32.dll

関連項目

動的な Data Exchange 管理ライブラリの概要 の