144 lines
4.2 KiB
C++
144 lines
4.2 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) 1996-1997, Microsoft Corporation.
|
|
//
|
|
// File: ixsutil.hxx
|
|
//
|
|
// Contents: Query SSO class
|
|
//
|
|
// History: 29 Oct 1996 Alanw Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Include Files
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Query object interface declarations
|
|
#include "ixssoifc.h"
|
|
#include "ixserror.hxx"
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// CixssoUtil Declaration
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class CixssoUtil : public IixssoUtil, public ISupportErrorInfo
|
|
{
|
|
friend class CIxssoUtilCF;
|
|
|
|
public:
|
|
|
|
// IUnknown methods
|
|
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj);
|
|
STDMETHOD_(ULONG, AddRef)(THIS);
|
|
STDMETHOD_(ULONG, Release)(THIS);
|
|
|
|
// IDispatch methods
|
|
|
|
STDMETHOD(GetTypeInfoCount)(THIS_ UINT * pctinfo);
|
|
|
|
STDMETHOD(GetTypeInfo)( THIS_
|
|
UINT itinfo,
|
|
LCID lcid,
|
|
ITypeInfo * * pptinfo);
|
|
|
|
STDMETHOD(GetIDsOfNames)( THIS_
|
|
REFIID riid,
|
|
OLECHAR * * rgszNames,
|
|
UINT cNames,
|
|
LCID lcid,
|
|
DISPID * rgdispid);
|
|
|
|
STDMETHOD(Invoke)( THIS_
|
|
DISPID dispidMember,
|
|
REFIID riid,
|
|
LCID lcid,
|
|
WORD wFlags,
|
|
DISPPARAMS * pdispparams,
|
|
VARIANT * pvarResult,
|
|
EXCEPINFO * pexcepinfo,
|
|
UINT * puArgErr);
|
|
|
|
// ISupportErrorInfo method
|
|
|
|
STDMETHOD(InterfaceSupportsErrorInfo)( THIS_
|
|
REFIID riid);
|
|
|
|
//
|
|
// IixssoUtil methods
|
|
//
|
|
|
|
HRESULT STDMETHODCALLTYPE LocaleIDToISO(
|
|
/* [in] */ LONG lcid,
|
|
/* [retval][out] */ BSTR *val);
|
|
|
|
HRESULT STDMETHODCALLTYPE ISOToLocaleID(
|
|
/* [in] */ BSTR bstrLocale,
|
|
/* [retval][out] */ LONG *pLcid);
|
|
|
|
HRESULT STDMETHODCALLTYPE AddScopeToQuery(
|
|
/* [in] */ IDispatch * pDisp,
|
|
/* [in] */ BSTR pwszScope,
|
|
/* [in] */ BSTR pwszDepth);
|
|
|
|
HRESULT STDMETHODCALLTYPE TruncateToWhitespace(
|
|
/* [in] */ BSTR bstrIn,
|
|
/* [in] */ LONG maxLen,
|
|
/* [retval][out] */ BSTR * pbstrOut);
|
|
|
|
HRESULT STDMETHODCALLTYPE GetArrayElement(
|
|
/* [in] */ VARIANT * pVariantArray,
|
|
/* [in] */ LONG iElement,
|
|
/* [out,retval] */ VARIANT * pOutputVariant);
|
|
|
|
HRESULT STDMETHODCALLTYPE HTMLEncode(
|
|
/* [in] */ BSTR bstrIn,
|
|
/* [in] */ LONG codepage,
|
|
/* [retval][out] */ BSTR * pbstrOut);
|
|
|
|
HRESULT STDMETHODCALLTYPE URLEncode(
|
|
/* [in] */ BSTR bstrIn,
|
|
/* [in] */ LONG codepage,
|
|
/* [retval][out] */ BSTR * pbstrOut);
|
|
|
|
#if 0 // NOTE: not needed
|
|
//
|
|
// ASP standard methods
|
|
//
|
|
HRESULT STDMETHODCALLTYPE OnStartPage( IUnknown * pUnk );
|
|
HRESULT STDMETHODCALLTYPE OnEndPage( void );
|
|
#endif // 0 NOTE: not needed
|
|
|
|
private:
|
|
CixssoUtil( ITypeLib * pitlb );
|
|
|
|
~CixssoUtil();
|
|
|
|
// Local methods
|
|
|
|
SCODE SetError( SCODE sc,
|
|
const WCHAR * loc = 0,
|
|
unsigned eErrClass = 0 )
|
|
{
|
|
_err.SetError( sc, 0, 0, loc, eErrClass, _lcid );
|
|
return sc;
|
|
}
|
|
|
|
LCID GetLCID() const { return _lcid; }
|
|
|
|
// Property get/put helpers
|
|
SCODE CopyWstrToBstr( BSTR * pbstr, WCHAR const * pwstr );
|
|
|
|
ULONG _cRef;
|
|
CixssoError _err;
|
|
LCID _lcid; // Locale ID used for this query
|
|
ITypeInfo * _ptinfo; // Type info from type lib
|
|
|
|
};
|
|
|