|
|
//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1999 **
//*********************************************************************
//
// SIGNUP.CPP - Header for the implementation of CSignup
//
// HISTORY:
//
// 1/27/99 a-jaswed Created.
//
#include "signup.h"
#include "appdefs.h"
#include "dispids.h"
#include "msobmain.h"
#include "resource.h"
DISPATCHLIST SignupExternalInterface[] = { {L"get_Locale", DISPID_SIGNUP_GET_LOCALE }, {L"get_IDLocale", DISPID_SIGNUP_GET_IDLOCALE }, {L"get_Text1", DISPID_SIGNUP_GET_TEXT1 }, {L"get_Text2", DISPID_SIGNUP_GET_TEXT2 }, {L"get_OEMName", DISPID_SIGNUP_GET_OEMNAME }, };
/////////////////////////////////////////////////////////////
// CSignup::CSignup
CSignup::CSignup(HINSTANCE hInstance) {
// Init member vars
m_cRef = 0; m_hInstance = hInstance; }
/////////////////////////////////////////////////////////////
// CSignup::~CSignup
CSignup::~CSignup() { assert(m_cRef == 0); }
////////////////////////////////////////////////
////////////////////////////////////////////////
//// GET / SET :: SignupLocale
////
HRESULT CSignup::get_Locale(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_LOCALE, pvResult); }
HRESULT CSignup::get_IDLocale(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_IDLOCALE, pvResult); }
HRESULT CSignup::get_Text1(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_TEXT1, pvResult); }
HRESULT CSignup::get_Text2(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_SIGNUP, IDS_KEY_TEXT2, pvResult); }
HRESULT CSignup::get_OEMName(LPVARIANT pvResult) { return GetINIKeyBSTR(m_hInstance, INI_SETTINGS_FILENAME, IDS_SECTION_BRANDING, IDS_KEY_OEMNAME, pvResult); }
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////// IUnknown implementation
///////
///////
/////////////////////////////////////////////////////////////
// CSignup::QueryInterface
STDMETHODIMP CSignup::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); }
/////////////////////////////////////////////////////////////
// CSignup::AddRef
STDMETHODIMP_(ULONG) CSignup::AddRef() { return ++m_cRef; }
/////////////////////////////////////////////////////////////
// CSignup::Release
STDMETHODIMP_(ULONG) CSignup::Release() { return --m_cRef; }
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////// IDispatch implementation
///////
///////
/////////////////////////////////////////////////////////////
// CSignup::GetTypeInfo
STDMETHODIMP CSignup::GetTypeInfo(UINT, LCID, ITypeInfo**) { return E_NOTIMPL; }
/////////////////////////////////////////////////////////////
// CSignup::GetTypeInfoCount
STDMETHODIMP CSignup::GetTypeInfoCount(UINT* pcInfo) { return E_NOTIMPL; }
/////////////////////////////////////////////////////////////
// CSignup::GetIDsOfNames
STDMETHODIMP CSignup::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(SignupExternalInterface)/sizeof(DISPATCHLIST); iX ++) { if(lstrcmp(SignupExternalInterface[iX].szName, rgszNames[0]) == 0) { rgDispId[0] = SignupExternalInterface[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; }
/////////////////////////////////////////////////////////////
// CSignup::Invoke
HRESULT CSignup::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_SIGNUP_GET_LOCALE: {
TRACE(L"DISPID_SIGNUP_GET_LOCALE\n");
if (NULL != pvarResult) get_Locale(pvarResult); break; }
case DISPID_SIGNUP_GET_IDLOCALE: {
TRACE(L"DISPID_SIGNUP_GET_IDLOCALE\n");
if (NULL != pvarResult) get_IDLocale(pvarResult); break; }
case DISPID_SIGNUP_GET_TEXT1: {
TRACE(L"DISPID_SIGNUP_GET_TEXT1\n");
if (NULL != pvarResult) get_Text1(pvarResult); break; }
case DISPID_SIGNUP_GET_TEXT2: {
TRACE(L"DISPID_SIGNUP_GET_TEXT2\n");
if (NULL != pvarResult) get_Text2(pvarResult); break; }
case DISPID_SIGNUP_GET_OEMNAME: {
TRACE(L"DISPID_SIGNUP_GET_OEMNAME\n");
if (NULL != pvarResult) get_OEMName(pvarResult); break; }
default: { hr = DISP_E_MEMBERNOTFOUND; break; } } return hr; }
|