You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.6 KiB
120 lines
4.6 KiB
#include <faxutil.h>
|
|
|
|
|
|
//*********************************************************************************
|
|
//* Personal Profile Functions
|
|
//*********************************************************************************
|
|
|
|
//*********************************************************************************
|
|
//* Name: CopyPersonalProfile()
|
|
//* Author: Ronen Barenboim
|
|
//* Date:
|
|
//*********************************************************************************
|
|
//* DESCRIPTION:
|
|
//* Creates a new copy of a FAX_PERSONAL_PROFILEW structure.
|
|
//* It duplicates all the strings.
|
|
//*
|
|
//* PARAMETERS:
|
|
//* [IN] PFAX_PERSONAL_PROFILE lpDstProfile
|
|
//* A pointer to destination personal profile structure.
|
|
//*
|
|
//* [OUT] LPCFAX_PERSONAL_PROFILE lpcSrcProfile.
|
|
//* A pointer to the source personal profile to copy.
|
|
//*
|
|
//* RETURN VALUE:
|
|
//* TRUE
|
|
//* If the operation succeeded.
|
|
//* FALSE
|
|
//* If the operation failed.
|
|
//*********************************************************************************
|
|
BOOL CopyPersonalProfile(
|
|
PFAX_PERSONAL_PROFILE lpDstProfile,
|
|
LPCFAX_PERSONAL_PROFILE lpcSrcProfile
|
|
)
|
|
{
|
|
STRING_PAIR pairs[] =
|
|
{
|
|
{ lpcSrcProfile->lptstrName, &lpDstProfile->lptstrName},
|
|
{ lpcSrcProfile->lptstrFaxNumber, &lpDstProfile->lptstrFaxNumber},
|
|
{ lpcSrcProfile->lptstrCompany, &lpDstProfile->lptstrCompany},
|
|
{ lpcSrcProfile->lptstrStreetAddress, &lpDstProfile->lptstrStreetAddress},
|
|
{ lpcSrcProfile->lptstrCity, &lpDstProfile->lptstrCity},
|
|
{ lpcSrcProfile->lptstrState, &lpDstProfile->lptstrState},
|
|
{ lpcSrcProfile->lptstrZip, &lpDstProfile->lptstrZip},
|
|
{ lpcSrcProfile->lptstrCountry, &lpDstProfile->lptstrCountry},
|
|
{ lpcSrcProfile->lptstrTitle, &lpDstProfile->lptstrTitle},
|
|
{ lpcSrcProfile->lptstrDepartment, &lpDstProfile->lptstrDepartment},
|
|
{ lpcSrcProfile->lptstrOfficeLocation, &lpDstProfile->lptstrOfficeLocation},
|
|
{ lpcSrcProfile->lptstrHomePhone, &lpDstProfile->lptstrHomePhone},
|
|
{ lpcSrcProfile->lptstrOfficePhone, &lpDstProfile->lptstrOfficePhone},
|
|
{ lpcSrcProfile->lptstrEmail, &lpDstProfile->lptstrEmail},
|
|
{ lpcSrcProfile->lptstrBillingCode, &lpDstProfile->lptstrBillingCode},
|
|
{ lpcSrcProfile->lptstrTSID, &lpDstProfile->lptstrTSID}
|
|
};
|
|
|
|
int nRes;
|
|
|
|
|
|
DEBUG_FUNCTION_NAME(TEXT("CopyPersonalProfile"));
|
|
Assert(lpDstProfile);
|
|
Assert(lpcSrcProfile);
|
|
|
|
nRes=MultiStringDup(pairs, sizeof(pairs)/sizeof(STRING_PAIR));
|
|
if (nRes!=0) {
|
|
// MultiStringDup takes care of freeing the memory for the pairs for which the copy succeeded
|
|
DebugPrintEx(DEBUG_ERR,TEXT("Failed to copy string with index %d"),nRes-1);
|
|
return FALSE;
|
|
}
|
|
|
|
lpDstProfile->dwSizeOfStruct=lpcSrcProfile->dwSizeOfStruct;
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
//*********************************************************************************
|
|
//* Name: FreePersonalProfile()
|
|
//* Author: Ronen Barenboim
|
|
//* Date:
|
|
//*********************************************************************************
|
|
//* DESCRIPTION:
|
|
//* Frees the contents of a FAX_PERSONAL_PROFILEW structure.
|
|
//* Deallocates the strucutre itself if required.
|
|
//* PARAMETERS:
|
|
//* [IN] PFAX_PERSONAL_PROFILE lpProfile
|
|
//* The structure whose content is to be freed.
|
|
//*
|
|
//* [IN] BOOL bDestroy
|
|
//* If this parameter is TRUE the function will
|
|
//* deallocate the structure itself.
|
|
//*
|
|
//* RETURN VALUE:
|
|
//* VOID
|
|
//*********************************************************************************
|
|
void FreePersonalProfile (
|
|
PFAX_PERSONAL_PROFILE lpProfile,
|
|
BOOL bDestroy
|
|
)
|
|
{
|
|
DEBUG_FUNCTION_NAME(TEXT("FreePersonalProfile"));
|
|
Assert(lpProfile);
|
|
|
|
MemFree(lpProfile->lptstrName);
|
|
MemFree(lpProfile->lptstrFaxNumber);
|
|
MemFree(lpProfile->lptstrCompany);
|
|
MemFree(lpProfile->lptstrStreetAddress);
|
|
MemFree(lpProfile->lptstrCity);
|
|
MemFree(lpProfile->lptstrState);
|
|
MemFree(lpProfile->lptstrZip);
|
|
MemFree(lpProfile->lptstrCountry);
|
|
MemFree(lpProfile->lptstrTitle);
|
|
MemFree(lpProfile->lptstrDepartment);
|
|
MemFree(lpProfile->lptstrOfficeLocation);
|
|
MemFree(lpProfile->lptstrHomePhone);
|
|
MemFree(lpProfile->lptstrOfficePhone);
|
|
MemFree(lpProfile->lptstrEmail);
|
|
MemFree(lpProfile->lptstrBillingCode);
|
|
MemFree(lpProfile->lptstrTSID);
|
|
if (bDestroy) {
|
|
MemFree(lpProfile);
|
|
}
|
|
}
|