c'est un main.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
 
 
#include "stdafx.h"
#include <iostream>
# include <wab.h>
typedef HRESULT (WINAPI *fWABOpen)(LPADRBOOK*,LPWABOBJECT*,LPWAB_PARAM,DWORD);
 
using namespace std;
 
int main()
{
	HRESULT hRes;
	LPADRBOOK lpAdrBook;
	LPWABOBJECT lpWABObject;
	LPWAB_PARAM lpWABParam = NULL;
	DWORD Reserved2 = NULL;
 
	HINSTANCE hinstLib;
	hinstLib = LoadLibrary("C:\\Documents and Settings\\Administrateur\\Mes documents\\downloads\\wab32.dll");
	fWABOpen procWABOpen;
 
	if (hinstLib != NULL)
	{
		procWABOpen = (fWABOpen) GetProcAddress(hinstLib, "WABOpen"); 
 
		if (procWABOpen != NULL)
		{
			hRes = (procWABOpen)(&lpAdrBook,&lpWABObject,NULL,Reserved2);
			_ASSERTE(hRes == S_OK);
			if (hRes != S_OK) exit(1);
 
			//lpWABObject->Find(lpAdrBook,NULL);
			ULONG lpcbEntryID;
			ENTRYID *lpEntryID;
			hRes = lpAdrBook->GetPAB(
				&lpcbEntryID,
				&lpEntryID
			);
			_ASSERTE(hRes == S_OK);
			if (hRes != S_OK) exit(2);
 
			ULONG ulFlags = MAPI_BEST_ACCESS;
			ULONG ulObjType = NULL;
			LPUNKNOWN lpUnk = NULL;
			hRes = lpAdrBook->OpenEntry(
				lpcbEntryID,
				lpEntryID,
				NULL,
				ulFlags,
				&ulObjType,
				&lpUnk
			);
 
			ulFlags = NULL;
			//IABTable *lpTable;
 
			if (ulObjType == MAPI_ABCONT)/* MAPI_ABCONT = Address Book Container */
			{
				IABContainer *lpContainer = static_cast <IABContainer *>(lpUnk);
				LPMAPITABLE lpTable = NULL;
				hRes = lpContainer->GetContentsTable(
					ulFlags,
					&lpTable
				);
				_ASSERT(lpTable);
				ULONG ulRows;
				hRes = lpTable->GetRowCount(0,&ulRows);
				_ASSERTE(hRes == S_OK);
				cout << "Rows " << ulRows << endl;
				SRowSet *lpRows;
 
				hRes = lpTable->QueryRows(
					ulRows,		// Get all Rows
					0,
					&lpRows
				);
				for(ULONG i=0;i<lpRows->cRows;i++)
				{
					SRow *lpRow = &lpRows->aRow[i];
					cout << i << " : " << lpRow->cValues << endl;
					for(ULONG j=0;j<lpRow->cValues;j++)
					{
						SPropValue *lpProp = &lpRow->lpProps[j];
						cout << "\t" << j << " : " << (void*)lpProp->ulPropTag << " : ";
 
						if (lpProp->ulPropTag == PR_DISPLAY_NAME_A)
							cout << "Display Name: " << lpProp->Value.lpszA;
						if (lpProp->ulPropTag == PR_EMAIL_ADDRESS_A)
							cout << "Email Address: " << lpProp->Value.lpszA;
						if (lpProp->ulPropTag == PR_NICKNAME_A)
							cout << "Nickname: " << lpProp->Value.lpszA;
						if (lpProp->ulPropTag == PR_ADDRTYPE_A )
							cout << "Addrtype: " << lpProp->Value.lpszA;
					    if (lpProp->ulPropTag == PR_COMPANY_NAME_A)
							cout << "home page: " << lpProp->Value.lpszA;
						cout << endl;
					}
					lpWABObject->FreeBuffer(lpRow);
				}
				lpWABObject->FreeBuffer(lpRows);
			}
		}
		FreeLibrary(hinstLib);
	}
	getchar();
	return 0;
}
je veux avoir tout les infos c'est pour cela j'ai ajouté par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 f (lpProp->ulPropTag == PR_HOME_TELEPHONE_NUMBER_A )
							cout << "home telephone number: " << lpProp->Value.lpszA;
ça n'affiche pas le numéro de télephone de la maison malgré que je l'ai remplie pour tout les contacts(en fait j'ai tout remplie pour tout)!!
mais il n'affiche aucun champs supplémentaire!!
prq??