windows-nt/Source/XPSP1/NT/inetsrv/query/web/ixsso/ixsutil.hxx
2020-09-26 16:20:57 +08:00

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
};