home *** CD-ROM | disk | FTP | other *** search
- #include "lstr.h"
- #include "guid.h"
-
- extern long g_cLock;
-
-
- STDMETHODIMP CLowerStr::QueryInterface(REFIID iid, void **ppv)
- {
- HRESULT hr;
-
- if ( (iid == IID_IUnknown) || (iid == IID_ILowerStr))
- {
- *ppv = (ILowerStr *)this;
- AddRef();
- hr = S_OK;
- }
- else
- {
- *ppv = 0;
- hr = E_NOINTERFACE;
- }
-
- return hr;
- }
-
- DWORD STDMETHODCALLTYPE
- CLowerStr::AddRef()
- {
- m_dwRef++;
-
- return m_dwRef;
- }
-
- DWORD STDMETHODCALLTYPE
- CLowerStr::Release()
- {
- m_dwRef--;
-
- if(m_dwRef == 0)
- delete this;
-
- return m_dwRef;
-
- }
-
-
- CLowerStr::~CLowerStr()
- {
- PostQuitMessage(0);
- }
-
-
-
- CLowerStr::CLowerStr()
- {
- m_dwRef= 1;
- }
-
- STDMETHODIMP CLowerStr::Lower(char*lpInput, char**pOutput)
- {
-
- int i;
-
- *pOutput = new char[strlen(lpInput) + 1];
-
- for (i=0; i< strlen(lpInput); i++)
- {
- if(isupper(*(lpInput+i)))
- *(*pOutput+i) = _tolower(*(lpInput + i));
- else
- *(*pOutput+i) = *(lpInput + i);
- }
-
- *(*pOutput+i) = '\0';
-
- return S_OK;
-
- }
-
- STDMETHODIMP CLowerStrClassFactory::QueryInterface(REFIID iid, void **ppv)
- {
- HRESULT hr;
-
- if ((iid == IID_IUnknown) || (iid == IID_IClassFactory))
- {
- *ppv = this;
- AddRef();
- hr = S_OK;
- }
- else
- {
- *ppv = 0;
- hr = E_NOINTERFACE;
- }
-
- return hr;
- }
-
- STDMETHODIMP_(ULONG) CLowerStrClassFactory::AddRef()
- {
- m_dwRef++;
- return m_dwRef;
- }
-
-
- STDMETHODIMP_(ULONG) CLowerStrClassFactory::Release()
- {
- m_dwRef--;
-
- if(m_dwRef == 0)
- delete this;
-
- return m_dwRef;
- }
-
- STDMETHODIMP CLowerStrClassFactory::CreateInstance(IUnknown *punkOuter, REFIID riid, void **ppv)
- {
- HRESULT hr;
- CLowerStr *pObj;
-
- if (punkOuter != 0)
- {
- return CLASS_E_NOAGGREGATION;
- }
-
- pObj = new CLowerStr();
-
- if (pObj != 0)
- {
- hr = pObj->QueryInterface(riid, ppv);
- pObj->Release();
- }
- else
- {
- hr = E_OUTOFMEMORY;
- *ppv = 0;
- }
- return hr;
- }
-
-
- STDMETHODIMP CLowerStrClassFactory::LockServer(BOOL fLock)
- {
- if (fLock == TRUE)
- g_cLock++;
- else
- g_cLock--;
-
- return S_OK;
- }
-
- CLowerStrClassFactory::~CLowerStrClassFactory()
- {
- PostQuitMessage(0);
- }
-
- CLowerStrClassFactory::CLowerStrClassFactory()
- {
- m_dwRef = 1;
- }
-