|
|
//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1999 **
//*********************************************************************
//
// Directions.CPP - Header for the implementation of CDirections
//
// HISTORY:
//
// 1/27/99 a-jaswed Created.
//
#include "direct.h"
#include "appdefs.h"
#include "dispids.h"
#include "msobmain.h"
#include "resource.h"
DISPATCHLIST DirectionsExternalInterface[] = { {L"get_DoMouseTutorial", DISPID_DIRECTIONS_GET_DOMOUSETUTORIAL }, {L"get_DoOEMRegistration", DISPID_DIRECTIONS_GET_DOOEMREGISTRATION }, {L"get_DoRegionalKeyboard", DISPID_DIRECTIONS_GET_DOREGIONALKEYBOARD }, {L"get_DoOEMHardwareCheck", DISPID_DIRECTIONS_GET_DOOEMHARDWARECHECK }, {L"get_DoBrowseNow", DISPID_DIRECTIONS_GET_DOBROWSENOW }, {L"get_ISPSignup", DISPID_DIRECTIONS_GET_ISPSIGNUP }, {L"get_Offline", DISPID_DIRECTIONS_GET_OFFLINE }, {L"get_OEMOfferCode", DISPID_DIRECTIONS_GET_OFFERCODE }, {L"get_AppMode", DISPID_DIRECTIONS_GET_APPMODE }, {L"get_OEMCust", DISPID_DIRECTIONS_GET_OEMCUST }, {L"get_DoOEMAddRegistration", DISPID_DIRECTIONS_GET_DOOEMADDREGISTRATION}, {L"get_DoIMETutorial", DISPID_DIRECTIONS_GET_DOIMETUTORIAL }, {L"get_DoTimeZone", DISPID_DIRECTIONS_GET_DOTIMEZONE }, {L"get_TimeZoneValue", DISPID_DIRECTIONS_GET_TIMEZONEVALUE }, {L"get_DoSkipAnimation", DISPID_DIRECTIONS_GET_DOSKIPANIMATION }, {L"get_DoWelcomeFadeIn", DISPID_DIRECTIONS_GET_DOWELCOMEFADEIN }, {L"get_IntroOnly", DISPID_DIRECTIONS_GET_INTROONLY }, {L"get_AgentDisabled", DISPID_DIRECTIONS_GET_AGENTDISABLED }, {L"get_ShowISPMigration", DISPID_DIRECTIONS_GET_SHOWISPMIGRATION }, {L"get_DoJoinDomain", DISPID_DIRECTIONS_GET_DOJOINDOMAIN }, {L"get_DoAdminPassword", DISPID_DIRECTIONS_GET_DOADMINPASSWORD } };
/////////////////////////////////////////////////////////////
// CDirections::CDirections
CDirections::CDirections(HINSTANCE hInstance, DWORD dwAppMode) {
// Init member vars
m_cRef = 0; m_hInstance = hInstance; m_dwAppMode = dwAppMode; }
/////////////////////////////////////////////////////////////
// CDirections::~CDirections
CDirections::~CDirections() { assert(m_cRef == 0); }
////////////////////////////////////////////////
////////////////////////////////////////////////
//// GET / SET :: DirectionsLocale
////
HRESULT CDirections::get_DoMouseTutorial(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_MOUSETUTORIAL, pvResult); }
HRESULT CDirections::get_DoOEMRegistration(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OEMREGISTRATIONPAGE, IDS_KEY_OEMREGPAGE, pvResult); }
HRESULT CDirections::get_DoRegionalKeyboard(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_INTL_SETTINGS, pvResult); }
HRESULT CDirections::get_DoOEMHardwareCheck(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OEMHARDWARECHECK, IDS_KEY_OEMHWCHECK, pvResult); }
HRESULT CDirections::get_DoBrowseNow(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_BROWSENOW, IDS_KEY_BROWSENOW, pvResult); }
HRESULT CDirections::get_ISPSignup(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_ISPSIGNUP, pvResult); }
HRESULT CDirections::get_Offline(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_STARTUPOPTIONS, IDS_KEY_OFFLINE, pvResult); }
HRESULT CDirections::get_OEMOfferCode(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_OEMOFFERCODE, pvResult); }
HRESULT CDirections::get_OEMCust(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_OEMCUST, pvResult); }
HRESULT CDirections::get_DoOEMAddRegistration(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OEMREGISTRATIONPAGE, IDS_KEY_OEMADDREGPAGE, pvResult); }
HRESULT CDirections::get_DoTimeZone(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_TIMEZONE, pvResult); }
HRESULT CDirections::get_TimeZoneValue(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_TIMEZONEVAL, pvResult); }
HRESULT CDirections::get_DoIMETutorial(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_IMETUTORIAL, pvResult); }
HRESULT CDirections::get_DoSkipAnimation(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_STARTUPOPTIONS, IDS_SKIPANIMATION, pvResult); }
HRESULT CDirections::get_DoWelcomeFadeIn(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_STARTUPOPTIONS, IDS_DOWELCOMEFADEIN, pvResult); }
HRESULT CDirections::get_IntroOnly(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_INTROONLY, pvResult); }
HRESULT CDirections::get_AgentDisabled(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_AGENTDISABLED, pvResult); }
HRESULT CDirections::get_ShowISPMigration(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_SHOWISPMIGRATION, pvResult); } HRESULT CDirections::get_DoJoinDomain(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_JOINDOMAIN, pvResult); }
HRESULT CDirections::get_DoAdminPassword(LPVARIANT pvResult) { return GetINIKeyUINT(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_OPTIONS, IDS_KEY_ADMINPASSWORD, pvResult); }
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////// IUnknown implementation
///////
///////
/////////////////////////////////////////////////////////////
// CDirections::QueryInterface
STDMETHODIMP CDirections::QueryInterface(REFIID riid, LPVOID* ppvObj) { // must set out pointer parameters to NULL
*ppvObj = NULL;
if ( riid == IID_IUnknown) { AddRef(); *ppvObj = (IUnknown*)this; return ResultFromScode(S_OK); }
if (riid == IID_IDispatch) { AddRef(); *ppvObj = (IDispatch*)this; return ResultFromScode(S_OK); }
// Not a supported interface
return ResultFromScode(E_NOINTERFACE); }
/////////////////////////////////////////////////////////////
// CDirections::AddRef
STDMETHODIMP_(ULONG) CDirections::AddRef() { return ++m_cRef; }
/////////////////////////////////////////////////////////////
// CDirections::Release
STDMETHODIMP_(ULONG) CDirections::Release() { return --m_cRef; }
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////// IDispatch implementation
///////
///////
/////////////////////////////////////////////////////////////
// CDirections::GetTypeInfo
STDMETHODIMP CDirections::GetTypeInfo(UINT, LCID, ITypeInfo**) { return E_NOTIMPL; }
/////////////////////////////////////////////////////////////
// CDirections::GetTypeInfoCount
STDMETHODIMP CDirections::GetTypeInfoCount(UINT* pcInfo) { return E_NOTIMPL; }
/////////////////////////////////////////////////////////////
// CDirections::GetIDsOfNames
STDMETHODIMP CDirections::GetIDsOfNames(REFIID riid, OLECHAR** rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) {
HRESULT hr = DISP_E_UNKNOWNNAME; rgDispId[0] = DISPID_UNKNOWN;
for (int iX = 0; iX < sizeof(DirectionsExternalInterface)/sizeof(DISPATCHLIST); iX ++) { if(lstrcmp(DirectionsExternalInterface[iX].szName, rgszNames[0]) == 0) { rgDispId[0] = DirectionsExternalInterface[iX].dwDispID; hr = NOERROR; break; } }
// Set the disid's for the parameters
if (cNames > 1) { // Set a DISPID for function parameters
for (UINT i = 1; i < cNames ; i++) rgDispId[i] = DISPID_UNKNOWN; }
return hr; }
/////////////////////////////////////////////////////////////
// CDirections::Invoke
HRESULT CDirections::Invoke ( DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr ) { HRESULT hr = S_OK;
switch(dispidMember) { case DISPID_DIRECTIONS_GET_AGENTDISABLED: TRACE(L"DISPID_DIRECTIONS_GET_AGENTDISABLED\n"); if (NULL != pvarResult) get_AgentDisabled(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOMOUSETUTORIAL: TRACE(L"DISPID_DIRECTIONS_GET_DOMOUSETUTORIAL\n"); if (NULL != pvarResult) get_DoMouseTutorial(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOTIMEZONE: TRACE(L"DISPID_DIRECTIONS_GET_DOTIMEZONE\n"); if (NULL != pvarResult) get_DoTimeZone(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOIMETUTORIAL: TRACE(L"DISPID_DIRECTIONS_GET_DOIMETUTORIAL\n"); if (NULL != pvarResult) get_DoIMETutorial(pvarResult); break;
case DISPID_DIRECTIONS_GET_TIMEZONEVALUE: TRACE(L"DISPID_DIRECTIONS_GET_TIMEZONEVALUE\n"); if (NULL != pvarResult) get_TimeZoneValue(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOOEMREGISTRATION: TRACE(L"DISPID_DIRECTIONS_GET_DOOEMREGISTRATION\n"); if (NULL != pvarResult) get_DoOEMRegistration(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOREGIONALKEYBOARD: TRACE(L"DISPID_DIRECTIONS_GET_DOREGIONALKEYBOARD\n"); if (NULL != pvarResult) get_DoRegionalKeyboard(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOOEMHARDWARECHECK: TRACE(L"DISPID_DIRECTIONS_GET_DOOEMHARDWARECHECK\n"); if (NULL != pvarResult) get_DoOEMHardwareCheck(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOBROWSENOW: TRACE(L"DISPID_DIRECTIONS_GET_DOBROWSENOW\n"); if (NULL != pvarResult) get_DoBrowseNow(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOSKIPANIMATION: TRACE(L"DISPID_DIRECTIONS_GET_DOSKIPANIMATION\n"); if (NULL != pvarResult) get_DoSkipAnimation(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOWELCOMEFADEIN: TRACE(L"DISPID_DIRECTIONS_GET_DOWELCOMEFADEIN\n"); if (NULL != pvarResult) get_DoWelcomeFadeIn(pvarResult); break;
case DISPID_DIRECTIONS_GET_INTROONLY: TRACE(L"DISPID_DIRECTIONS_GET_INTROONLY\n"); if (NULL != pvarResult) get_IntroOnly(pvarResult); break;
case DISPID_DIRECTIONS_GET_ISPSIGNUP: TRACE(L"DISPID_DIRECTIONS_GET_ISPSIGNUP\n"); if (NULL != pvarResult) get_ISPSignup(pvarResult); break;
case DISPID_DIRECTIONS_GET_OFFLINE: TRACE(L"DISPID_DIRECTIONS_GET_OFFLINE\n"); if (NULL != pvarResult) get_Offline(pvarResult); break;
case DISPID_DIRECTIONS_GET_OFFERCODE: TRACE(L"DISPID_DIRECTIONS_GET_OFFERCODE\n"); if (NULL != pvarResult) get_OEMOfferCode(pvarResult); break;
case DISPID_DIRECTIONS_GET_OEMCUST: TRACE(L"DISPID_DIRECTIONS_GET_OEMCUST\n"); if (NULL != pvarResult) get_OEMCust(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOOEMADDREGISTRATION: TRACE(L"DISPID_DIRECTIONS_GET_DOOEMADDREGISTRATION\n"); if (NULL != pvarResult) get_DoOEMAddRegistration(pvarResult); break;
case DISPID_DIRECTIONS_GET_APPMODE: TRACE(L"DISPID_DIRECTIONS_GET_APPMODE\n"); if (NULL != pvarResult) { VariantInit(pvarResult); V_VT(pvarResult) = VT_I4; V_I4(pvarResult) = m_dwAppMode; hr = S_OK; } break;
case DISPID_DIRECTIONS_GET_SHOWISPMIGRATION: TRACE(L"DISPID_DIRECTIONS_GET_SHOWISPMIGRATION\n"); if (NULL != pvarResult) { get_ShowISPMigration(pvarResult); } break;
case DISPID_DIRECTIONS_GET_DOJOINDOMAIN: TRACE(L"DISPID_DIRECTIONS_GET_DOJOINDOMAIN"); if (NULL != pvarResult) get_DoJoinDomain(pvarResult); break;
case DISPID_DIRECTIONS_GET_DOADMINPASSWORD: TRACE(L"DISPID_DIRECTIONS_GET_DOADMINPASSWORD"); if (NULL != pvarResult) get_DoAdminPassword(pvarResult); break;
default: hr = DISP_E_MEMBERNOTFOUND; break; }
return hr; }
|