Article ID: 183249
Article Last Modified on 8/18/2005
#include <MAPIUTIL.H>
#include "edkutils.h"
#define FAILURE -1
int main( void )
{
LPADRBOOK lpAdrBook;
LPMAPISESSION pSession = NULL;
HRESULT hRes = 0;
ULONG ulObjType = 0;
LPMAPIPROP lpEntry = NULL;
FLAGS flFlags = MAPI_ALLOW_OTHERS | MAPI_EXTENDED;
ULONG cbeid;
LPENTRYID peid = NULL;
ULONG ulValues;
LPSPropValue pPropValues = NULL;
// Recipient name.
char* szExName ="/o=BIGOPERA/ou=TURANDOT/cn=Recipients/cn=RobertoC";
char* szNewalias = "CarlosA";
// Initialize MAPI.
hRes = MAPIInitialize( NULL );
if ( FAILED( hRes ) )
throw (FAILURE);
// Logon to MAPI.
hRes = MAPILogonEx( 0, "Galileo Galilei", NULL,
flFlags, &pSession );
if ( FAILED( hRes ) )
throw (FAILURE);
// Open the address book.
hRes=pSession->OpenAddressBook(0, 0, MAPI_ACCESS_MODIFY,
&lpAdrBook );
if ( FAILED( hRes ) )
throw (FAILURE);
// Obtain the entry id for the recipient object.
hRes = HrCreateDirEntryIdEx(lpAdrBook, szExName, &cbeid, &peid);
if ( FAILED( hRes ) )
throw (FAILURE);
// Now open the recipient object.
hRes = lpAdrBook->OpenEntry( cbeid, peid, NULL,
MAPI_MODIFY, &ulObjType,
(LPUNKNOWN*) &lpEntry );
if ( FAILED( hRes ) )
throw (FAILURE);
// Get the properties.
hRes = ((IMAPIProp *) lpEntry)->GetProps( NULL,
0,
&ulValues,
&pPropValues );
if ( FAILED( hRes ) )
throw (FAILURE);
// Modify alias name for recipient.
for ( ULONG ul = 0; ul < ulValues; ul++ )
{
if ( 0x3A00001E == pPropValues[ul].ulPropTag )
{
// Modify property.
pPropValues[ul].Value.lpszA = szNewalias;
// Set properties.
hRes = ((IMAPIProp *) lpEntry)->SetProps( 1,
&pPropValues[ul],
NULL );
if ( FAILED( hRes ) )
throw (FAILURE);
// Save changes.
hRes = ((IMAPIProp *) lpEntry)->SaveChanges( 0 );
if ( FAILED( hRes ) )
throw (FAILURE);
break;
}
}
return 0;
}
Keywords: kbhowto kbapi kbmsg kbcode KB183249