📄 adosample.cpp
字号:
// ADOSample.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "ADOSample.h"
#include <commctrl.h>
#define MAX_LOADSTRING 100
// <BOOK_ADDON Chapter 8.4.1> *************************************************
#include <comdef.h>
#include <ADOCE30.h>
void __stdcall _com_issue_error(HRESULT hr)
{
// Error handling goes here!
}
#ifndef __IADOCEField_INTERFACE_DEFINED__
#define __IADOCEField_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IADOCEField
* at Fri Feb 27 14:49:21 1998
* using MIDL 3.01.75
****************************************/
/* [unique][dual][uuid][object] */
EXTERN_C const IID IID_IADOCEField;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID("4BEB93D7-28D8-11D1-8321-00A024A88110")
Field20 : public IDispatch
{
public:
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ActualSize(
/* [retval][out] */ long __RPC_FAR *pVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Attributes(
/* [retval][out] */ long __RPC_FAR *pVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_DefinedSize(
/* [retval][out] */ long __RPC_FAR *pVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
/* [retval][out] */ BSTR __RPC_FAR *pVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Type(
/* [retval][out] */ DataTypeEnum __RPC_FAR *pVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_UnderlyingValue(
/* [retval][out] */ VARIANT __RPC_FAR *pVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Value(
/* [retval][out] */ VARIANT __RPC_FAR *pVal) = 0;
virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Value(
/* [in] */ VARIANT newVal) = 0;
};
#else /* C style interface */
typedef struct IADOCEFieldVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IADOCEField __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IADOCEField __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IADOCEField __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
IADOCEField __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
IADOCEField __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
IADOCEField __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
IADOCEField __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_ActualSize )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *pVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Attributes )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *pVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_DefinedSize )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *pVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Name )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Type )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ DataTypeEnum __RPC_FAR *pVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_UnderlyingValue )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ VARIANT __RPC_FAR *pVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Value )(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ VARIANT __RPC_FAR *pVal);
/* [id][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Value )(
IADOCEField __RPC_FAR * This,
/* [in] */ VARIANT newVal);
END_INTERFACE
} IADOCEFieldVtbl;
interface IADOCEField
{
CONST_VTBL struct IADOCEFieldVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IADOCEField_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IADOCEField_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IADOCEField_Release(This) \
(This)->lpVtbl -> Release(This)
#define IADOCEField_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define IADOCEField_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IADOCEField_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IADOCEField_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define IADOCEField_get_ActualSize(This,pVal) \
(This)->lpVtbl -> get_ActualSize(This,pVal)
#define IADOCEField_get_Attributes(This,pVal) \
(This)->lpVtbl -> get_Attributes(This,pVal)
#define IADOCEField_get_DefinedSize(This,pVal) \
(This)->lpVtbl -> get_DefinedSize(This,pVal)
#define IADOCEField_get_Name(This,pVal) \
(This)->lpVtbl -> get_Name(This,pVal)
#define IADOCEField_get_Type(This,pVal) \
(This)->lpVtbl -> get_Type(This,pVal)
#define IADOCEField_get_UnderlyingValue(This,pVal) \
(This)->lpVtbl -> get_UnderlyingValue(This,pVal)
#define IADOCEField_get_Value(This,pVal) \
(This)->lpVtbl -> get_Value(This,pVal)
#define IADOCEField_put_Value(This,newVal) \
(This)->lpVtbl -> put_Value(This,newVal)
#endif /* COBJMACROS */
#endif /* C style interface */
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_ActualSize_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_ActualSize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_Attributes_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Attributes_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_DefinedSize_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_DefinedSize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_Name_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Name_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_Type_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ DataTypeEnum __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Type_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_UnderlyingValue_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ VARIANT __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_UnderlyingValue_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE IADOCEField_get_Value_Proxy(
IADOCEField __RPC_FAR * This,
/* [retval][out] */ VARIANT __RPC_FAR *pVal);
void __RPC_STUB IADOCEField_get_Value_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propput] */ HRESULT STDMETHODCALLTYPE IADOCEField_put_Value_Proxy(
IADOCEField __RPC_FAR * This,
/* [in] */ VARIANT newVal);
void __RPC_STUB IADOCEField_put_Value_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IADOCEField_INTERFACE_DEFINED__ */
// </BOOK_ADDON Chapter 8.4.1> *************************************************
// Global Variables:
HINSTANCE hInst; // The current instance
HWND hwndCB; // The command bar handle
// Foward declarations of functions included in this code module:
ATOM MyRegisterClass (HINSTANCE hInstance, LPTSTR szWindowClass);
BOOL InitInstance (HINSTANCE, int);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
HACCEL hAccelTable;
// <BOOK_ADDON Chapter 8.4.1> *************************************************
_Connection *Conn1; // new in ADOCE3.0
VARIANT varConn1;
BOOL bADOCE3=FALSE;
_Recordset *Rs1;
Fields *Fields;
Field *Field;
// <BOOK Necessary due to Compatibility Wrapper in ADOCE30.h>
Field20 *Field20;
// </BOOK Necessary due to Compatibility Wrapper in ADOCE30.h>
VARIANT_BOOL tBOF,tEOF;
long FldCnt;
VARIANT value;
VARIANT vaEmpty;
SYSTEMTIME MyTime;
const IID IID__Recordset = {0x113033F6,0xF682,0x11D2,{0xBB,0x62,0x00,0xC0,0x4F,0x68,0x0A,0xCC}};
const IID IID__Connection = {0x113033DE,0xF682,0x11D2,{0xBB,0x62,0x00,0xC0,0x4F,0x68,0x0A,0xCC}};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -