Bagikan melalui


Fungsi panggilan balik MAPIADDRESS (mapi.h)

[Penggunaan fungsi ini tidak dianjurkan. Ini bisa diubah atau tidak tersedia dalam versi Windows berikutnya.]

Fungsi MAPIAddress membuat atau memodifikasi sekumpulan entri daftar alamat.

Sintaks

MAPIADDRESS Mapiaddress;

ULONG Mapiaddress(
  [in]  LHANDLE lhSession,
  [in]  ULONG_PTR ulUIParam,
  [in]  LPSTR lpszCaption,
  [in]  ULONG nEditFields,
  [in]  LPSTR lpszLabels,
  [in]  ULONG nRecips,
  [in]  lpMapiRecipDesc lpRecips,
  [in]  FLAGS flFlags,
        ULONG ulReserved,
  [out] LPULONG lpnNewRecips,
        lpMapiRecipDesc *lppNewRecips
)
{...}

Parameter

[in] lhSession

Handel sesi yang mewakili sesi MAPI Sederhana atau nol. Jika nilai parameter lhSession adalah nol, MAPI mencatat pengguna dan membuat sesi yang hanya ada selama panggilan. Sesi sementara ini bisa menjadi sesi bersama yang sudah ada atau sesi baru. Jika perlu, kotak dialog masuk ditampilkan.

[in] ulUIParam

Handel jendela induk atau nol, menunjukkan bahwa jika kotak dialog ditampilkan, itu adalah modal aplikasi. Jika parameter ulUIParam berisi handel jendela induk, parameter tersebut berjenis HWND (dilemparkan ke ULONG_PTR). Jika tidak ada kotak dialog yang ditampilkan selama panggilan, ulUIParam diabaikan.

[in] lpszCaption

Arahkan ke caption untuk kotak dialog daftar alamat, NULL, atau string kosong. Ketika parameter lpszCaptionadalah NULL atau menunjuk ke string kosong, MAPIAddress menggunakan caption default "Buku Alamat."

[in] nEditFields

Jumlah kontrol edit yang harus ada dalam daftar alamat. Nilai 0 sampai 4 valid. Jika nilai parameter nEditFields adalah 4, setiap kelas penerima yang didukung oleh sistem olahpesan yang mendasar memiliki kontrol edit. Jika nilai nEditFields nol, hanya penjelajahan daftar alamat yang dimungkinkan. Nilai 1, 2, atau 3 mengontrol jumlah kontrol edit yang ada. Namun, jika jumlah kelas penerima dalam array yang ditunjukkan oleh parameter lpRecips lebih besar dari nilai nEditFields, jumlah kelas di lpRecips digunakan untuk menunjukkan jumlah kontrol edit alih-alih nilai nEditFields. Jika nilai nEditFields adalah 1 dan lebih dari satu jenis entri ada di lpRecips, maka parameter lpszLabels diabaikan. Entri yang dipilih untuk kontrol yang berbeda dibedakan oleh anggota ulRecipClass dalam struktur penerima yang dikembalikan.

[in] lpszLabels

Penunjuk ke string yang akan digunakan sebagai label kontrol edit dalam kotak dialog daftar alamat. Ketika parameter nEditFields diatur ke nilai apa pun selain 1, parameter lpszLabels diabaikan dan harus NULL atau menunjuk ke string kosong. Selain itu, jika pemanggil memerlukan label kontrol default "Ke," lpszLabels harus NULL atau mengarah ke string kosong.

[in] nRecips

Jumlah entri dalam array yang ditunjukkan oleh parameter lpRecips . Jika nilai parameter nRecips adalah nol, lpRecips diabaikan.

[in] lpRecips

Penunjuk ke array struktur MapiRecipDesc yang menentukan entri penerima awal yang akan digunakan untuk mengisi kotak dialog daftar alamat. Entri tidak perlu dikelompokkan menurut kelas penerima; mereka dibedakan oleh nilai anggota ulRecipClass dari struktur MapiRecipDesc dalam array. Jika jumlah kelas penerima yang berbeda lebih besar dari nilai yang ditunjukkan oleh parameter nEditFields , parameter nEditFields dan lpszLabels diabaikan.

