From 0a0e6a5bafe2efb3466b1527eb7eb670aaa5e634 Mon Sep 17 00:00:00 2001 From: =?utf8?q?W=C5=82odzimierz=20Skiba?= Date: Mon, 16 Aug 2004 12:45:46 +0000 Subject: [PATCH] TRUE/true, FALSE/false, whitespace cleaning. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/ole/access.h | 6 +- include/wx/msw/ole/automtn.h | 70 +- include/wx/msw/ole/dataform.h | 2 +- include/wx/msw/ole/dataobj.h | 2 +- include/wx/msw/ole/dropsrc.h | 6 +- include/wx/msw/ole/droptgt.h | 6 +- include/wx/msw/ole/oleutils.h | 12 +- include/wx/msw/ole/uuid.h | 8 +- src/msw/ole/access.cpp | 254 ++--- src/msw/ole/automtn.cpp | 1692 ++++++++++++++++----------------- src/msw/ole/dropsrc.cpp | 4 +- src/msw/ole/droptgt.cpp | 20 +- src/msw/ole/oleutils.cpp | 6 +- src/msw/ole/uuid.cpp | 18 +- 14 files changed, 1053 insertions(+), 1053 deletions(-) diff --git a/include/wx/msw/ole/access.h b/include/wx/msw/ole/access.h index 42eba96b7a..5eea153e63 100644 --- a/include/wx/msw/ole/access.h +++ b/include/wx/msw/ole/access.h @@ -16,9 +16,7 @@ #pragma interface #endif -#if !wxUSE_ACCESSIBILITY - #error "You should #define wxUSE_ACCESSIBILITY to 1 to compile this file!" -#endif //wxUSE_ACCESSIBILITY +#if wxUSE_ACCESSIBILITY // ---------------------------------------------------------------------------- // forward declarations @@ -68,5 +66,7 @@ private: DECLARE_NO_COPY_CLASS(wxAccessible) }; +#endif //wxUSE_ACCESSIBILITY + #endif //_WX_ACCESS_H_ diff --git a/include/wx/msw/ole/automtn.h b/include/wx/msw/ole/automtn.h index 669a32eda1..6145f48f11 100644 --- a/include/wx/msw/ole/automtn.h +++ b/include/wx/msw/ole/automtn.h @@ -37,58 +37,58 @@ public: wxAutomationObject(WXIDISPATCH* dispatchPtr = NULL); ~wxAutomationObject(); - // Set/get dispatch pointer + // Set/get dispatch pointer inline void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; }; inline WXIDISPATCH* GetDispatchPtr() const { return m_dispatchPtr; } - // Get a dispatch pointer from the current object associated - // with a class id, such as "Excel.Application" - bool GetInstance(const wxString& classId) const; + // Get a dispatch pointer from the current object associated + // with a class id, such as "Excel.Application" + bool GetInstance(const wxString& classId) const; - // Get a dispatch pointer from a new instance of the the class - bool CreateInstance(const wxString& classId) const; + // Get a dispatch pointer from a new instance of the the class + bool CreateInstance(const wxString& classId) const; - // Low-level invocation function. Pass either an array of variants, - // or an array of pointers to variants. + // Low-level invocation function. Pass either an array of variants, + // or an array of pointers to variants. bool Invoke(const wxString& member, int action, wxVariant& retValue, int noArgs, wxVariant args[], const wxVariant* ptrArgs[] = 0) const; - // Invoke a member function - wxVariant CallMethod(const wxString& method, int noArgs, wxVariant args[]); - wxVariant CallMethodArray(const wxString& method, int noArgs, const wxVariant **args); + // Invoke a member function + wxVariant CallMethod(const wxString& method, int noArgs, wxVariant args[]); + wxVariant CallMethodArray(const wxString& method, int noArgs, const wxVariant **args); - // Convenience function - wxVariant CallMethod(const wxString& method, - const wxVariant& arg1 = wxNullVariant, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + // Convenience function + wxVariant CallMethod(const wxString& method, + const wxVariant& arg1 = wxNullVariant, const wxVariant& arg2 = wxNullVariant, + const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, + const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - // Get/Put property + // Get/Put property wxVariant GetProperty(const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; - wxVariant GetPropertyArray(const wxString& property, int noArgs, const wxVariant **args) const; - wxVariant GetProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + wxVariant GetPropertyArray(const wxString& property, int noArgs, const wxVariant **args) const; + wxVariant GetProperty(const wxString& property, + const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, + const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, + const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); bool PutPropertyArray(const wxString& property, int noArgs, const wxVariant **args); bool PutProperty(const wxString& property, int noArgs, wxVariant args[]) ; - bool PutProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - // Uses DISPATCH_PROPERTYGET - // and returns a dispatch pointer. The calling code should call Release - // on the pointer, though this could be implicit by constructing an wxAutomationObject - // with it and letting the destructor call Release. + bool PutProperty(const wxString& property, + const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, + const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, + const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + + // Uses DISPATCH_PROPERTYGET + // and returns a dispatch pointer. The calling code should call Release + // on the pointer, though this could be implicit by constructing an wxAutomationObject + // with it and letting the destructor call Release. WXIDISPATCH* GetDispatchProperty(const wxString& property, int noArgs, wxVariant args[]) const; WXIDISPATCH* GetDispatchProperty(const wxString& property, int noArgs, const wxVariant **args) const; - // A way of initialising another wxAutomationObject with a dispatch object, - // without having to deal with nasty IDispatch pointers. - bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; - bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, const wxVariant **args) const; + // A way of initialising another wxAutomationObject with a dispatch object, + // without having to deal with nasty IDispatch pointers. + bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; + bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, const wxVariant **args) const; public: WXIDISPATCH* m_dispatchPtr; diff --git a/include/wx/msw/ole/dataform.h b/include/wx/msw/ole/dataform.h index 634ab463e0..10c6bb2c3d 100644 --- a/include/wx/msw/ole/dataform.h +++ b/include/wx/msw/ole/dataform.h @@ -57,7 +57,7 @@ public: wxString GetId() const; void SetId(const wxChar *format); - // returns TRUE if the format is one of those defined in wxDataFormatId + // returns true if the format is one of those defined in wxDataFormatId bool IsStandard() const { return m_format > 0 && m_format < wxDF_PRIVATE; } private: diff --git a/include/wx/msw/ole/dataobj.h b/include/wx/msw/ole/dataobj.h index f686ef4bb7..0553a5a8c8 100644 --- a/include/wx/msw/ole/dataobj.h +++ b/include/wx/msw/ole/dataobj.h @@ -36,7 +36,7 @@ public: // it is deleted, it should delete us as well void SetAutoDelete(); - // return TRUE if we support this format in "Get" direction + // return true if we support this format in "Get" direction bool IsSupportedFormat(const wxDataFormat& format) const { return wxDataObjectBase::IsSupported(format, Get); } diff --git a/include/wx/msw/ole/dropsrc.h b/include/wx/msw/ole/dropsrc.h index bdc972b732..2b383a3ab6 100644 --- a/include/wx/msw/ole/dropsrc.h +++ b/include/wx/msw/ole/dropsrc.h @@ -16,9 +16,7 @@ #pragma interface #endif -#if !wxUSE_DRAG_AND_DROP - #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" -#endif //WX_DRAG_DROP +#if wxUSE_DRAG_AND_DROP // ---------------------------------------------------------------------------- // forward declarations @@ -80,4 +78,6 @@ private: DECLARE_NO_COPY_CLASS(wxDropSource) }; +#endif //wxUSE_DRAG_AND_DROP + #endif //_WX_OLEDROPSRC_H diff --git a/include/wx/msw/ole/droptgt.h b/include/wx/msw/ole/droptgt.h index 55e0040d73..6011cf67b5 100644 --- a/include/wx/msw/ole/droptgt.h +++ b/include/wx/msw/ole/droptgt.h @@ -16,9 +16,7 @@ #pragma interface "droptgt.h" #endif -#if !wxUSE_DRAG_AND_DROP - #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" -#endif //WX_DRAG_DROP +#if wxUSE_DRAG_AND_DROP // ---------------------------------------------------------------------------- // forward declarations @@ -73,4 +71,6 @@ private: DECLARE_NO_COPY_CLASS(wxDropTarget) }; +#endif //wxUSE_DRAG_AND_DROP + #endif //_WX_OLEDROPTGT_H diff --git a/include/wx/msw/ole/oleutils.h b/include/wx/msw/ole/oleutils.h index 9f71b28de5..9dc4716278 100644 --- a/include/wx/msw/ole/oleutils.h +++ b/include/wx/msw/ole/oleutils.h @@ -39,7 +39,7 @@ inline void ReleaseInterface(IUnknown *pIUnk) // release the interface pointer (if !NULL) and make it NULL #define RELEASE_AND_NULL(p) if ( (p) != NULL ) { p->Release(); p = NULL; }; -// return TRUE if the iid is in the array +// return true if the iid is in the array extern bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount); // ============================================================================ @@ -73,7 +73,7 @@ public: operator ULONG&() { return m_Value; } ULONG& operator=(ULONG value) { m_Value = value; return m_Value; } - + wxAutoULong& operator++() { ++m_Value; return *this; } const wxAutoULong operator++( int ) { wxAutoULong temp = *this; ++m_Value; return temp; } @@ -176,20 +176,20 @@ public: wxBasicString(const char *sz); wxBasicString(const wxString& str); ~wxBasicString(); - + void Init(const char* sz); - + // accessors // just get the string operator BSTR() const { return m_wzBuf; } // retrieve a copy of our string - caller must SysFreeString() it later! BSTR Get() const { return SysAllocString(m_wzBuf); } - + private: // @@@ not implemented (but should be) wxBasicString(const wxBasicString&); wxBasicString& operator=(const wxBasicString&); - + OLECHAR *m_wzBuf; // actual string }; diff --git a/include/wx/msw/ole/uuid.h b/include/wx/msw/ole/uuid.h index c194a4e417..44ac1cb0df 100644 --- a/include/wx/msw/ole/uuid.h +++ b/include/wx/msw/ole/uuid.h @@ -2,7 +2,7 @@ // Name: ole/uuid.h // Purpose: encapsulates an UUID with some added helper functions // Author: Vadim Zeitlin -// Modified by: +// Modified by: // Created: 11.07.97 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin @@ -25,7 +25,7 @@ // ----- taken from RPC.H #ifndef UUID_DEFINED // in some cases RPC.H will be already #ifdef __WIN32__ // included, so avoid redefinition - typedef struct + typedef struct { unsigned long Data1; unsigned short Data2; @@ -51,7 +51,7 @@ class WXDLLEXPORT Uuid { private: UUID m_uuid; - wxUChar *m_pszUuid; // this string is alloc'd and freed by RPC + wxUChar *m_pszUuid; // this string is alloc'd and freed by RPC wxChar *m_pszCForm; // this string is allocated in Set/Create void UuidToCForm(); @@ -73,7 +73,7 @@ public: // create a brand new UUID void Create(); - // set value of UUID + // set value of UUID bool Set(const wxChar *pc); // from a string, returns true if ok void Set(const UUID& uuid); // from another UUID (never fails) diff --git a/src/msw/ole/access.cpp b/src/msw/ole/access.cpp index 9418c9f815..47cbf00934 100644 --- a/src/msw/ole/access.cpp +++ b/src/msw/ole/access.cpp @@ -199,12 +199,12 @@ public: // Navigation and Hierarchy // Retrieves the child element or child object at a given point on the screen. - // All visual objects support this method; sound objects do not support it. + // All visual objects support this method; sound objects do not support it. STDMETHODIMP accHitTest(long xLeft, long yLeft, VARIANT* pVarID); // Retrieves the specified object's current screen location. All visual objects must - // support this method; sound objects do not support it. + // support this method; sound objects do not support it. STDMETHODIMP accLocation ( long* pxLeft, long* pyTop, long* pcxWidth, long* pcyHeight, VARIANT varID); @@ -215,29 +215,29 @@ public: // Retrieves the address of an IDispatch interface for the specified child. // All objects must support this property. - + STDMETHODIMP get_accChild ( VARIANT varChildID, IDispatch** ppDispChild); // Retrieves the number of children that belong to this object. // All objects must support this property. - + STDMETHODIMP get_accChildCount ( long* pCountChildren); // Retrieves the IDispatch interface of the object's parent. // All objects support this property. - + STDMETHODIMP get_accParent ( IDispatch** ppDispParent); // Descriptive Properties and Methods // Performs the object's default action. Not all objects have a default // action. - + STDMETHODIMP accDoDefaultAction(VARIANT varID); // Retrieves a string that describes the object's default action. // Not all objects have a default action. - + STDMETHODIMP get_accDefaultAction ( VARIANT varID, BSTR* pszDefaultAction); // Retrieves a string that describes the visual appearance of the specified object. @@ -253,18 +253,18 @@ public: // Retrieves the full path of the WinHelp file associated with the specified // object and the identifier of the appropriate topic within that file. // Not all objects support this property. - + STDMETHODIMP get_accHelpTopic ( BSTR* pszHelpFile, VARIANT varChild, long* pidTopic); // Retrieves the specified object's shortcut key or access key, also known as // the mnemonic. All objects that have a shortcut key or access key support // this property. - + STDMETHODIMP get_accKeyboardShortcut ( VARIANT varID, BSTR* pszKeyboardShortcut); // Retrieves the name of the specified object. // All objects support this property. - + STDMETHODIMP get_accName ( VARIANT varID, BSTR* pszName); // Retrieves information that describes the role of the specified object. @@ -274,9 +274,9 @@ public: // Retrieves the current state of the specified object. // All objects support this property. - + STDMETHODIMP get_accState ( VARIANT varID, VARIANT* pVarState); - + // Retrieves the value of the specified object. // Not all objects have a value. @@ -292,12 +292,12 @@ public: // Retrieves the object that has the keyboard focus. All objects // that receive the keyboard focus must support this property. - + STDMETHODIMP get_accFocus ( VARIANT* pVarID); // Retrieves the selected children of this object. All objects // selected must support this property. - + STDMETHODIMP get_accSelection ( VARIANT * pVarChildren); // Obsolete @@ -322,9 +322,9 @@ public: // Invoke - STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, - WORD wFlags, DISPPARAMS *pDispParams, - VARIANT *pVarResult, EXCEPINFO *pExcepInfo, + STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, unsigned int *puArgErr ); // Helpers @@ -366,7 +366,7 @@ wxIAccessible::wxIAccessible(wxAccessible *pAccessible) } // Retrieves the child element or child object at a given point on the screen. -// All visual objects support this method; sound objects do not support it. +// All visual objects support this method; sound objects do not support it. STDMETHODIMP wxIAccessible::accHitTest(long xLeft, long yLeft, VARIANT* pVarID) { @@ -374,16 +374,16 @@ STDMETHODIMP wxIAccessible::accHitTest(long xLeft, long yLeft, VARIANT* pVarID) wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + wxAccessible* childObject = NULL; int childId = 0; VariantInit(pVarID); - + wxAccStatus status = m_pAccessible->HitTest(wxPoint(xLeft, yLeft), & childId, & childObject); - + if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Use standard interface instead. @@ -393,7 +393,7 @@ STDMETHODIMP wxIAccessible::accHitTest(long xLeft, long yLeft, VARIANT* pVarID) else return stdInterface->accHitTest(xLeft, yLeft, pVarID); } - + if (childObject) { if (childObject == m_pAccessible) @@ -408,9 +408,9 @@ STDMETHODIMP wxIAccessible::accHitTest(long xLeft, long yLeft, VARIANT* pVarID) if (!childIA) return E_NOTIMPL; - if (childIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarID->pdispVal) != S_OK) - return E_FAIL; - + if (childIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarID->pdispVal) != S_OK) + return E_FAIL; + pVarID->vt = VT_DISPATCH; return S_OK; } @@ -426,8 +426,8 @@ STDMETHODIMP wxIAccessible::accHitTest(long xLeft, long yLeft, VARIANT* pVarID) pVarID->vt = VT_EMPTY; return S_FALSE; } - - #if 0 + + #if 0 // all cases above already cause some return action so below line // is unreachable and cause unnecessary warning return E_NOTIMPL; @@ -435,7 +435,7 @@ STDMETHODIMP wxIAccessible::accHitTest(long xLeft, long yLeft, VARIANT* pVarID) } // Retrieves the specified object's current screen location. All visual objects must -// support this method; sound objects do not support it. +// support this method; sound objects do not support it. STDMETHODIMP wxIAccessible::accLocation ( long* pxLeft, long* pyTop, long* pcxWidth, long* pcyHeight, VARIANT varID) { @@ -443,13 +443,13 @@ STDMETHODIMP wxIAccessible::accLocation ( long* pxLeft, long* pyTop, long* pcxWi wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + wxRect rect; wxAccStatus status = m_pAccessible->GetLocation(rect, varID.lVal); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -491,7 +491,7 @@ STDMETHODIMP wxIAccessible::accNavigate ( long navDir, VARIANT varStart, VARIANT return E_FAIL; wxLogTrace(wxT("access"), wxString(wxT("accNavigate for ")) + m_pAccessible->GetWindow()->GetClassInfo()->GetClassName()); - if ((varStart.vt != VT_I4 && varStart.vt != VT_EMPTY) + if ((varStart.vt != VT_I4 && varStart.vt != VT_EMPTY) #if 0 // according to MSDN and sources varStart.vt is unsigned // so below line cause warning "Condition is always false" @@ -502,7 +502,7 @@ STDMETHODIMP wxIAccessible::accNavigate ( long navDir, VARIANT varStart, VARIANT wxLogTrace(wxT("access"), wxT("Invalid arg for accNavigate")); return E_INVALIDARG; } - + wxAccessible* elementObject = NULL; int elementId = 0; VariantInit(pVarEnd); @@ -558,7 +558,7 @@ STDMETHODIMP wxIAccessible::accNavigate ( long navDir, VARIANT varStart, VARIANT } } wxLogTrace(wxT("access"), navStr); - + wxAccStatus status = m_pAccessible->Navigate(navDirWX, varStart.lVal, & elementId, & elementObject); @@ -567,13 +567,13 @@ STDMETHODIMP wxIAccessible::accNavigate ( long navDir, VARIANT varStart, VARIANT wxLogTrace(wxT("access"), wxT("wxAccessible::Navigate failed")); return E_FAIL; } - + if (status == wxACC_FALSE) { wxLogTrace(wxT("access"), wxT("wxAccessible::Navigate found no object in this direction")); return S_FALSE; } - + if (status == wxACC_NOT_IMPLEMENTED) { wxLogTrace(wxT("access"), wxT("Navigate not implemented")); @@ -607,13 +607,13 @@ STDMETHODIMP wxIAccessible::accNavigate ( long navDir, VARIANT varStart, VARIANT return E_FAIL; } - HRESULT hResult = objectIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarEnd->pdispVal); + HRESULT hResult = objectIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarEnd->pdispVal); if (hResult != S_OK) { wxLogTrace(wxT("access"), wxT("QueryInterface failed")); - return E_FAIL; + return E_FAIL; } - + wxLogTrace(wxT("access"), wxT("Called QueryInterface for Navigate")); pVarEnd->vt = VT_DISPATCH; return S_OK; @@ -639,14 +639,14 @@ STDMETHODIMP wxIAccessible::accNavigate ( long navDir, VARIANT varStart, VARIANT // Retrieves the address of an IDispatch interface for the specified child. // All objects must support this property. - + STDMETHODIMP wxIAccessible::get_accChild ( VARIANT varChildID, IDispatch** ppDispChild) { wxLogTrace(wxT("access"), wxT("get_accChild")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varChildID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accChild")); @@ -659,7 +659,7 @@ STDMETHODIMP wxIAccessible::get_accChild ( VARIANT varChildID, IDispatch** ppDis AddRef(); return S_OK; } - + wxAccessible* child = NULL; wxAccStatus status = m_pAccessible->GetChild(varChildID.lVal, & child); @@ -668,7 +668,7 @@ STDMETHODIMP wxIAccessible::get_accChild ( VARIANT varChildID, IDispatch** ppDis wxLogTrace(wxT("access"), wxT("GetChild failed")); return E_FAIL; } - + if (status == wxACC_NOT_IMPLEMENTED) { // Use standard interface instead. @@ -689,12 +689,12 @@ STDMETHODIMP wxIAccessible::get_accChild ( VARIANT varChildID, IDispatch** ppDis if (!objectIA) return E_NOTIMPL; - if (objectIA->QueryInterface(IID_IDispatch, (LPVOID*) ppDispChild) != S_OK) + if (objectIA->QueryInterface(IID_IDispatch, (LPVOID*) ppDispChild) != S_OK) { wxLogTrace(wxT("access"), wxT("QueryInterface failed in get_accChild")); - return E_FAIL; + return E_FAIL; } - + return S_OK; } else @@ -704,7 +704,7 @@ STDMETHODIMP wxIAccessible::get_accChild ( VARIANT varChildID, IDispatch** ppDis } } - #if 0 + #if 0 // all cases above already cause some return action so below line // is unreachable and cause unnecessary warning return E_NOTIMPL; @@ -713,19 +713,19 @@ STDMETHODIMP wxIAccessible::get_accChild ( VARIANT varChildID, IDispatch** ppDis // Retrieves the number of children that belong to this object. // All objects must support this property. - + STDMETHODIMP wxIAccessible::get_accChildCount ( long* pCountChildren) { wxLogTrace(wxT("access"), wxT("get_accChildCount")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + int childCount = 0; wxAccStatus status = m_pAccessible->GetChildCount(& childCount); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Use standard interface instead. @@ -748,7 +748,7 @@ STDMETHODIMP wxIAccessible::get_accChildCount ( long* pCountChildren) return S_OK; } - #if 0 + #if 0 // all cases above already cause some return action so below line // is unreachable and cause unnecessary warning return E_NOTIMPL; @@ -757,14 +757,14 @@ STDMETHODIMP wxIAccessible::get_accChildCount ( long* pCountChildren) // Retrieves the IDispatch interface of the object's parent. // All objects support this property. - + STDMETHODIMP wxIAccessible::get_accParent ( IDispatch** ppDispParent) { wxLogTrace(wxT("access"), wxT("get_accParent")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + wxAccessible* parent = NULL; wxAccStatus status = m_pAccessible->GetParent(& parent); @@ -793,12 +793,12 @@ STDMETHODIMP wxIAccessible::get_accParent ( IDispatch** ppDispParent) return E_FAIL; wxLogTrace(wxT("access"), wxT("About to call QueryInterface")); - if (objectIA->QueryInterface(IID_IDispatch, (LPVOID*) ppDispParent) != S_OK) + if (objectIA->QueryInterface(IID_IDispatch, (LPVOID*) ppDispParent) != S_OK) { wxLogTrace(wxT("access"), wxT("Failed QueryInterface")); - return E_FAIL; + return E_FAIL; } - + wxLogTrace(wxT("access"), wxT("Returning S_OK for get_accParent")); return S_OK; } @@ -812,7 +812,7 @@ STDMETHODIMP wxIAccessible::get_accParent ( IDispatch** ppDispParent) } } - #if 0 + #if 0 // all cases above already cause some return action so below line // is unreachable and cause unnecessary warning return E_NOTIMPL; @@ -821,27 +821,27 @@ STDMETHODIMP wxIAccessible::get_accParent ( IDispatch** ppDispParent) // Performs the object's default action. Not all objects have a default // action. - + STDMETHODIMP wxIAccessible::accDoDefaultAction(VARIANT varID) { wxLogTrace(wxT("access"), wxT("accDoDefaultAction")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for accDoDefaultAction")); return E_INVALIDARG; } - + wxAccStatus status = m_pAccessible->DoDefaultAction(varID.lVal); if (status == wxACC_FAIL) return E_FAIL; if (status == wxACC_NOT_SUPPORTED) return DISP_E_MEMBERNOTFOUND; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -866,28 +866,28 @@ STDMETHODIMP wxIAccessible::accDoDefaultAction(VARIANT varID) // Retrieves a string that describes the object's default action. // Not all objects have a default action. - + STDMETHODIMP wxIAccessible::get_accDefaultAction ( VARIANT varID, BSTR* pszDefaultAction) { wxLogTrace(wxT("access"), wxT("get_accDefaultAction")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accDefaultAction")); return E_INVALIDARG; } - + wxString defaultAction; wxAccStatus status = m_pAccessible->GetDefaultAction(varID.lVal, & defaultAction); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_SUPPORTED) return DISP_E_MEMBERNOTFOUND; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -933,18 +933,18 @@ STDMETHODIMP wxIAccessible::get_accDescription ( VARIANT varID, BSTR* pszDescrip wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accDescription")); return E_INVALIDARG; } - + wxString description; wxAccStatus status = m_pAccessible->GetDescription(varID.lVal, & description); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -976,7 +976,7 @@ STDMETHODIMP wxIAccessible::get_accDescription ( VARIANT varID, BSTR* pszDescrip wxBasicString basicString(description); * pszDescription = basicString.Get(); return S_OK; - } + } } return E_NOTIMPL; } @@ -990,18 +990,18 @@ STDMETHODIMP wxIAccessible::get_accHelp ( VARIANT varID, BSTR* pszHelp) wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accHelp")); return E_INVALIDARG; } - + wxString helpString; wxAccStatus status = m_pAccessible->GetHelpText(varID.lVal, & helpString); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1033,7 +1033,7 @@ STDMETHODIMP wxIAccessible::get_accHelp ( VARIANT varID, BSTR* pszHelp) wxBasicString basicString(helpString); * pszHelp = basicString.Get(); return S_OK; - } + } } return E_NOTIMPL; } @@ -1043,24 +1043,24 @@ STDMETHODIMP wxIAccessible::get_accHelp ( VARIANT varID, BSTR* pszHelp) // Not all objects support this property. // NOTE: not supported by wxWidgets at this time. Use // GetHelpText instead. - + STDMETHODIMP wxIAccessible::get_accHelpTopic ( BSTR* pszHelpFile, VARIANT varChild, long* pidTopic) { wxLogTrace(wxT("access"), wxT("get_accHelpTopic")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varChild.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accHelpTopic")); return E_INVALIDARG; } - + wxAccStatus status = wxACC_NOT_IMPLEMENTED; if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1086,7 +1086,7 @@ STDMETHODIMP wxIAccessible::get_accHelpTopic ( BSTR* pszHelpFile, VARIANT varChi // Retrieves the specified object's shortcut key or access key, also known as // the mnemonic. All objects that have a shortcut key or access key support // this property. - + STDMETHODIMP wxIAccessible::get_accKeyboardShortcut ( VARIANT varID, BSTR* pszKeyboardShortcut) { wxLogTrace(wxT("access"), wxT("get_accKeyboardShortcut")); @@ -1095,18 +1095,18 @@ STDMETHODIMP wxIAccessible::get_accKeyboardShortcut ( VARIANT varID, BSTR* pszKe wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accKeyboardShortcut")); return E_INVALIDARG; } - + wxString keyboardShortcut; wxAccStatus status = m_pAccessible->GetKeyboardShortcut(varID.lVal, & keyboardShortcut); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1138,14 +1138,14 @@ STDMETHODIMP wxIAccessible::get_accKeyboardShortcut ( VARIANT varID, BSTR* pszKe wxBasicString basicString(keyboardShortcut); * pszKeyboardShortcut = basicString.Get(); return S_OK; - } + } } return E_NOTIMPL; } // Retrieves the name of the specified object. // All objects support this property. - + STDMETHODIMP wxIAccessible::get_accName ( VARIANT varID, BSTR* pszName) { wxLogTrace(wxT("access"), wxT("get_accName")); @@ -1160,14 +1160,14 @@ STDMETHODIMP wxIAccessible::get_accName ( VARIANT varID, BSTR* pszName) wxLogTrace(wxT("access"), wxT("Invalid arg for get_accName")); return E_INVALIDARG; } - + wxString name; - + wxAccStatus status = m_pAccessible->GetName(varID.lVal, & name); - + if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1205,22 +1205,22 @@ STDMETHODIMP wxIAccessible::get_accRole ( VARIANT varID, VARIANT* pVarRole) wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accRole")); return E_INVALIDARG; } - + VariantInit(pVarRole); wxAccRole role = wxROLE_NONE; - + wxAccStatus status = m_pAccessible->GetRole(varID.lVal, & role); - + if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1258,14 +1258,14 @@ STDMETHODIMP wxIAccessible::get_accRole ( VARIANT varID, VARIANT* pVarRole) // Retrieves the current state of the specified object. // All objects support this property. - + STDMETHODIMP wxIAccessible::get_accState ( VARIANT varID, VARIANT* pVarState) { wxLogTrace(wxT("access"), wxT("get_accState")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4 && varID.vt != VT_EMPTY) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accState")); @@ -1273,11 +1273,11 @@ STDMETHODIMP wxIAccessible::get_accState ( VARIANT varID, VARIANT* pVarState) } long wxstate = 0; - + wxAccStatus status = m_pAccessible->GetState(varID.lVal, & wxstate); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1306,7 +1306,7 @@ STDMETHODIMP wxIAccessible::get_accState ( VARIANT varID, VARIANT* pVarState) } return E_NOTIMPL; } - + // Retrieves the value of the specified object. // Not all objects have a value. @@ -1316,20 +1316,20 @@ STDMETHODIMP wxIAccessible::get_accValue ( VARIANT varID, BSTR* pszValue) wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4) { wxLogTrace(wxT("access"), wxT("Invalid arg for get_accValue")); return E_INVALIDARG; } - + wxString strValue; - + wxAccStatus status = m_pAccessible->GetValue(varID.lVal, & strValue); - + if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1368,19 +1368,19 @@ STDMETHODIMP wxIAccessible::accSelect ( long flagsSelect, VARIANT varID ) wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + if (varID.vt != VT_I4 && varID.vt != VT_EMPTY) { wxLogTrace(wxT("access"), wxT("Invalid arg for accSelect")); return E_INVALIDARG; } - + wxAccSelectionFlags wxsel = wxConvertFromWindowsSelFlag(flagsSelect); wxAccStatus status = m_pAccessible->Select(varID.lVal, wxsel); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Try to use child object directly. @@ -1408,22 +1408,22 @@ STDMETHODIMP wxIAccessible::accSelect ( long flagsSelect, VARIANT varID ) // Retrieves the object that has the keyboard focus. All objects // that receive the keyboard focus must support this property. - + STDMETHODIMP wxIAccessible::get_accFocus ( VARIANT* pVarID) { wxLogTrace(wxT("access"), wxT("get_accFocus")); wxASSERT (m_pAccessible != NULL); if (!m_pAccessible) return E_FAIL; - + wxAccessible* childObject = NULL; int childId = 0; VariantInit(pVarID); - + wxAccStatus status = m_pAccessible->GetFocus(& childId, & childObject); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Use standard interface instead. @@ -1446,9 +1446,9 @@ STDMETHODIMP wxIAccessible::get_accFocus ( VARIANT* pVarID) if (!childIA) return E_NOTIMPL; - if (childIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarID->pdispVal) != S_OK) - return E_FAIL; - + if (childIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarID->pdispVal) != S_OK) + return E_FAIL; + pVarID->vt = VT_DISPATCH; return S_OK; } @@ -1464,8 +1464,8 @@ STDMETHODIMP wxIAccessible::get_accFocus ( VARIANT* pVarID) pVarID->vt = VT_EMPTY; return S_FALSE; } - - #if 0 + + #if 0 // all cases above already cause some return action so below line // is unreachable and cause unnecessary warning return E_NOTIMPL; @@ -1474,7 +1474,7 @@ STDMETHODIMP wxIAccessible::get_accFocus ( VARIANT* pVarID) // Retrieves the selected children of this object. All objects // selected must support this property. - + STDMETHODIMP wxIAccessible::get_accSelection ( VARIANT * pVarChildren) { wxLogTrace(wxT("access"), wxT("get_accSelection")); @@ -1483,12 +1483,12 @@ STDMETHODIMP wxIAccessible::get_accSelection ( VARIANT * pVarChildren) return E_FAIL; VariantInit(pVarChildren); - + wxVariant selections; wxAccStatus status = m_pAccessible->GetSelections(& selections); if (status == wxACC_FAIL) return E_FAIL; - + if (status == wxACC_NOT_IMPLEMENTED) { // Use standard interface instead. @@ -1514,9 +1514,9 @@ STDMETHODIMP wxIAccessible::get_accSelection ( VARIANT * pVarChildren) if (!childIA) return E_NOTIMPL; - if (childIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarChildren->pdispVal) != S_OK) - return E_FAIL; - + if (childIA->QueryInterface(IID_IDispatch, (LPVOID*) & pVarChildren->pdispVal) != S_OK) + return E_FAIL; + pVarChildren->vt = VT_DISPATCH; return S_OK; @@ -1564,9 +1564,9 @@ STDMETHODIMP wxIAccessible::GetIDsOfNames(REFIID WXUNUSED(riid), OLECHAR** WXUNU // Invoke -STDMETHODIMP wxIAccessible::Invoke(DISPID WXUNUSED(dispIdMember), REFIID WXUNUSED(riid), LCID WXUNUSED(lcid), - WORD WXUNUSED(wFlags), DISPPARAMS *WXUNUSED(pDispParams), - VARIANT *WXUNUSED(pVarResult), EXCEPINFO *WXUNUSED(pExcepInfo), +STDMETHODIMP wxIAccessible::Invoke(DISPID WXUNUSED(dispIdMember), REFIID WXUNUSED(riid), LCID WXUNUSED(lcid), + WORD WXUNUSED(wFlags), DISPPARAMS *WXUNUSED(pDispParams), + VARIANT *WXUNUSED(pVarResult), EXCEPINFO *WXUNUSED(pExcepInfo), unsigned int *WXUNUSED(puArgErr) ) { return E_NOTIMPL; @@ -1605,7 +1605,7 @@ IAccessible* wxIAccessible::GetChildStdAccessible(int id) else { pDispatch->Release(); - } + } } } @@ -1639,7 +1639,7 @@ IAccessible* wxIAccessible::GetChildStdAccessible(int id) else { var.pdispVal->Release(); - } + } } } break; @@ -1679,7 +1679,7 @@ IAccessible* wxIAccessible::GetChildAccessible(int id) else { pDispatch->Release(); - } + } } } return NULL; diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp index d0185644ae..e559ff9d0a 100644 --- a/src/msw/ole/automtn.cpp +++ b/src/msw/ole/automtn.cpp @@ -62,13 +62,13 @@ // One-based array of days in year at month start static int rgMonthDays[13] = - {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; + {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; #if wxUSE_DATETIME #include "wx/datetime.h" static BOOL OleDateFromTm(WORD wYear, WORD wMonth, WORD wDay, - WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest); + WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest); static BOOL TmFromOleDate(DATE dtSrc, struct tm& tmDest); #endif // wxUSE_TIMEDATE @@ -82,16 +82,16 @@ static void ReleaseVariant(VARIANTARG *pvarg) ; wxAutomationObject::wxAutomationObject(WXIDISPATCH* dispatchPtr) { - m_dispatchPtr = dispatchPtr; + m_dispatchPtr = dispatchPtr; } wxAutomationObject::~wxAutomationObject() { - if (m_dispatchPtr) - { - ((IDispatch*)m_dispatchPtr)->Release(); - m_dispatchPtr = NULL; - } + if (m_dispatchPtr) + { + ((IDispatch*)m_dispatchPtr)->Release(); + m_dispatchPtr = NULL; + } } #define INVOKEARG(i) (args ? args[i] : *(ptrArgs[i])) @@ -100,344 +100,344 @@ wxAutomationObject::~wxAutomationObject() bool wxAutomationObject::Invoke(const wxString& member, int action, wxVariant& retValue, int noArgs, wxVariant args[], const wxVariant* ptrArgs[]) const { - if (!m_dispatchPtr) - return FALSE; - - // nonConstMember is necessary because the wxString class doesn't have enough consts... - wxString nonConstMember(member); - - int ch = nonConstMember.Find('.'); - if (ch != -1) - { - // Use dot notation to get the next object - wxString member2(nonConstMember.Left((size_t) ch)); - wxString rest(nonConstMember.Right(nonConstMember.Length() - ch - 1)); - wxAutomationObject obj; - if (!GetObject(obj, member2)) - return FALSE; - return obj.Invoke(rest, action, retValue, noArgs, args, ptrArgs); - } - - VARIANTARG vReturn; - ClearVariant(& vReturn); - - VARIANTARG* vReturnPtr = & vReturn; - - // Find number of names args - int namedArgCount = 0; - int i; - for (i = 0; i < noArgs; i++) - if (!INVOKEARG(i).GetName().IsNull()) - { - namedArgCount ++; - } - - int namedArgStringCount = namedArgCount + 1; - BSTR* argNames = new BSTR[namedArgStringCount]; - argNames[0] = wxConvertStringToOle(member); - - // Note that arguments are specified in reverse order - // (all totally logical; hey, we're dealing with OLE here.) - - int j = 0; - for (i = 0; i < namedArgCount; i++) - { - if (!INVOKEARG(i).GetName().IsNull()) - { - argNames[(namedArgCount-j)] = wxConvertStringToOle(INVOKEARG(i).GetName()); - j ++; - } - } - - // + 1 for the member name, + 1 again in case we're a 'put' - DISPID* dispIds = new DISPID[namedArgCount + 2]; - - HRESULT hr; - DISPPARAMS dispparams; - unsigned int uiArgErr; - EXCEPINFO excep; - - // Get the IDs for the member and its arguments. GetIDsOfNames expects the - // member name as the first name, followed by argument names (if any). - hr = ((IDispatch*)m_dispatchPtr)->GetIDsOfNames(IID_NULL, argNames, - 1 + namedArgCount, LOCALE_SYSTEM_DEFAULT, dispIds); - if (FAILED(hr)) - { -// ShowException(szMember, hr, NULL, 0); - delete[] argNames; - delete[] dispIds; - return FALSE; - } - - // if doing a property put(ref), we need to adjust the first argument to have a - // named arg of DISPID_PROPERTYPUT. - if (action & (DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF)) - { - namedArgCount = 1; - dispIds[1] = DISPID_PROPERTYPUT; - vReturnPtr = (VARIANTARG*) NULL; - } - - // Convert the wxVariants to VARIANTARGs - VARIANTARG* oleArgs = new VARIANTARG[noArgs]; - for (i = 0; i < noArgs; i++) - { - // Again, reverse args - if (!wxConvertVariantToOle(INVOKEARG((noArgs-1) - i), oleArgs[i])) + if (!m_dispatchPtr) + return false; + + // nonConstMember is necessary because the wxString class doesn't have enough consts... + wxString nonConstMember(member); + + int ch = nonConstMember.Find('.'); + if (ch != -1) + { + // Use dot notation to get the next object + wxString member2(nonConstMember.Left((size_t) ch)); + wxString rest(nonConstMember.Right(nonConstMember.Length() - ch - 1)); + wxAutomationObject obj; + if (!GetObject(obj, member2)) + return false; + return obj.Invoke(rest, action, retValue, noArgs, args, ptrArgs); + } + + VARIANTARG vReturn; + ClearVariant(& vReturn); + + VARIANTARG* vReturnPtr = & vReturn; + + // Find number of names args + int namedArgCount = 0; + int i; + for (i = 0; i < noArgs; i++) + if (!INVOKEARG(i).GetName().IsNull()) { - delete[] argNames; - delete[] dispIds; + namedArgCount ++; + } + + int namedArgStringCount = namedArgCount + 1; + BSTR* argNames = new BSTR[namedArgStringCount]; + argNames[0] = wxConvertStringToOle(member); + + // Note that arguments are specified in reverse order + // (all totally logical; hey, we're dealing with OLE here.) + + int j = 0; + for (i = 0; i < namedArgCount; i++) + { + if (!INVOKEARG(i).GetName().IsNull()) + { + argNames[(namedArgCount-j)] = wxConvertStringToOle(INVOKEARG(i).GetName()); + j ++; + } + } + + // + 1 for the member name, + 1 again in case we're a 'put' + DISPID* dispIds = new DISPID[namedArgCount + 2]; + + HRESULT hr; + DISPPARAMS dispparams; + unsigned int uiArgErr; + EXCEPINFO excep; + + // Get the IDs for the member and its arguments. GetIDsOfNames expects the + // member name as the first name, followed by argument names (if any). + hr = ((IDispatch*)m_dispatchPtr)->GetIDsOfNames(IID_NULL, argNames, + 1 + namedArgCount, LOCALE_SYSTEM_DEFAULT, dispIds); + if (FAILED(hr)) + { +// ShowException(szMember, hr, NULL, 0); + delete[] argNames; + delete[] dispIds; + return false; + } + + // if doing a property put(ref), we need to adjust the first argument to have a + // named arg of DISPID_PROPERTYPUT. + if (action & (DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF)) + { + namedArgCount = 1; + dispIds[1] = DISPID_PROPERTYPUT; + vReturnPtr = (VARIANTARG*) NULL; + } + + // Convert the wxVariants to VARIANTARGs + VARIANTARG* oleArgs = new VARIANTARG[noArgs]; + for (i = 0; i < noArgs; i++) + { + // Again, reverse args + if (!wxConvertVariantToOle(INVOKEARG((noArgs-1) - i), oleArgs[i])) + { + delete[] argNames; + delete[] dispIds; delete[] oleArgs; - return FALSE; + return false; + } + } + + dispparams.rgdispidNamedArgs = dispIds + 1; + dispparams.rgvarg = oleArgs; + dispparams.cArgs = noArgs; + dispparams.cNamedArgs = namedArgCount; + + excep.pfnDeferredFillIn = NULL; + + hr = ((IDispatch*)m_dispatchPtr)->Invoke(dispIds[0], IID_NULL, LOCALE_SYSTEM_DEFAULT, + action, &dispparams, vReturnPtr, &excep, &uiArgErr); + + for (i = 0; i < namedArgStringCount; i++) + { + SysFreeString(argNames[i]); + } + delete[] argNames; + delete[] dispIds; + + for (i = 0; i < noArgs; i++) + ReleaseVariant(& oleArgs[i]) ; + delete[] oleArgs; + + if (FAILED(hr)) + { + // display the exception information if appropriate: +// ShowException((const char*) member, hr, &excep, uiArgErr); + + // free exception structure information + SysFreeString(excep.bstrSource); + SysFreeString(excep.bstrDescription); + SysFreeString(excep.bstrHelpFile); + + if (vReturnPtr) + ReleaseVariant(vReturnPtr); + return false; + } + else + { + if (vReturnPtr) + { + // Convert result to wxVariant form + wxConvertOleToVariant(vReturn, retValue); + // Mustn't release the dispatch pointer + if (vReturn.vt == VT_DISPATCH) + { + vReturn.pdispVal = (IDispatch*) NULL; + } + ReleaseVariant(& vReturn); } - } - - dispparams.rgdispidNamedArgs = dispIds + 1; - dispparams.rgvarg = oleArgs; - dispparams.cArgs = noArgs; - dispparams.cNamedArgs = namedArgCount; - - excep.pfnDeferredFillIn = NULL; - - hr = ((IDispatch*)m_dispatchPtr)->Invoke(dispIds[0], IID_NULL, LOCALE_SYSTEM_DEFAULT, - action, &dispparams, vReturnPtr, &excep, &uiArgErr); - - for (i = 0; i < namedArgStringCount; i++) - { - SysFreeString(argNames[i]); - } - delete[] argNames; - delete[] dispIds; - - for (i = 0; i < noArgs; i++) - ReleaseVariant(& oleArgs[i]) ; - delete[] oleArgs; - - if (FAILED(hr)) - { - // display the exception information if appropriate: -// ShowException((const char*) member, hr, &excep, uiArgErr); - - // free exception structure information - SysFreeString(excep.bstrSource); - SysFreeString(excep.bstrDescription); - SysFreeString(excep.bstrHelpFile); - - if (vReturnPtr) - ReleaseVariant(vReturnPtr); - return FALSE; - } - else - { - if (vReturnPtr) - { - // Convert result to wxVariant form - wxConvertOleToVariant(vReturn, retValue); - // Mustn't release the dispatch pointer - if (vReturn.vt == VT_DISPATCH) - { - vReturn.pdispVal = (IDispatch*) NULL; - } - ReleaseVariant(& vReturn); - } - } - return TRUE; + } + return true; } // Invoke a member function wxVariant wxAutomationObject::CallMethod(const wxString& member, int noArgs, wxVariant args[]) { - wxVariant retVariant; - if (!Invoke(member, DISPATCH_METHOD, retVariant, noArgs, args)) - { - retVariant.MakeNull(); - } - return retVariant; + wxVariant retVariant; + if (!Invoke(member, DISPATCH_METHOD, retVariant, noArgs, args)) + { + retVariant.MakeNull(); + } + return retVariant; } wxVariant wxAutomationObject::CallMethodArray(const wxString& member, int noArgs, const wxVariant **args) { - wxVariant retVariant; - if (!Invoke(member, DISPATCH_METHOD, retVariant, noArgs, NULL, args)) - { - retVariant.MakeNull(); - } - return retVariant; + wxVariant retVariant; + if (!Invoke(member, DISPATCH_METHOD, retVariant, noArgs, NULL, args)) + { + retVariant.MakeNull(); + } + return retVariant; } wxVariant wxAutomationObject::CallMethod(const wxString& member, - const wxVariant& arg1, const wxVariant& arg2, - const wxVariant& arg3, const wxVariant& arg4, - const wxVariant& arg5, const wxVariant& arg6) + const wxVariant& arg1, const wxVariant& arg2, + const wxVariant& arg3, const wxVariant& arg4, + const wxVariant& arg5, const wxVariant& arg6) { - const wxVariant** args = new const wxVariant*[6]; - int i = 0; - if (!arg1.IsNull()) - { - args[i] = & arg1; - i ++; - } - if (!arg2.IsNull()) - { - args[i] = & arg2; - i ++; - } - if (!arg3.IsNull()) - { - args[i] = & arg3; - i ++; - } - if (!arg4.IsNull()) - { - args[i] = & arg4; - i ++; - } - if (!arg5.IsNull()) - { - args[i] = & arg5; - i ++; - } - if (!arg6.IsNull()) - { - args[i] = & arg6; - i ++; - } - wxVariant retVariant; - if (!Invoke(member, DISPATCH_METHOD, retVariant, i, NULL, args)) - { - retVariant.MakeNull(); - } - delete[] args; - return retVariant; + const wxVariant** args = new const wxVariant*[6]; + int i = 0; + if (!arg1.IsNull()) + { + args[i] = & arg1; + i ++; + } + if (!arg2.IsNull()) + { + args[i] = & arg2; + i ++; + } + if (!arg3.IsNull()) + { + args[i] = & arg3; + i ++; + } + if (!arg4.IsNull()) + { + args[i] = & arg4; + i ++; + } + if (!arg5.IsNull()) + { + args[i] = & arg5; + i ++; + } + if (!arg6.IsNull()) + { + args[i] = & arg6; + i ++; + } + wxVariant retVariant; + if (!Invoke(member, DISPATCH_METHOD, retVariant, i, NULL, args)) + { + retVariant.MakeNull(); + } + delete[] args; + return retVariant; } // Get/Set property wxVariant wxAutomationObject::GetPropertyArray(const wxString& property, int noArgs, const wxVariant **args) const { - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, NULL, args)) - { - retVariant.MakeNull(); - } - return retVariant; + wxVariant retVariant; + if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, NULL, args)) + { + retVariant.MakeNull(); + } + return retVariant; } wxVariant wxAutomationObject::GetProperty(const wxString& property, int noArgs, wxVariant args[]) const { - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) - { - retVariant.MakeNull(); - } - return retVariant; + wxVariant retVariant; + if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) + { + retVariant.MakeNull(); + } + return retVariant; } wxVariant wxAutomationObject::GetProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2, - const wxVariant& arg3, const wxVariant& arg4, - const wxVariant& arg5, const wxVariant& arg6) + const wxVariant& arg1, const wxVariant& arg2, + const wxVariant& arg3, const wxVariant& arg4, + const wxVariant& arg5, const wxVariant& arg6) { - const wxVariant** args = new const wxVariant*[6]; - int i = 0; - if (!arg1.IsNull()) - { - args[i] = & arg1; - i ++; - } - if (!arg2.IsNull()) - { - args[i] = & arg2; - i ++; - } - if (!arg3.IsNull()) - { - args[i] = & arg3; - i ++; - } - if (!arg4.IsNull()) - { - args[i] = & arg4; - i ++; - } - if (!arg5.IsNull()) - { - args[i] = & arg5; - i ++; - } - if (!arg6.IsNull()) - { - args[i] = & arg6; - i ++; - } - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, i, NULL, args)) - { - retVariant.MakeNull(); - } - delete[] args; - return retVariant; + const wxVariant** args = new const wxVariant*[6]; + int i = 0; + if (!arg1.IsNull()) + { + args[i] = & arg1; + i ++; + } + if (!arg2.IsNull()) + { + args[i] = & arg2; + i ++; + } + if (!arg3.IsNull()) + { + args[i] = & arg3; + i ++; + } + if (!arg4.IsNull()) + { + args[i] = & arg4; + i ++; + } + if (!arg5.IsNull()) + { + args[i] = & arg5; + i ++; + } + if (!arg6.IsNull()) + { + args[i] = & arg6; + i ++; + } + wxVariant retVariant; + if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, i, NULL, args)) + { + retVariant.MakeNull(); + } + delete[] args; + return retVariant; } bool wxAutomationObject::PutProperty(const wxString& property, int noArgs, wxVariant args[]) { - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYPUT, retVariant, noArgs, args)) - { - return FALSE; - } - return TRUE; + wxVariant retVariant; + if (!Invoke(property, DISPATCH_PROPERTYPUT, retVariant, noArgs, args)) + { + return false; + } + return true; } bool wxAutomationObject::PutPropertyArray(const wxString& property, int noArgs, const wxVariant **args) { - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYPUT, retVariant, noArgs, NULL, args)) - { - return FALSE; - } - return TRUE; + wxVariant retVariant; + if (!Invoke(property, DISPATCH_PROPERTYPUT, retVariant, noArgs, NULL, args)) + { + return false; + } + return true; } bool wxAutomationObject::PutProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2, - const wxVariant& arg3, const wxVariant& arg4, - const wxVariant& arg5, const wxVariant& arg6) + const wxVariant& arg1, const wxVariant& arg2, + const wxVariant& arg3, const wxVariant& arg4, + const wxVariant& arg5, const wxVariant& arg6) { - const wxVariant** args = new const wxVariant*[6]; - int i = 0; - if (!arg1.IsNull()) - { - args[i] = & arg1; - i ++; - } - if (!arg2.IsNull()) - { - args[i] = & arg2; - i ++; - } - if (!arg3.IsNull()) - { - args[i] = & arg3; - i ++; - } - if (!arg4.IsNull()) - { - args[i] = & arg4; - i ++; - } - if (!arg5.IsNull()) - { - args[i] = & arg5; - i ++; - } - if (!arg6.IsNull()) - { - args[i] = & arg6; - i ++; - } - wxVariant retVariant; - bool ret = Invoke(property, DISPATCH_PROPERTYPUT, retVariant, i, NULL, args); - delete[] args; - return ret; + const wxVariant** args = new const wxVariant*[6]; + int i = 0; + if (!arg1.IsNull()) + { + args[i] = & arg1; + i ++; + } + if (!arg2.IsNull()) + { + args[i] = & arg2; + i ++; + } + if (!arg3.IsNull()) + { + args[i] = & arg3; + i ++; + } + if (!arg4.IsNull()) + { + args[i] = & arg4; + i ++; + } + if (!arg5.IsNull()) + { + args[i] = & arg5; + i ++; + } + if (!arg6.IsNull()) + { + args[i] = & arg6; + i ++; + } + wxVariant retVariant; + bool ret = Invoke(property, DISPATCH_PROPERTYPUT, retVariant, i, NULL, args); + delete[] args; + return ret; } @@ -447,16 +447,16 @@ bool wxAutomationObject::PutProperty(const wxString& property, // with it and letting the destructor call Release. WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, int noArgs, wxVariant args[]) const { - wxVariant retVariant; - if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) - { - if (retVariant.GetType() == wxT("void*")) - { - return (WXIDISPATCH*) retVariant.GetVoidPtr(); - } - } - - return (WXIDISPATCH*) NULL; + wxVariant retVariant; + if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) + { + if (retVariant.GetType() == wxT("void*")) + { + return (WXIDISPATCH*) retVariant.GetVoidPtr(); + } + } + + return (WXIDISPATCH*) NULL; } // Uses DISPATCH_PROPERTYGET @@ -465,114 +465,114 @@ WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, i // with it and letting the destructor call Release. WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, int noArgs, const wxVariant **args) const { - wxVariant retVariant; - if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, NULL, args)) - { - if (retVariant.GetType() == wxT("void*")) - { - return (WXIDISPATCH*) retVariant.GetVoidPtr(); - } - } - - return (WXIDISPATCH*) NULL; + wxVariant retVariant; + if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, NULL, args)) + { + if (retVariant.GetType() == wxT("void*")) + { + return (WXIDISPATCH*) retVariant.GetVoidPtr(); + } + } + + return (WXIDISPATCH*) NULL; } // A way of initialising another wxAutomationObject with a dispatch object bool wxAutomationObject::GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, wxVariant args[]) const { - WXIDISPATCH* dispatch = GetDispatchProperty(property, noArgs, args); - if (dispatch) - { - obj.SetDispatchPtr(dispatch); - return TRUE; - } - else - return FALSE; + WXIDISPATCH* dispatch = GetDispatchProperty(property, noArgs, args); + if (dispatch) + { + obj.SetDispatchPtr(dispatch); + return true; + } + else + return false; } // A way of initialising another wxAutomationObject with a dispatch object bool wxAutomationObject::GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, const wxVariant **args) const { - WXIDISPATCH* dispatch = GetDispatchProperty(property, noArgs, args); - if (dispatch) - { - obj.SetDispatchPtr(dispatch); - return TRUE; - } - else - return FALSE; + WXIDISPATCH* dispatch = GetDispatchProperty(property, noArgs, args); + if (dispatch) + { + obj.SetDispatchPtr(dispatch); + return true; + } + else + return false; } // Get a dispatch pointer from the current object associated // with a class id bool wxAutomationObject::GetInstance(const wxString& classId) const { - if (m_dispatchPtr) - return FALSE; - - CLSID clsId; - IUnknown * pUnk = NULL; - - wxBasicString unicodeName(classId.mb_str()); - - if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) - { - wxLogWarning(wxT("Cannot obtain CLSID from ProgID")); - return FALSE; - } - - if (FAILED(GetActiveObject(clsId, NULL, &pUnk))) - { - wxLogWarning(wxT("Cannot find an active object")); - return FALSE; - } - - if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK) - { - wxLogWarning(wxT("Cannot find IDispatch interface")); - return FALSE; - } - - return TRUE; + if (m_dispatchPtr) + return false; + + CLSID clsId; + IUnknown * pUnk = NULL; + + wxBasicString unicodeName(classId.mb_str()); + + if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) + { + wxLogWarning(wxT("Cannot obtain CLSID from ProgID")); + return false; + } + + if (FAILED(GetActiveObject(clsId, NULL, &pUnk))) + { + wxLogWarning(wxT("Cannot find an active object")); + return false; + } + + if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK) + { + wxLogWarning(wxT("Cannot find IDispatch interface")); + return false; + } + + return true; } // Get a dispatch pointer from a new object associated // with the given class id bool wxAutomationObject::CreateInstance(const wxString& classId) const { - if (m_dispatchPtr) - return FALSE; - - CLSID clsId; - - wxBasicString unicodeName(classId.mb_str()); - - if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) - { - wxLogWarning(wxT("Cannot obtain CLSID from ProgID")); - return FALSE; - } - - // start a new copy of Excel, grab the IDispatch interface - if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void**)&m_dispatchPtr))) - { - wxLogWarning(wxT("Cannot start an instance of this class.")); - return FALSE; - } - - return TRUE; + if (m_dispatchPtr) + return false; + + CLSID clsId; + + wxBasicString unicodeName(classId.mb_str()); + + if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) + { + wxLogWarning(wxT("Cannot obtain CLSID from ProgID")); + return false; + } + + // start a new copy of Excel, grab the IDispatch interface + if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void**)&m_dispatchPtr))) + { + wxLogWarning(wxT("Cannot start an instance of this class.")); + return false; + } + + return true; } bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) { - ClearVariant(&oleVariant); - if (variant.IsNull()) - { - oleVariant.vt = VT_NULL; - return TRUE; - } + ClearVariant(&oleVariant); + if (variant.IsNull()) + { + oleVariant.vt = VT_NULL; + return true; + } wxString type(variant.GetType()); @@ -586,7 +586,7 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) #ifndef __GNUWIN32__ else if (type == wxT("char")) { - oleVariant.vt=VT_I1; // Signed Char + oleVariant.vt=VT_I1; // Signed Char oleVariant.cVal=variant.GetChar(); } #endif @@ -619,18 +619,18 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) wxDate date( variant.GetDate() ); oleVariant.vt = VT_DATE; - if (!OleDateFromTm(date.GetYear(), date.GetMonth(), date.GetDay(), - 0, 0, 0, oleVariant.date)) - return FALSE; + if (!OleDateFromTm(date.GetYear(), date.GetMonth(), date.GetDay(), + 0, 0, 0, oleVariant.date)) + return false; } else if (type == wxT("time")) { wxTime time( variant.GetTime() ); oleVariant.vt = VT_DATE; - if (!OleDateFromTm(time.GetYear(), time.GetMonth(), time.GetDay(), - time.GetHour(), time.GetMinute(), time.GetSecond(), oleVariant.date)) - return FALSE; + if (!OleDateFromTm(time.GetYear(), time.GetMonth(), time.GetDay(), + time.GetHour(), time.GetMinute(), time.GetSecond(), oleVariant.date)) + return false; } #endif #if wxUSE_DATETIME @@ -639,9 +639,9 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) wxDateTime date( variant.GetDateTime() ); oleVariant.vt = VT_DATE; - if (!OleDateFromTm(date.GetYear(), date.GetMonth(), date.GetDay(), - date.GetHour(), date.GetMinute(), date.GetSecond(), oleVariant.date)) - return FALSE; + if (!OleDateFromTm(date.GetYear(), date.GetMonth(), date.GetDay(), + date.GetHour(), date.GetMinute(), date.GetSecond(), oleVariant.date)) + return false; } #endif else if (type == wxT("void*")) @@ -653,54 +653,54 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) { oleVariant.vt = VT_VARIANT | VT_ARRAY; - SAFEARRAY *psa; - SAFEARRAYBOUND saBound; - VARIANTARG *pvargBase; - VARIANTARG *pvarg; - int i, j; + SAFEARRAY *psa; + SAFEARRAYBOUND saBound; + VARIANTARG *pvargBase; + VARIANTARG *pvarg; + int i, j; int iCount = variant.GetCount(); - - saBound.lLbound = 0; - saBound.cElements = iCount; - - psa = SafeArrayCreate(VT_VARIANT, 1, &saBound); - if (psa == NULL) - return FALSE; - - SafeArrayAccessData(psa, (void**)&pvargBase); - - pvarg = pvargBase; - for (i = 0; i < iCount; i++) - { - // copy each string in the list of strings + + saBound.lLbound = 0; + saBound.cElements = iCount; + + psa = SafeArrayCreate(VT_VARIANT, 1, &saBound); + if (psa == NULL) + return false; + + SafeArrayAccessData(psa, (void**)&pvargBase); + + pvarg = pvargBase; + for (i = 0; i < iCount; i++) + { + // copy each string in the list of strings wxVariant eachVariant(variant[i]); if (!wxConvertVariantToOle(eachVariant, * pvarg)) { - // memory failure: back out and free strings alloc'ed up to - // now, and then the array itself. - pvarg = pvargBase; - for (j = 0; j < i; j++) - { - SysFreeString(pvarg->bstrVal); - pvarg++; - } - SafeArrayDestroy(psa); - return FALSE; - } - pvarg++; - } - - SafeArrayUnaccessData(psa); + // memory failure: back out and free strings alloc'ed up to + // now, and then the array itself. + pvarg = pvargBase; + for (j = 0; j < i; j++) + { + SysFreeString(pvarg->bstrVal); + pvarg++; + } + SafeArrayDestroy(psa); + return false; + } + pvarg++; + } + + SafeArrayUnaccessData(psa); oleVariant.parray = psa; } else { oleVariant.vt = VT_NULL; - return FALSE; + return false; } - return TRUE; + return true; } #ifndef VT_TYPEMASK @@ -709,125 +709,125 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) bool wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) { - switch (oleVariant.vt & VT_TYPEMASK) - { - case VT_BSTR: - { - wxString str(wxConvertStringFromOle(oleVariant.bstrVal)); - variant = str; - break; - } - case VT_DATE: - { + switch (oleVariant.vt & VT_TYPEMASK) + { + case VT_BSTR: + { + wxString str(wxConvertStringFromOle(oleVariant.bstrVal)); + variant = str; + break; + } + case VT_DATE: + { #if wxUSE_DATETIME struct tm tmTemp; - if (!TmFromOleDate(oleVariant.date, tmTemp)) - return FALSE; + if (!TmFromOleDate(oleVariant.date, tmTemp)) + return false; - wxDateTime date(tmTemp.tm_yday, (wxDateTime::Month) tmTemp.tm_mon, tmTemp.tm_year, tmTemp.tm_hour, tmTemp.tm_min, tmTemp.tm_sec); + wxDateTime date(tmTemp.tm_yday, (wxDateTime::Month) tmTemp.tm_mon, tmTemp.tm_year, tmTemp.tm_hour, tmTemp.tm_min, tmTemp.tm_sec); - variant = date; + variant = date; #endif break; - } - case VT_I4: - { - variant = (long) oleVariant.lVal; - break; - } - case VT_I2: - { - variant = (long) oleVariant.iVal; - break; - } - - case VT_BOOL: - { + } + case VT_I4: + { + variant = (long) oleVariant.lVal; + break; + } + case VT_I2: + { + variant = (long) oleVariant.iVal; + break; + } + + case VT_BOOL: + { #if (defined(_MSC_VER) && (_MSC_VER <= 1000) && !defined(__MWERKS__) ) //GC #ifndef HAVE_BOOL // Can't use bool operator if no native bool type - variant = (long) (oleVariant.bool != 0); + variant = (long) (oleVariant.bool != 0); #else - variant = (bool) (oleVariant.bool != 0); + variant = (bool) (oleVariant.bool != 0); #endif #else #ifndef HAVE_BOOL // Can't use bool operator if no native bool type - variant = (long) (oleVariant.boolVal != 0); + variant = (long) (oleVariant.boolVal != 0); #else - variant = (bool) (oleVariant.boolVal != 0); + variant = (bool) (oleVariant.boolVal != 0); #endif #endif - break; - } - case VT_R8: - { - variant = oleVariant.dblVal; - break; - } - case VT_ARRAY: - { - variant.ClearList(); - - int cDims, cElements, i; - VARIANTARG* pvdata; - - // Iterate the dimensions: number of elements is x*y*z - for (cDims = 0, cElements = 1; - cDims < oleVariant.parray->cDims; cDims ++) - cElements *= oleVariant.parray->rgsabound[cDims].cElements; - - // Get a pointer to the data - HRESULT hr = SafeArrayAccessData(oleVariant.parray, (void HUGEP* FAR*) & pvdata); - if (hr != NOERROR) - return FALSE; - // Iterate the data. - for (i = 0; i < cElements; i++) - { - VARIANTARG& oleElement = pvdata[i]; - wxVariant vElement; - if (!wxConvertOleToVariant(oleElement, vElement)) - return FALSE; - - variant.Append(vElement); - } - SafeArrayUnaccessData(oleVariant.parray); - break; - } - case VT_DISPATCH: - { - variant = (void*) oleVariant.pdispVal; - break; - } - case VT_NULL: - { - variant.MakeNull(); - break; - } - case VT_EMPTY: - { - break; // Ignore Empty Variant, used only during destruction of objects - } - default: - { - wxLogError(wxT("wxAutomationObject::ConvertOleToVariant: Unknown variant value type")); - return FALSE; - } - } - return TRUE; + break; + } + case VT_R8: + { + variant = oleVariant.dblVal; + break; + } + case VT_ARRAY: + { + variant.ClearList(); + + int cDims, cElements, i; + VARIANTARG* pvdata; + + // Iterate the dimensions: number of elements is x*y*z + for (cDims = 0, cElements = 1; + cDims < oleVariant.parray->cDims; cDims ++) + cElements *= oleVariant.parray->rgsabound[cDims].cElements; + + // Get a pointer to the data + HRESULT hr = SafeArrayAccessData(oleVariant.parray, (void HUGEP* FAR*) & pvdata); + if (hr != NOERROR) + return false; + // Iterate the data. + for (i = 0; i < cElements; i++) + { + VARIANTARG& oleElement = pvdata[i]; + wxVariant vElement; + if (!wxConvertOleToVariant(oleElement, vElement)) + return false; + + variant.Append(vElement); + } + SafeArrayUnaccessData(oleVariant.parray); + break; + } + case VT_DISPATCH: + { + variant = (void*) oleVariant.pdispVal; + break; + } + case VT_NULL: + { + variant.MakeNull(); + break; + } + case VT_EMPTY: + { + break; // Ignore Empty Variant, used only during destruction of objects + } + default: + { + wxLogError(wxT("wxAutomationObject::ConvertOleToVariant: Unknown variant value type")); + return false; + } + } + return true; } BSTR wxConvertStringToOle(const wxString& str) { /* - unsigned int len = strlen((const char*) str); - unsigned short* s = new unsigned short[len*2+2]; - unsigned int i; - memset(s, 0, len*2+2); - for (i=0; i < len; i++) - s[i*2] = str[i]; + unsigned int len = strlen((const char*) str); + unsigned short* s = new unsigned short[len*2+2]; + unsigned int i; + memset(s, 0, len*2+2); + for (i=0; i < len; i++) + s[i*2] = str[i]; */ - wxBasicString bstr(str.mb_str()); - return bstr.Get(); + wxBasicString bstr(str.mb_str()); + return bstr.Get(); } wxString wxConvertStringFromOle(BSTR bStr) @@ -835,13 +835,13 @@ wxString wxConvertStringFromOle(BSTR bStr) #if wxUSE_UNICODE wxString str(bStr); #else - int len = SysStringLen(bStr) + 1; - char *buf = new char[len]; - (void)wcstombs( buf, bStr, len); - wxString str(buf); - delete[] buf; + int len = SysStringLen(bStr) + 1; + char *buf = new char[len]; + (void)wcstombs( buf, bStr, len); + wxString str(buf); + delete[] buf; #endif - return str; + return str; } // ---------------------------------------------------------------------------- @@ -876,7 +876,7 @@ void wxBasicString::Init(const char *sz) #else UINT lenWide = mbstowcs(NULL, sz, lenAnsi); #endif - + if ( lenWide > 0 ) { m_wzBuf = new OLECHAR[lenWide + 1]; mbstowcs(m_wzBuf, sz, lenAnsi); @@ -897,210 +897,210 @@ wxBasicString::~wxBasicString() // COleDateTime class HELPERS - implementation BOOL OleDateFromTm(WORD wYear, WORD wMonth, WORD wDay, - WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest) + WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest) { - // Validate year and month (ignore day of week and milliseconds) - if (wYear > 9999 || wMonth < 1 || wMonth > 12) - return FALSE; + // Validate year and month (ignore day of week and milliseconds) + if (wYear > 9999 || wMonth < 1 || wMonth > 12) + return FALSE; - // Check for leap year and set the number of days in the month - BOOL bLeapYear = ((wYear & 3) == 0) && - ((wYear % 100) != 0 || (wYear % 400) == 0); + // Check for leap year and set the number of days in the month + BOOL bLeapYear = ((wYear & 3) == 0) && + ((wYear % 100) != 0 || (wYear % 400) == 0); - int nDaysInMonth = - rgMonthDays[wMonth] - rgMonthDays[wMonth-1] + - ((bLeapYear && wDay == 29 && wMonth == 2) ? 1 : 0); + int nDaysInMonth = + rgMonthDays[wMonth] - rgMonthDays[wMonth-1] + + ((bLeapYear && wDay == 29 && wMonth == 2) ? 1 : 0); - // Finish validating the date - if (wDay < 1 || wDay > nDaysInMonth || - wHour > 23 || wMinute > 59 || - wSecond > 59) - { - return FALSE; - } + // Finish validating the date + if (wDay < 1 || wDay > nDaysInMonth || + wHour > 23 || wMinute > 59 || + wSecond > 59) + { + return FALSE; + } - // Cache the date in days and time in fractional days - long nDate; - double dblTime; + // Cache the date in days and time in fractional days + long nDate; + double dblTime; - //It is a valid date; make Jan 1, 1AD be 1 - nDate = wYear*365L + wYear/4 - wYear/100 + wYear/400 + - rgMonthDays[wMonth-1] + wDay; + //It is a valid date; make Jan 1, 1AD be 1 + nDate = wYear*365L + wYear/4 - wYear/100 + wYear/400 + + rgMonthDays[wMonth-1] + wDay; - // If leap year and it's before March, subtract 1: - if (wMonth <= 2 && bLeapYear) - --nDate; + // If leap year and it's before March, subtract 1: + if (wMonth <= 2 && bLeapYear) + --nDate; - // Offset so that 12/30/1899 is 0 - nDate -= 693959L; + // Offset so that 12/30/1899 is 0 + nDate -= 693959L; - dblTime = (((long)wHour * 3600L) + // hrs in seconds - ((long)wMinute * 60L) + // mins in seconds - ((long)wSecond)) / 86400.; + dblTime = (((long)wHour * 3600L) + // hrs in seconds + ((long)wMinute * 60L) + // mins in seconds + ((long)wSecond)) / 86400.; - dtDest = (double) nDate + ((nDate >= 0) ? dblTime : -dblTime); + dtDest = (double) nDate + ((nDate >= 0) ? dblTime : -dblTime); - return TRUE; + return TRUE; } BOOL TmFromOleDate(DATE dtSrc, struct tm& tmDest) { - // The legal range does not actually span year 0 to 9999. - if (dtSrc > MAX_DATE || dtSrc < MIN_DATE) // about year 100 to about 9999 - return FALSE; - - long nDaysAbsolute; // Number of days since 1/1/0 - long nSecsInDay; // Time in seconds since midnight - long nMinutesInDay; // Minutes in day - - long n400Years; // Number of 400 year increments since 1/1/0 - long n400Century; // Century within 400 year block (0,1,2 or 3) - long n4Years; // Number of 4 year increments since 1/1/0 - long n4Day; // Day within 4 year block - // (0 is 1/1/yr1, 1460 is 12/31/yr4) - long n4Yr; // Year within 4 year block (0,1,2 or 3) - BOOL bLeap4 = TRUE; // TRUE if 4 year block includes leap year - - double dblDate = dtSrc; // tempory serial date - - // Round to the second - dblDate += ((dtSrc > 0.0) ? HALF_SECOND : -HALF_SECOND); - - nDaysAbsolute = (long)dblDate + 693959L; // Add days from 1/1/0 to 12/30/1899 - - dblDate = fabs(dblDate); - nSecsInDay = (long)((dblDate - floor(dblDate)) * 86400.); - - // Calculate the day of week (sun=1, mon=2...) - // -1 because 1/1/0 is Sat. +1 because we want 1-based - tmDest.tm_wday = (int)((nDaysAbsolute - 1) % 7L) + 1; - - // Leap years every 4 yrs except centuries not multiples of 400. - n400Years = (long)(nDaysAbsolute / 146097L); - - // Set nDaysAbsolute to day within 400-year block - nDaysAbsolute %= 146097L; - - // -1 because first century has extra day - n400Century = (long)((nDaysAbsolute - 1) / 36524L); - - // Non-leap century - if (n400Century != 0) - { - // Set nDaysAbsolute to day within century - nDaysAbsolute = (nDaysAbsolute - 1) % 36524L; - - // +1 because 1st 4 year increment has 1460 days - n4Years = (long)((nDaysAbsolute + 1) / 1461L); - - if (n4Years != 0) - n4Day = (long)((nDaysAbsolute + 1) % 1461L); - else - { - bLeap4 = FALSE; - n4Day = (long)nDaysAbsolute; - } - } - else - { - // Leap century - not special case! - n4Years = (long)(nDaysAbsolute / 1461L); - n4Day = (long)(nDaysAbsolute % 1461L); - } - - if (bLeap4) - { - // -1 because first year has 366 days - n4Yr = (n4Day - 1) / 365; - - if (n4Yr != 0) - n4Day = (n4Day - 1) % 365; - } - else - { - n4Yr = n4Day / 365; - n4Day %= 365; - } - - // n4Day is now 0-based day of year. Save 1-based day of year, year number - tmDest.tm_yday = (int)n4Day + 1; - tmDest.tm_year = n400Years * 400 + n400Century * 100 + n4Years * 4 + n4Yr; - - // Handle leap year: before, on, and after Feb. 29. - if (n4Yr == 0 && bLeap4) - { - // Leap Year - if (n4Day == 59) - { - /* Feb. 29 */ - tmDest.tm_mon = 2; - tmDest.tm_mday = 29; - goto DoTime; - } - - // Pretend it's not a leap year for month/day comp. - if (n4Day >= 60) - --n4Day; - } - - // Make n4DaY a 1-based day of non-leap year and compute - // month/day for everything but Feb. 29. - ++n4Day; - - // Month number always >= n/32, so save some loop time */ - for (tmDest.tm_mon = (n4Day >> 5) + 1; - n4Day > rgMonthDays[tmDest.tm_mon]; tmDest.tm_mon++) - ; - - tmDest.tm_mday = (int)(n4Day - rgMonthDays[tmDest.tm_mon-1]); + // The legal range does not actually span year 0 to 9999. + if (dtSrc > MAX_DATE || dtSrc < MIN_DATE) // about year 100 to about 9999 + return FALSE; + + long nDaysAbsolute; // Number of days since 1/1/0 + long nSecsInDay; // Time in seconds since midnight + long nMinutesInDay; // Minutes in day + + long n400Years; // Number of 400 year increments since 1/1/0 + long n400Century; // Century within 400 year block (0,1,2 or 3) + long n4Years; // Number of 4 year increments since 1/1/0 + long n4Day; // Day within 4 year block + // (0 is 1/1/yr1, 1460 is 12/31/yr4) + long n4Yr; // Year within 4 year block (0,1,2 or 3) + BOOL bLeap4 = TRUE; // TRUE if 4 year block includes leap year + + double dblDate = dtSrc; // tempory serial date + + // Round to the second + dblDate += ((dtSrc > 0.0) ? HALF_SECOND : -HALF_SECOND); + + nDaysAbsolute = (long)dblDate + 693959L; // Add days from 1/1/0 to 12/30/1899 + + dblDate = fabs(dblDate); + nSecsInDay = (long)((dblDate - floor(dblDate)) * 86400.); + + // Calculate the day of week (sun=1, mon=2...) + // -1 because 1/1/0 is Sat. +1 because we want 1-based + tmDest.tm_wday = (int)((nDaysAbsolute - 1) % 7L) + 1; + + // Leap years every 4 yrs except centuries not multiples of 400. + n400Years = (long)(nDaysAbsolute / 146097L); + + // Set nDaysAbsolute to day within 400-year block + nDaysAbsolute %= 146097L; + + // -1 because first century has extra day + n400Century = (long)((nDaysAbsolute - 1) / 36524L); + + // Non-leap century + if (n400Century != 0) + { + // Set nDaysAbsolute to day within century + nDaysAbsolute = (nDaysAbsolute - 1) % 36524L; + + // +1 because 1st 4 year increment has 1460 days + n4Years = (long)((nDaysAbsolute + 1) / 1461L); + + if (n4Years != 0) + n4Day = (long)((nDaysAbsolute + 1) % 1461L); + else + { + bLeap4 = FALSE; + n4Day = (long)nDaysAbsolute; + } + } + else + { + // Leap century - not special case! + n4Years = (long)(nDaysAbsolute / 1461L); + n4Day = (long)(nDaysAbsolute % 1461L); + } + + if (bLeap4) + { + // -1 because first year has 366 days + n4Yr = (n4Day - 1) / 365; + + if (n4Yr != 0) + n4Day = (n4Day - 1) % 365; + } + else + { + n4Yr = n4Day / 365; + n4Day %= 365; + } + + // n4Day is now 0-based day of year. Save 1-based day of year, year number + tmDest.tm_yday = (int)n4Day + 1; + tmDest.tm_year = n400Years * 400 + n400Century * 100 + n4Years * 4 + n4Yr; + + // Handle leap year: before, on, and after Feb. 29. + if (n4Yr == 0 && bLeap4) + { + // Leap Year + if (n4Day == 59) + { + /* Feb. 29 */ + tmDest.tm_mon = 2; + tmDest.tm_mday = 29; + goto DoTime; + } + + // Pretend it's not a leap year for month/day comp. + if (n4Day >= 60) + --n4Day; + } + + // Make n4DaY a 1-based day of non-leap year and compute + // month/day for everything but Feb. 29. + ++n4Day; + + // Month number always >= n/32, so save some loop time */ + for (tmDest.tm_mon = (n4Day >> 5) + 1; + n4Day > rgMonthDays[tmDest.tm_mon]; tmDest.tm_mon++) + ; + + tmDest.tm_mday = (int)(n4Day - rgMonthDays[tmDest.tm_mon-1]); DoTime: - if (nSecsInDay == 0) - tmDest.tm_hour = tmDest.tm_min = tmDest.tm_sec = 0; - else - { - tmDest.tm_sec = (int)nSecsInDay % 60L; - nMinutesInDay = nSecsInDay / 60L; - tmDest.tm_min = (int)nMinutesInDay % 60; - tmDest.tm_hour = (int)nMinutesInDay / 60; - } - - return TRUE; + if (nSecsInDay == 0) + tmDest.tm_hour = tmDest.tm_min = tmDest.tm_sec = 0; + else + { + tmDest.tm_sec = (int)nSecsInDay % 60L; + nMinutesInDay = nSecsInDay / 60L; + tmDest.tm_min = (int)nMinutesInDay % 60; + tmDest.tm_hour = (int)nMinutesInDay / 60; + } + + return TRUE; } // this function is not used #if 0 void TmConvertToStandardFormat(struct tm& tmSrc) { - // Convert afx internal tm to format expected by runtimes (_tcsftime, etc) - tmSrc.tm_year -= 1900; // year is based on 1900 - tmSrc.tm_mon -= 1; // month of year is 0-based - tmSrc.tm_wday -= 1; // day of week is 0-based - tmSrc.tm_yday -= 1; // day of year is 0-based + // Convert afx internal tm to format expected by runtimes (_tcsftime, etc) + tmSrc.tm_year -= 1900; // year is based on 1900 + tmSrc.tm_mon -= 1; // month of year is 0-based + tmSrc.tm_wday -= 1; // day of week is 0-based + tmSrc.tm_yday -= 1; // day of year is 0-based } double DoubleFromDate(DATE dt) { - // No problem if positive - if (dt >= 0) - return dt; - - // If negative, must convert since negative dates not continuous - // (examples: -1.25 to -.75, -1.50 to -.50, -1.75 to -.25) - double temp = ceil(dt); - return temp - (dt - temp); + // No problem if positive + if (dt >= 0) + return dt; + + // If negative, must convert since negative dates not continuous + // (examples: -1.25 to -.75, -1.50 to -.50, -1.75 to -.25) + double temp = ceil(dt); + return temp - (dt - temp); } DATE DateFromDouble(double dbl) { - // No problem if positive - if (dbl >= 0) - return dbl; - - // If negative, must convert since negative dates not continuous - // (examples: -.75 to -1.25, -.50 to -1.50, -.25 to -1.75) - double temp = floor(dbl); // dbl is now whole part - return temp + (temp - dbl); + // No problem if positive + if (dbl >= 0) + return dbl; + + // If negative, must convert since negative dates not continuous + // (examples: -.75 to -1.25, -.50 to -1.50, -.25 to -1.75) + double temp = floor(dbl); // dbl is now whole part + return temp + (temp - dbl); } #endif // 0 @@ -1111,11 +1111,11 @@ DATE DateFromDouble(double dbl) */ static void ClearVariant(VARIANTARG *pvarg) { - pvarg->vt = VT_EMPTY; - pvarg->wReserved1 = 0; - pvarg->wReserved2 = 0; - pvarg->wReserved3 = 0; - pvarg->lVal = 0; + pvarg->vt = VT_EMPTY; + pvarg->wReserved1 = 0; + pvarg->wReserved2 = 0; + pvarg->wReserved3 = 0; + pvarg->lVal = 0; } /* @@ -1126,134 +1126,134 @@ static void ClearVariant(VARIANTARG *pvarg) */ static void ReleaseVariant(VARIANTARG *pvarg) { - VARTYPE vt; - VARIANTARG _huge *pvargArray; - long lLBound, lUBound, l; - - vt = pvarg->vt & 0xfff; // mask off flags - - // check if an array. If so, free its contents, then the array itself. - if (V_ISARRAY(pvarg)) - { - // variant arrays are all this routine currently knows about. Since a - // variant can contain anything (even other arrays), call ourselves - // recursively. - if (vt == VT_VARIANT) - { - SafeArrayGetLBound(pvarg->parray, 1, &lLBound); - SafeArrayGetUBound(pvarg->parray, 1, &lUBound); - - if (lUBound > lLBound) - { - lUBound -= lLBound; - - SafeArrayAccessData(pvarg->parray, (void**)&pvargArray); - - for (l = 0; l < lUBound; l++) - { - ReleaseVariant(pvargArray); - pvargArray++; - } - - SafeArrayUnaccessData(pvarg->parray); - } - } - else - { - wxLogWarning(wxT("ReleaseVariant: Array contains non-variant type")); - } - - // Free the array itself. - SafeArrayDestroy(pvarg->parray); - } - else - { - switch (vt) - { - case VT_DISPATCH: - if (pvarg->pdispVal) - pvarg->pdispVal->Release(); - break; - - case VT_BSTR: - SysFreeString(pvarg->bstrVal); - break; - - case VT_I2: - case VT_BOOL: - case VT_R8: - case VT_ERROR: // to avoid erroring on an error return from Excel - // no work for these types - break; - - default: - wxLogWarning(wxT("ReleaseVariant: Unknown type")); - break; - } - } - - ClearVariant(pvarg); + VARTYPE vt; + VARIANTARG _huge *pvargArray; + long lLBound, lUBound, l; + + vt = pvarg->vt & 0xfff; // mask off flags + + // check if an array. If so, free its contents, then the array itself. + if (V_ISARRAY(pvarg)) + { + // variant arrays are all this routine currently knows about. Since a + // variant can contain anything (even other arrays), call ourselves + // recursively. + if (vt == VT_VARIANT) + { + SafeArrayGetLBound(pvarg->parray, 1, &lLBound); + SafeArrayGetUBound(pvarg->parray, 1, &lUBound); + + if (lUBound > lLBound) + { + lUBound -= lLBound; + + SafeArrayAccessData(pvarg->parray, (void**)&pvargArray); + + for (l = 0; l < lUBound; l++) + { + ReleaseVariant(pvargArray); + pvargArray++; + } + + SafeArrayUnaccessData(pvarg->parray); + } + } + else + { + wxLogWarning(wxT("ReleaseVariant: Array contains non-variant type")); + } + + // Free the array itself. + SafeArrayDestroy(pvarg->parray); + } + else + { + switch (vt) + { + case VT_DISPATCH: + if (pvarg->pdispVal) + pvarg->pdispVal->Release(); + break; + + case VT_BSTR: + SysFreeString(pvarg->bstrVal); + break; + + case VT_I2: + case VT_BOOL: + case VT_R8: + case VT_ERROR: // to avoid erroring on an error return from Excel + // no work for these types + break; + + default: + wxLogWarning(wxT("ReleaseVariant: Unknown type")); + break; + } + } + + ClearVariant(pvarg); } #if 0 void ShowException(LPOLESTR szMember, HRESULT hr, EXCEPINFO *pexcep, unsigned int uiArgErr) { - TCHAR szBuf[512]; - - switch (GetScode(hr)) - { - case DISP_E_UNKNOWNNAME: - wsprintf(szBuf, L"%s: Unknown name or named argument.", szMember); - break; - - case DISP_E_BADPARAMCOUNT: - wsprintf(szBuf, L"%s: Incorrect number of arguments.", szMember); - break; - - case DISP_E_EXCEPTION: - wsprintf(szBuf, L"%s: Error %d: ", szMember, pexcep->wCode); - if (pexcep->bstrDescription != NULL) - lstrcat(szBuf, pexcep->bstrDescription); - else - lstrcat(szBuf, L"<>"); - break; - - case DISP_E_MEMBERNOTFOUND: - wsprintf(szBuf, L"%s: method or property not found.", szMember); - break; - - case DISP_E_OVERFLOW: - wsprintf(szBuf, L"%s: Overflow while coercing argument values.", szMember); - break; - - case DISP_E_NONAMEDARGS: - wsprintf(szBuf, L"%s: Object implementation does not support named arguments.", - szMember); - break; - - case DISP_E_UNKNOWNLCID: - wsprintf(szBuf, L"%s: The locale ID is unknown.", szMember); - break; - - case DISP_E_PARAMNOTOPTIONAL: - wsprintf(szBuf, L"%s: Missing a required parameter.", szMember); - break; - - case DISP_E_PARAMNOTFOUND: - wsprintf(szBuf, L"%s: Argument not found, argument %d.", szMember, uiArgErr); - break; - - case DISP_E_TYPEMISMATCH: - wsprintf(szBuf, L"%s: Type mismatch, argument %d.", szMember, uiArgErr); - break; - - default: - wsprintf(szBuf, L"%s: Unknown error occured.", szMember); - break; - } - - wxLogWarning(szBuf); + TCHAR szBuf[512]; + + switch (GetScode(hr)) + { + case DISP_E_UNKNOWNNAME: + wsprintf(szBuf, L"%s: Unknown name or named argument.", szMember); + break; + + case DISP_E_BADPARAMCOUNT: + wsprintf(szBuf, L"%s: Incorrect number of arguments.", szMember); + break; + + case DISP_E_EXCEPTION: + wsprintf(szBuf, L"%s: Error %d: ", szMember, pexcep->wCode); + if (pexcep->bstrDescription != NULL) + lstrcat(szBuf, pexcep->bstrDescription); + else + lstrcat(szBuf, L"<>"); + break; + + case DISP_E_MEMBERNOTFOUND: + wsprintf(szBuf, L"%s: method or property not found.", szMember); + break; + + case DISP_E_OVERFLOW: + wsprintf(szBuf, L"%s: Overflow while coercing argument values.", szMember); + break; + + case DISP_E_NONAMEDARGS: + wsprintf(szBuf, L"%s: Object implementation does not support named arguments.", + szMember); + break; + + case DISP_E_UNKNOWNLCID: + wsprintf(szBuf, L"%s: The locale ID is unknown.", szMember); + break; + + case DISP_E_PARAMNOTOPTIONAL: + wsprintf(szBuf, L"%s: Missing a required parameter.", szMember); + break; + + case DISP_E_PARAMNOTFOUND: + wsprintf(szBuf, L"%s: Argument not found, argument %d.", szMember, uiArgErr); + break; + + case DISP_E_TYPEMISMATCH: + wsprintf(szBuf, L"%s: Type mismatch, argument %d.", szMember, uiArgErr); + break; + + default: + wsprintf(szBuf, L"%s: Unknown error occured.", szMember); + break; + } + + wxLogWarning(szBuf); } #endif diff --git a/src/msw/ole/dropsrc.cpp b/src/msw/ole/dropsrc.cpp index 7972450bd2..e9f543c59b 100644 --- a/src/msw/ole/dropsrc.cpp +++ b/src/msw/ole/dropsrc.cpp @@ -241,11 +241,11 @@ bool wxDropSource::GiveFeedback(wxDragResult effect) { ::SetCursor((HCURSOR)cursor.GetHCURSOR()); - return TRUE; + return true; } else { - return FALSE; + return false; } } diff --git a/src/msw/ole/droptgt.cpp b/src/msw/ole/droptgt.cpp index 23ff76e111..f24c08b0e5 100644 --- a/src/msw/ole/droptgt.cpp +++ b/src/msw/ole/droptgt.cpp @@ -294,7 +294,7 @@ STDMETHODIMP wxIDropTarget::Drop(IDataObject *pIDataSource, } //else: *pdwEffect is already DROPEFFECT_NONE } - //else: OnDrop() returned FALSE, no need to copy data + //else: OnDrop() returned false, no need to copy data // release the held object RELEASE_AND_NULL(m_pIDataObject); @@ -335,7 +335,7 @@ bool wxDropTarget::Register(WXHWND hwnd) // Or maybe we can dynamically load them from ceshell.dll // or similar. #if defined(__WXWINCE__) && _WIN32_WCE >= 400 - return FALSE; + return false; #else HRESULT hr; @@ -344,7 +344,7 @@ bool wxDropTarget::Register(WXHWND hwnd) hr = ::CoLockObjectExternal(m_pIDropTarget, TRUE, FALSE); if ( FAILED(hr) ) { wxLogApiError(wxT("CoLockObjectExternal"), hr); - return FALSE; + return false; } #endif @@ -355,13 +355,13 @@ bool wxDropTarget::Register(WXHWND hwnd) ::CoLockObjectExternal(m_pIDropTarget, FALSE, FALSE); #endif wxLogApiError(wxT("RegisterDragDrop"), hr); - return FALSE; + return false; } // we will need the window handle for coords transformation later m_pIDropTarget->SetHwnd((HWND)hwnd); - return TRUE; + return true; #endif } @@ -389,11 +389,11 @@ void wxDropTarget::Revoke(WXHWND hwnd) // base class pure virtuals // ---------------------------------------------------------------------------- -// OnDrop() is called only if we previously returned TRUE from +// OnDrop() is called only if we previously returned true from // IsAcceptedData(), so no need to check anything here bool wxDropTarget::OnDrop(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) { - return TRUE; + return true; } // copy the data from the data source to the target data object @@ -404,7 +404,7 @@ bool wxDropTarget::GetData() // this is strange because IsAcceptedData() succeeded previously! wxFAIL_MSG(wxT("strange - did supported formats list change?")); - return FALSE; + return false; } STGMEDIUM stm; @@ -415,7 +415,7 @@ bool wxDropTarget::GetData() fmtMemory.lindex = -1; fmtMemory.tymed = TYMED_HGLOBAL; // TODO to add other media - bool rc = FALSE; + bool rc = false; HRESULT hr = m_pIDataSource->GetData(&fmtMemory, &stm); if ( SUCCEEDED(hr) ) { @@ -423,7 +423,7 @@ bool wxDropTarget::GetData() hr = dataObject->SetData(&fmtMemory, &stm, TRUE); if ( SUCCEEDED(hr) ) { - rc = TRUE; + rc = true; } else { wxLogApiError(wxT("IDataObject::SetData()"), hr); diff --git a/src/msw/ole/oleutils.cpp b/src/msw/ole/oleutils.cpp index c8ce51a5b7..ce53368f7a 100644 --- a/src/msw/ole/oleutils.cpp +++ b/src/msw/ole/oleutils.cpp @@ -60,15 +60,15 @@ // Implementation // ============================================================================ -// return TRUE if the iid is in the array +// return true if the iid is in the array bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount) { for ( size_t i = 0; i < nCount; i++ ) { if ( riid == *aIids[i] ) - return TRUE; + return true; } - return FALSE; + return false; } #if wxUSE_DATAOBJ diff --git a/src/msw/ole/uuid.cpp b/src/msw/ole/uuid.cpp index 87bdd0cc08..7fe591484f 100644 --- a/src/msw/ole/uuid.cpp +++ b/src/msw/ole/uuid.cpp @@ -2,7 +2,7 @@ // Name: ole/uuid.cpp // Purpose: implements Uuid class, see uuid.h for details // Author: Vadim Zeitlin -// Modified by: +// Modified by: // Created: 12.09.96 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin @@ -48,8 +48,8 @@ // copy ctor Uuid::Uuid(const Uuid& uuid) { - // bitwise copy Ok for UUIDs - m_uuid = uuid.m_uuid; + // bitwise copy Ok for UUIDs + m_uuid = uuid.m_uuid; // force the string to be allocated by RPC // (we free it later with RpcStringFree) @@ -89,11 +89,11 @@ Uuid& Uuid::operator=(const Uuid& uuid) } // dtor -Uuid::~Uuid() -{ +Uuid::~Uuid() +{ // this string must be allocated by RPC! // (otherwise you get a debug breakpoint deep inside RPC DLL) - if ( m_pszUuid ) + if ( m_pszUuid ) #ifdef _UNICODE RpcStringFree((unsigned short **)&m_pszUuid); #else @@ -129,7 +129,7 @@ void Uuid::Create() // can't fail UuidCreate(&uuid); - + Set(uuid); } @@ -143,7 +143,7 @@ bool Uuid::Set(const wxChar *pc) if ( UuidFromString((wxUChar *)pc, &m_uuid) != RPC_S_OK) #endif // failed: probably invalid string - return FALSE; + return false; // transform it back to string to normalize it #ifdef _UNICODE @@ -155,7 +155,7 @@ bool Uuid::Set(const wxChar *pc) // update m_pszCForm UuidToCForm(); - return TRUE; + return true; } // stores m_uuid in m_pszCForm in a format required by -- 2.45.2