Bagikan melalui


Fungsi DdeInitializeA (ddeml.h)

Mendaftarkan aplikasi dengan Dynamic Data Exchange Management Library (DDEML). Aplikasi harus memanggil fungsi ini sebelum memanggil fungsi Dynamic Data Exchange Management Library (DDEML) lainnya.

Sintaks

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

Parameter

[in, out] pidInst

Jenis: LPDWORD

Pengidentifikasi instans aplikasi. Pada inisialisasi, parameter ini harus menunjuk ke 0. Jika fungsi berhasil, parameter ini menunjuk ke pengidentifikasi instans untuk aplikasi. Nilai ini harus diteruskan sebagai parameter idInst di semua fungsi DDEML lainnya yang memerlukannya. Jika aplikasi menggunakan beberapa instans pustaka tautan dinamis (DLL) DDEML, aplikasi harus menyediakan fungsi panggilan balik yang berbeda untuk setiap instans.

Jika pidInst menunjuk ke nilai bukan nol, reinisialisasi DDEML tersirat. Dalam hal ini, pidInst harus menunjuk ke pengidentifikasi instans aplikasi yang valid.

[in] pfnCallback

Jenis: PFNCALLBACK

Penunjuk ke fungsi panggilan balik DDE yang ditentukan aplikasi. Fungsi ini memproses transaksi DDE yang dikirim oleh sistem. Untuk informasi selengkapnya, lihat fungsi panggilan balik DdeCallback .

[in] afCmd

Jenis: DWORD

Satu set bendera APPCMD_, CBF_, dan MF_ . Bendera APPCMD_ memberikan instruksi khusus untuk DdeInitialize. Bendera CBF_ menentukan filter yang mencegah jenis transaksi tertentu mencapai fungsi panggilan balik. Bendera MF_ menentukan jenis aktivitas DDE yang dipantau oleh aplikasi pemantauan DDE. Menggunakan bendera ini meningkatkan performa aplikasi DDE dengan menghilangkan panggilan yang tidak perlu ke fungsi panggilan balik.

Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
APPCLASS_MONITOR
0x00000001L
Memungkinkan aplikasi untuk memantau aktivitas DDE dalam sistem. Bendera ini untuk digunakan oleh aplikasi pemantauan DDE. Aplikasi menentukan jenis aktivitas DDE untuk dipantau dengan menggabungkan satu atau beberapa bendera monitor dengan bendera APPCLASS_MONITOR . Untuk detailnya, lihat bagian Keterangan berikut ini.
APPCLASS_STANDARD
0x00000000L
Mendaftarkan aplikasi sebagai aplikasi DDEML standar (nonmonitoring).
APPCMD_CLIENTONLY
0x00000010L
Mencegah aplikasi menjadi server dalam percakapan DDE. Aplikasi hanya dapat menjadi klien. Bendera ini mengurangi konsumsi sumber daya oleh DDEML. Ini termasuk fungsionalitas bendera CBF_FAIL_ALLSVRXACTIONS .
APPCMD_FILTERINITS
0x00000020L
Mencegah DDEML mengirim XTYP_CONNECT dan XTYP_WILDCONNECT transaksi ke aplikasi sampai aplikasi telah membuat handel string-nya dan mendaftarkan nama layanannya atau telah menonaktifkan pemfilteran dengan panggilan berikutnya ke fungsi DdeNameService atau DdeInitialize . Bendera ini selalu berlaku ketika aplikasi memanggil DdeInitialize untuk pertama kalinya, terlepas dari apakah aplikasi menentukan bendera. Pada panggilan berikutnya ke DdeInitialize, tidak menentukan bendera ini menonaktifkan filter nama layanan aplikasi, tetapi menentukannya akan mengaktifkan filter nama layanan aplikasi.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Mencegah fungsi panggilan balik menerima transaksi server. Sistem mengembalikan DDE_FNOTPROCESSED ke setiap klien yang mengirim transaksi ke aplikasi ini. Bendera ini setara dengan menggabungkan semua bendera CBF_FAIL_.
CBF_FAIL_ADVISES
0x00004000
Mencegah fungsi panggilan balik menerima transaksi XTYP_ADVSTART dan XTYP_ADVSTOP . Sistem mengembalikan DDE_FNOTPROCESSED ke setiap klien yang mengirim transaksi XTYP_ADVSTART atau XTYP_ADVSTOP ke server.
CBF_FAIL_CONNECTIONS
0x00002000
Mencegah fungsi panggilan balik menerima transaksi XTYP_CONNECT dan XTYP_WILDCONNECT .
CBF_FAIL_EXECUTES
0x00008000
Mencegah fungsi panggilan balik menerima transaksi XTYP_EXECUTE . Sistem mengembalikan DDE_FNOTPROCESSED ke klien yang mengirim transaksi XTYP_EXECUTE ke server.
CBF_FAIL_POKES
0x00010000
Mencegah fungsi panggilan balik menerima transaksi XTYP_POKE . Sistem mengembalikan DDE_FNOTPROCESSED ke klien yang mengirim transaksi XTYP_POKE ke server.
CBF_FAIL_REQUESTS
0x00020000
Mencegah fungsi panggilan balik menerima transaksi XTYP_REQUEST . Sistem mengembalikan DDE_FNOTPROCESSED ke klien yang mengirim transaksi XTYP_REQUEST ke server.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Mencegah fungsi panggilan balik menerima transaksi XTYP_CONNECT dari instans aplikasi itu sendiri. Bendera ini mencegah aplikasi membuat percakapan DDE dengan instansnya sendiri. Aplikasi harus menggunakan bendera ini jika perlu berkomunikasi dengan instans lain itu sendiri tetapi tidak dengan dirinya sendiri.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
Mencegah fungsi panggilan balik menerima pemberitahuan apa pun. Bendera ini setara dengan menggabungkan semua bendera CBF_SKIP_.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
Mencegah fungsi panggilan balik menerima pemberitahuan XTYP_CONNECT_CONFIRM .
CBF_SKIP_DISCONNECTS
0x00200000
Mencegah fungsi panggilan balik menerima pemberitahuan XTYP_DISCONNECT .
CBF_SKIP_REGISTRATIONS
0x00080000
Mencegah fungsi panggilan balik menerima pemberitahuan XTYP_REGISTER .
CBF_SKIP_UNREGISTRATIONS
0x00100000
Mencegah fungsi panggilan balik menerima pemberitahuan XTYP_UNREGISTER .
MF_CALLBACKS
0x08000000
Memberi tahu fungsi panggilan balik setiap kali transaksi dikirim ke fungsi panggilan balik DDE apa pun dalam sistem.
MF_CONV
0x40000000
Memberi tahu fungsi panggilan balik setiap kali percakapan dibuat atau dihentikan.
MF_ERRORS
0x10000000
Memberi tahu fungsi panggilan balik setiap kali terjadi kesalahan DDE.
MF_HSZ_INFO
0x01000000
Memberi tahu fungsi panggilan balik setiap kali aplikasi DDE membuat, membebaskan, atau menaikkan jumlah penggunaan handel string atau setiap kali handel string dibebaskan sebagai akibat dari panggilan ke fungsi DdeUninitialize .
MF_LINKS
0x20000000
Memberi tahu fungsi panggilan balik setiap kali perulangan saran dimulai atau berakhir.
MF_POSTMSGS
0x04000000
Memberi tahu fungsi panggilan balik setiap kali sistem atau aplikasi memposting pesan DDE.
MF_SENDMSGS
0x02000000
Memberi tahu fungsi panggilan balik setiap kali sistem atau aplikasi mengirim pesan DDE.