[in] flFlags

Bitmask dari bendera opsi. Bendera berikut dapat diatur.

Nilai Makna
MAPI_LOGON_UI
Kotak dialog harus ditampilkan untuk meminta pengguna untuk masuk jika diperlukan. Ketika bendera MAPI_LOGON_UI tidak diatur, aplikasi klien tidak menampilkan kotak dialog masuk dan mengembalikan nilai kesalahan jika pengguna tidak masuk.
MAPI_NEW_SESSION
Upaya harus dilakukan untuk membuat sesi baru daripada memperoleh sesi bersama lingkungan. Jika bendera MAPI_NEW_SESSION tidak diatur, MAPIAddress menggunakan sesi bersama yang ada.

ulReserved

Dipesan; harus nol.

[out] lpnNewRecips

Arahkan ke jumlah entri dalam array output penerima lppNewRecips . Jika nilai parameter lpnNewRecips adalah nol, parameter lppNewRecips diabaikan.

lppNewRecips

Menampilkan nilai

Fungsi ini mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
MAPI_E_FAILURE
Terjadi satu atau beberapa kesalahan yang tidak ditentukan saat menangani pesan. Tidak ada daftar entri penerima yang dikembalikan.
MAPI_E_INSUFFICIENT_MEMORY
Memori tidak cukup untuk melanjutkan. Tidak ada daftar entri penerima yang dikembalikan.
MAPI_E_INVALID_EDITFIELDS
Nilai parameter nEditFields berada di luar rentang 0 hingga 4. Tidak ada daftar entri penerima yang dikembalikan.
MAPI_E_INVALID_RECIPS
Satu atau beberapa penerima dalam daftar alamat tidak valid. Tidak ada daftar entri penerima yang dikembalikan.
MAPI_E_INVALID_SESSION
Handel sesi yang tidak valid digunakan untuk parameter lhSession . Tidak ada daftar entri penerima yang dikembalikan.
MAPI_E_LOGIN_FAILURE
Tidak ada log masuk default, dan pengguna gagal masuk dengan sukses ketika kotak dialog masuk ditampilkan. Tidak ada daftar entri penerima yang dikembalikan.
MAPI_E_NOT_SUPPORTED
Operasi ini tidak didukung oleh sistem olahpesan yang mendasar.
MAPI_E_USER_ABORT
Pengguna membatalkan salah satu kotak dialog. Tidak ada daftar entri penerima yang dikembalikan.
SUCCESS_SUCCESS
Panggilan berhasil dan daftar entri penerima dikembalikan.

Keterangan

Fungsi MAPIAddress menampilkan kotak dialog daftar alamat standar untuk memperlihatkan sekumpulan awal nol atau lebih penerima. Pengguna dapat memilih entri baru untuk ditambahkan ke set atau membuat perubahan pada entri yang ada. Kotak dialog ini tidak dapat ditekan, tetapi penelepon dapat mengatur karakteristik kotak dialog. Kumpulan penerima yang diubah dikembalikan ke pemanggil.

Sebelum MAPIAddress menulis informasi penerima baru atau yang diubah, MAPIAddress harus mengalokasikan memori untuk array struktur yang akan berisi informasi. Memori juga dialokasikan sebagai bagian dari pramuat buku alamat, terlepas dari apakah data penerima baru atau yang diubah ditulis. Aplikasi klien harus memanggil fungsi MAPIFreeBuffer untuk membebaskan memori ini setelah MAPIAddress kembali. Jika terjadi kesalahan, tidak ada memori yang dialokasikan dan klien tidak perlu memanggil MAPIFreeBuffer.

Persyaratan

   
Target Platform Windows
Header mapi.h

Lihat juga

MAPIFreeBuffer

MAPILogon

MapiRecipDesc

MAPI Sederhana