TDC.IDL

#include <olectl.h> 
// TDC.idl : IDL source for TDC.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (TDC.tlb) and marshalling code.

#include "TDCIds.h"

[
uuid(761279e6-2dee-11d1-9544-00c04fb66f5d),
version(1.1),
helpstring("Tabular Data Control sample 1.1 Type Library")
]
library TDCLib
{
importlib("stdole32.tlb"); // don't remove this!


[ uuid(E0E270C0-C0BE-11d0-8FE4-00A0C90A6341), odl, dual]
interface OLEDBSimpleProviderX : IDispatch
{
};

[
object,
uuid(761279e8-2dee-11d1-9544-00c04fb66f5d),
dual,
helpstring("ITDCCtl Interface"),
pointer_default(unique)
]


interface ITDCCtl : IDispatch
{

// Properties

[propget, id(DISPID_FIELDDELIM)]
HRESULT FieldDelim([out, retval] BSTR* pbstrFieldDelim);
[propput, id(DISPID_FIELDDELIM)]
HRESULT FieldDelim([in] BSTR bstrFieldDelim);

[propget, id(DISPID_ROWDELIM)]
HRESULT RowDelim([out, retval] BSTR* pbstrRowDelim);
[propput, id(DISPID_ROWDELIM)]
HRESULT RowDelim([in] BSTR bstrRowDelim);

[propget, id(DISPID_TEXTQUALIFIER)]
HRESULT TextQualifier([out, retval] BSTR* pbstrTextQualifier);
[propput, id(DISPID_TEXTQUALIFIER)]
HRESULT TextQualifier([in] BSTR bstrTextQualifier);

[propget, id(DISPID_ESCAPECHAR)]
HRESULT EscapeChar([out, retval] BSTR* pbstrEscapeChar);
[propput, id(DISPID_ESCAPECHAR)]
HRESULT EscapeChar([in] BSTR bstrEscapeChar);

[propget, id(DISPID_USEHEADER)]
HRESULT UseHeader([out, retval] VARIANT_BOOL* pfUseHeader);
[propput, id(DISPID_USEHEADER)]
HRESULT UseHeader([in] VARIANT_BOOL fUseHeader);

[propget, id(DISPID_SORTCOLUMN), hidden]
HRESULT SortColumn([out, retval] BSTR* pbstrSortColumn);
[propput, id(DISPID_SORTCOLUMN), hidden]
HRESULT SortColumn([in] BSTR bstrSortColumn);

[propget, id(DISPID_SORTASCENDING), hidden]
HRESULT SortAscending([out, retval] VARIANT_BOOL *pfSortAscending);
[propput, id(DISPID_SORTASCENDING), hidden]
HRESULT SortAscending([in] VARIANT_BOOL fSortAscending);

[propget, id(DISPID_FILTERVALUE), hidden]
HRESULT FilterValue([out, retval] BSTR* pbstrFilterValue);
[propput, id(DISPID_FILTERVALUE), hidden]
HRESULT FilterValue([in] BSTR bstrFilterValue);

[propget, id(DISPID_FILTERCRITERION), hidden]
HRESULT FilterCriterion([out, retval] BSTR* pbstrFilterCriterion);
[propput, id(DISPID_FILTERCRITERION), hidden]
HRESULT FilterCriterion([in] BSTR bstrFilterCriterion);

[propget, id(DISPID_FILTERCOLUMN), hidden]
HRESULT FilterColumn([out, retval] BSTR* pbstrFilterColumn);
[propput, id(DISPID_FILTERCOLUMN), hidden]
HRESULT FilterColumn([in] BSTR bstrFilterColumn);

[propget, id(DISPID_CHARSET)]
HRESULT CharSet([out, retval] BSTR *pbstrCharSet);
[propput, id(DISPID_CHARSET)]
HRESULT CharSet([in] BSTR bstrCharSet);

[propget, id(DISPID_LANGUAGE)]
HRESULT Language([out, retval] BSTR *pbstrLanguage);
[propput, id(DISPID_LANGUAGE)]
HRESULT Language([in] BSTR bstrLanguage);

[propget, id(DISPID_CASESENSITIVE)]
HRESULT CaseSensitive([out, retval] VARIANT_BOOL *pfCaseSensitive);
[propput, id(DISPID_CASESENSITIVE)]
HRESULT CaseSensitive([in] VARIANT_BOOL fCaseSensitive);

// This will be tagged differently when we learn more about the HTML
// sub-tag "OBJECT"
[propget, id(DISPID_DATAURL)]
HRESULT DataURL([out, retval] BSTR* pbstrDataURL);
[propput, id(DISPID_DATAURL)]
HRESULT DataURL([in] BSTR bstrDataURL);

[restricted, id(-3900)]
HRESULT msDataSourceObject([in] BSTR qualifier,
[out, retval] IUnknown **ppUnk);

[restricted, id(-3901)]
HRESULT addDataSourceListener([in] IUnknown *pEvent);

// Methods

HRESULT Reset();

// New properties/methods - put here to existing preserve vtable order

// ;begin_internal
#ifdef NEVER
[propget, id(DISPID_TIMER)]
HRESULT RefreshInterval([out, retval] LONG *plSecs);
[propput, id(DISPID_TIMER)]
HRESULT RefreshInterval([in] LONG lSecs);
#endif
// ;end_internal

[hidden, restricted]
HRESULT _OnTimer();

[propget, id(DISPID_FILTER)]
HRESULT Filter([out, retval] BSTR* pbstrFilterExpr);
[propput, id(DISPID_FILTER)]
HRESULT Filter([in] BSTR bstrFilterExpr);

[propget, id(DISPID_SORT)]
HRESULT Sort([out, retval] BSTR* pbstrSortExpr);
[propput, id(DISPID_SORT)]
HRESULT Sort([in] BSTR bstrSortExpr);

[propget, id(DISPID_READYSTATE)]
HRESULT ReadyState([out, retval] long *state);
[propput, id(DISPID_READYSTATE)]
HRESULT ReadyState([in] long state);

[propget, id(DISPID_APPENDDATA)]
HRESULT AppendData([out, retval] VARIANT_BOOL *pfAppendData);
[propput, id(DISPID_APPENDDATA)]
HRESULT AppendData([in] VARIANT_BOOL fAppendData);

[propget, id(DISPID_OSP), hidden]
HRESULT OSP([out, retval] OLEDBSimpleProviderX ** ppISTD);
};

[
object,
uuid(761279e9-2dee-11d1-9544-00c04fb66f5d),
dual,
helpstring("Tabular Data Control Event interface"),
pointer_default(unique)
]
interface ITDCCtlEvents: IDispatch
{
[id(DISPID_READYSTATECHANGE)]
void onreadystatechange();
};

[
uuid(761279ea-2dee-11d1-9544-00c04fb66f5d),
helpstring("Tabular Data Control")
]
coclass CTDCCtl
{
[default] interface ITDCCtl;
[default, source] interface ITDCCtlEvents;
};


};