ulRes

Jenis: DWORD

Dipesan; harus diatur ke nol.

Mengembalikan nilai

Jenis: UINT

Jika fungsi berhasil, nilai yang dikembalikan adalah DMLERR_NO_ERROR.

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu nilai berikut:

Keterangan

Aplikasi yang menggunakan beberapa instans DDEML tidak boleh melewati objek DDEML antar instans.

Aplikasi pemantauan DDE tidak boleh mencoba melakukan operasi DDE (membuat percakapan, mengeluarkan transaksi, dan sebagainya) dalam konteks instans aplikasi yang sama.

Transaksi sinkron gagal dengan kesalahan DMLERR_REENTRANCY jika ada instans tugas yang sama yang memiliki transaksi sinkron yang sudah berlangsung.

Bendera CBF_FAIL_ALLSVRXACTIONS menyebabkan DDEML memfilter semua transaksi server dan dapat diubah dengan panggilan berikutnya ke DdeInitialize. Bendera APPCMD_CLIENTONLY mencegah DDEML membuat sumber daya utama untuk server dan tidak dapat diubah oleh panggilan berikutnya ke DdeInitialize.

Ada versi ANSI dan versi Unicode dari DdeInitialize. Versi yang disebut menentukan jenis prosedur jendela yang digunakan untuk mengontrol percakapan DDE (ANSI atau Unicode), dan nilai default untuk anggota iCodePage dari struktur CONVCONTEXT (CP_WINANSI atau CP_WINUNICODE).

Catatan

Header ddeml.h mendefinisikan DdeInitialize sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header ddeml.h (termasuk Windows.h)
Pustaka User32.lib
DLL User32.dll

Lihat juga

Gambaran Umum Pustaka Manajemen Data Exchange Dinamis