home *** CD-ROM | disk | FTP | other *** search
- // Simple.cpp : Implementation of CSimple
-
- #include "stdafx.h"
- #include "CATLSmpl.h"
- #include "Simple.h"
-
- /////////////////////////////////////////////////////////////////////////////
- //
-
- // Created by the ATL 1.1 COM Wizard
- STDMETHODIMP CSimple::InterfaceSupportsErrorInfo(REFIID riid)
- {
- static const IID* arr[] =
- {
- &IID_ISimple,
- };
-
- for (int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
- {
- if (InlineIsEqualGUID(*arr[i],riid))
- return S_OK;
- }
- return S_FALSE;
- }
-
- //Ctor
- CSimple::CSimple()
- : m_bstrMyProperty(OLESTR("C++ ATL Simple Component"))
- {}
-
- //Put function for myProperty
- STDMETHODIMP CSimple::put_myProperty(BSTR bstrInValue)
- {
- if (bstrInValue == NULL)
- return E_POINTER;
-
- m_bstrMyProperty = bstrInValue;
-
- return S_OK;
- }
-
- //Get function for myProperty
- STDMETHODIMP CSimple::get_myProperty(BSTR* pbstrOutValue)
- {
- if (pbstrOutValue == NULL)
- return E_POINTER;
-
- // Get Value from Property
- *pbstrOutValue = m_bstrMyProperty.Copy();
-
- return S_OK;
- }
-
- //Basic Method to convert a string to uppercase
- STDMETHODIMP CSimple::myMethod(BSTR bstrIn, BSTR* pbstrOut)
- {
- if (bstrIn == NULL || pbstrOut == NULL)
- return E_POINTER;
-
- // Create a temporary CComBSTR
- CComBSTR bstrTemp(bstrIn);
-
- if (!bstrTemp)
- return E_OUTOFMEMORY;
-
- // Make string uppercase
- wcsupr(bstrTemp);
-
- // Return m_str member of bstrTemp
- *pbstrOut = bstrTemp.Detach();
-
- return S_OK;
- }
-