次の方法で共有


DdeCreateStringHandleW 関数 (ddeml.h)

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

構文

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

パラメーター

[in] idInst

型: DWORD

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

[in] psz

種類: LPTSTR

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

[in] iCodePage

型: int

文字列のレンダリングに使用するコード ページ。 この値は、クライアント アプリケーションによって ANSI バージョンまたは Unicode バージョンの DdeInitialize が呼び出されたかどうかに応じて、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 ! 

Note

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

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ddeml.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

概念

DdeAccessData

DdeCmpStringHandles

DdeFreeStringHandle

DdeInitialize

DdeKeepStringHandle

DdeQueryString

動的データ交換管理ライブラリ

参照