2025-11-28 00:35:46 +09:00

76 lines
1.4 KiB
C++

// Simple.cpp : Implementation of CSimple
#include "stdafx.h"
#include "CATLSmpl.h"
#include "Simple.h"
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;
}
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;
}