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.
177 lines
4.8 KiB
177 lines
4.8 KiB
|
|
//#--------------------------------------------------------------
|
|
//
|
|
// File: support.cpp
|
|
//
|
|
// Synopsis: holds the member functions for the support
|
|
// class
|
|
//
|
|
// History: 5/8/97 MKarki Created
|
|
//
|
|
// Copyright (C) 1996-97 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
//----------------------------------------------------------------
|
|
#include "stdafx.h"
|
|
|
|
//++--------------------------------------------------------------
|
|
//
|
|
// Function: GetSupportInfo
|
|
//
|
|
// Synopsis: This is the public member function used to get the
|
|
// support numbers
|
|
//
|
|
// Returns: BOOL - success/failure
|
|
//
|
|
// Arguments: PCHAR - returns the number
|
|
//
|
|
// History: MKarki Created 5/8/97
|
|
//
|
|
//----------------------------------------------------------------
|
|
BOOL
|
|
CSupport :: GetSupportInfo
|
|
(
|
|
LPTSTR pszNumber,
|
|
DWORD dwCountryID
|
|
)
|
|
{
|
|
HINSTANCE hPHBKDll = NULL;
|
|
DWORD dwBufferSize = 0;
|
|
BOOL bRetVal = FALSE;
|
|
PFNGETSUPPORTNUMBERS pfnSupport = NULL;
|
|
HRESULT hr = ERROR_SUCCESS;
|
|
DWORD dwTotalNums = 0;
|
|
DWORD dwIndex = 0;
|
|
|
|
|
|
TraceMsg (TF_GENERAL, TEXT("Entering CSupport :: GetSupportInfo\r\n"));
|
|
|
|
if (NULL == pszNumber)
|
|
{
|
|
TraceMsg (TF_GENERAL, TEXT("NULL = pszNumber\r\n"));
|
|
goto Cleanup;
|
|
}
|
|
|
|
|
|
|
|
if (NULL == m_pSupportNumList)
|
|
{
|
|
//
|
|
// being called the first time so load the info
|
|
//
|
|
hPHBKDll = LoadLibrary(PHBK_LIB);
|
|
if (NULL == hPHBKDll)
|
|
{
|
|
TraceMsg (TF_GENERAL, TEXT("Failed on LoadLibrary API call with error:%d\r\n"),
|
|
GetLastError () );
|
|
goto Cleanup;
|
|
}
|
|
|
|
pfnSupport = (PFNGETSUPPORTNUMBERS)
|
|
GetProcAddress(hPHBKDll,PHBK_SUPPORTNUMAPI);
|
|
if (NULL == pfnSupport)
|
|
{
|
|
TraceMsg (TF_GENERAL, TEXT("Failed on GetProcAddress API call with error:%d\r\n"),
|
|
GetLastError () );
|
|
goto Cleanup;
|
|
}
|
|
|
|
//
|
|
// call the first time to get the size needed
|
|
//
|
|
hr = pfnSupport ((PSUPPORTNUM)NULL, (PDWORD)&dwBufferSize);
|
|
if (ERROR_SUCCESS != hr)
|
|
{
|
|
TraceMsg (TF_GENERAL, TEXT("Failed on GetSupportNumbers API call with error:%d\r\n"),
|
|
hr);
|
|
goto Cleanup;
|
|
}
|
|
|
|
//
|
|
// allocate the required memory
|
|
//
|
|
m_pSupportNumList = (PSUPPORTNUM) GlobalAlloc (
|
|
GPTR,
|
|
dwBufferSize
|
|
);
|
|
if (NULL == m_pSupportNumList)
|
|
{
|
|
TraceMsg (TF_GENERAL, TEXT("Failed on GlobalAlloc API call with error:%d\r\n"),
|
|
GetLastError ());
|
|
goto Cleanup;
|
|
}
|
|
|
|
|
|
//
|
|
// call second time for the info
|
|
//
|
|
hr = pfnSupport ((PSUPPORTNUM)m_pSupportNumList, (PDWORD)&dwBufferSize);
|
|
if (ERROR_SUCCESS != hr)
|
|
{
|
|
TraceMsg (TF_GENERAL, TEXT("Failed on GetSupportNumbers API call with error:%d\r\n"),
|
|
hr);
|
|
goto Cleanup;
|
|
}
|
|
|
|
//
|
|
// find out how many SUPPORTNUM structs we have in the
|
|
// array
|
|
m_dwTotalNums = dwBufferSize / sizeof (SUPPORTNUM);
|
|
|
|
}
|
|
|
|
|
|
//
|
|
// get the current country code
|
|
//
|
|
for (dwIndex = 0; dwIndex < m_dwTotalNums; dwIndex++)
|
|
{
|
|
//
|
|
// this struct says countrycode but is actually countryID
|
|
//
|
|
if (m_pSupportNumList[dwIndex].dwCountryCode == dwCountryID)
|
|
{
|
|
//
|
|
// found a support phone number
|
|
//
|
|
CopyMemory (
|
|
pszNumber,
|
|
m_pSupportNumList[dwIndex].szPhoneNumber,
|
|
sizeof (m_pSupportNumList[dwIndex].szPhoneNumber)
|
|
);
|
|
bRetVal = TRUE;
|
|
goto Cleanup;
|
|
}
|
|
}
|
|
|
|
Cleanup:
|
|
if (NULL != hPHBKDll)
|
|
FreeLibrary (hPHBKDll);
|
|
|
|
TraceMsg (TF_GENERAL, TEXT("returning from CSupport :: GetSupportInfo function\r\n"));
|
|
|
|
return (bRetVal);
|
|
|
|
} // end of CSupport :: GetSupportInfo function
|
|
|
|
//++--------------------------------------------------------------
|
|
//
|
|
// Function: ~CSupport
|
|
//
|
|
// Synopsis: This is the destructor of the CSupport class
|
|
//
|
|
//
|
|
// Arguments: VOID
|
|
//
|
|
// History: MKarki Created 5/8/97
|
|
//
|
|
//----------------------------------------------------------------
|
|
CSupport :: ~CSupport (
|
|
VOID
|
|
)
|
|
{
|
|
if (NULL != m_pSupportNumList)
|
|
GlobalFree (m_pSupportNumList);
|
|
|
|
} // end of ~CSupport function
|
|
|