次の方法で共有


DdeCreateStringHandleW 関数 (ddeml.h)

指定した文字列を識別するハンドルを作成します。 Dynamic Data Exchange (DDE) クライアントまたはサーバー アプリケーションは、文字列ハンドルをパラメーターとして他の動的 Data Exchange 管理ライブラリ (DDEML) 関数に渡すことができます。

構文

HSZ DdeCreateStringHandleW(
  [in] DWORD   idInst,
  [in] LPCWSTR psz,
  [in] int     iCodePage
);

パラメーター

[in] idInst

型: DWORD

DdeInitialize 関数の前回の呼び出しによって取得されたアプリケーション インスタンス識別子。

[in] psz

型: LPTSTR

ハンドルを作成する null で終わる文字列。 この文字列は最大 255 文字です。 この制限の理由は、DDEML 文字列管理機能がアトムを使用して実装されるためです。

[in] iCodePage

型: int

文字列のレンダリングに使用するコード ページ。 この値は、クライアント アプリケーションによって ddeInitialize の ANSI バージョンと Unicode バージョンのどちらが呼び出されたかに応じて、CP_WINANSI (既定のコード ページ) またはCP_WINUNICODE する必要があります。

戻り値

型: HSZ

関数が成功した場合、戻り値は文字列ハンドルです。

関数が失敗した場合、戻り値は 0L です。

DdeGetLastError 関数を使用してエラー コードを取得できます。エラー コードは、次のいずれかの値になります。

備考

文字列ハンドルの値は、識別する文字列の大文字と小文字は関係ありません。

アプリケーションが文字列ハンドルを作成するか、コールバック関数で文字列ハンドルを受け取り、DdeKeepStringHandle 関数を使用して保持する場合、アプリケーションは不要になったときにその文字列ハンドルを解放する必要があります。

インスタンス固有の文字列ハンドルは、文字列ハンドルから文字列ハンドルにマップしたり、文字列ハンドルに戻したりすることはできません。 これは次の例で示します。この例では、DdeQueryString 関数が文字列ハンドルから文字列を作成し、その文字列から文字列ハンドルを作成 DdeCreateStringHandle しますが、2 つのハンドルは同じではありません。

DWORD idInst; 
DWORD cb; 
HSZ hszInst, hszNew; 
PSZ pszInst; 
 
DdeQueryString(idInst, hszInst, pszInst, cb, CP_WINANSI); 
hszNew = DdeCreateStringHandle(idInst, pszInst, CP_WINANSI); 
// hszNew != hszInst ! 

手記

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

必要条件

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

関連項目

概念

DdeAccessData の

DdeCmpStringHandles の

DdeFreeStringHandle を する

DdeInitialize

DdeKeepStringHandle を する

DdeQueryString の

動的データ交換管理ライブラリの を する

リファレンス