home *** CD-ROM | disk | FTP | other *** search
-
- #include "lstr.h"
-
- extern long g_cLock;
-
- STDMETHODIMP CLowerStr::QueryInterface(REFIID iid, void **ppv)
- {
- HRESULT hr;
-
- *ppv = NULL;
-
- if((iid == IID_IUnknown) || (iid == IID_ILowerStr) )
- {
- *ppv = (ILowerStr *)this;
- AddRef();
- hr = S_OK;
- }
- else if(iid == IID_IHelpLowerStr)
- {
- *ppv = (IHelpLowerStr *) this;
- AddRef();
- hr = S_OK;
- }
- else
- {
- *ppv = NULL;
- hr = E_NOINTERFACE;
- }
-
- return hr;
-
- }
-
- STDMETHODIMP_(ULONG) CLowerStr::AddRef()
- {
- m_dwRef++;
- return m_dwRef;
- }
-
- STDMETHODIMP_(ULONG) CLowerStr::Release()
- {
- m_dwRef--;
- if(m_dwRef == 0)
- delete this;
- return m_dwRef;
- }
-
-
- 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 CLowerStr::HelpLower()
- {
- return S_OK;
- }
-
-
-
- CLowerStr::CLowerStr()
- {
- m_dwRef = 1;
- }
-
- CLowerStr::~CLowerStr()
- {
- }
-
-
- CLowerStrClassFactory::CLowerStrClassFactory()
- {
- m_dwRef=1;
- }
-
- CLowerStrClassFactory::~CLowerStrClassFactory()
- {
- }
-
-
- STDMETHODIMP CLowerStrClassFactory::QueryInterface (REFIID iid,void **ppv)
- {
- HRESULT hr;
- *ppv = NULL;
-
- if (IID_IUnknown== iid || IID_IClassFactory== iid)
- {
- *ppv=this;
- AddRef();
- hr = S_OK;
- }
- else
- {
- *ppv = NULL;
- hr = E_NOINTERFACE;
- }
-
- return hr;
- }
-
-
- STDMETHODIMP_(ULONG) CLowerStrClassFactory::AddRef(void)
- {
- return m_dwRef++;
- }
-
- //Release
- STDMETHODIMP_(ULONG) CLowerStrClassFactory::Release(void)
- {
- m_dwRef--;
-
- if(m_dwRef == 0)
- delete this;
-
- return m_dwRef;
- }
-
-
- STDMETHODIMP CLowerStrClassFactory::CreateInstance (IUnknown *pUnkOuter,REFIID iid,void **ppv)
- {
- HRESULT hr;
- CLowerStr *pObj;
-
- *ppv = NULL;
-
- pObj = new CLowerStr;
-
- if (pObj)
- {
- hr=pObj->QueryInterface(iid,ppv);
- pObj->Release();
- }
- else
- {
- hr = E_OUTOFMEMORY;
- *ppv = NULL;
- }
-
- return hr;
- }
-
- STDMETHODIMP CLowerStrClassFactory::LockServer(BOOL fLock)
- {
- if (fLock)
- g_cLock++;
- else
- g_cLock--;
-
- return S_OK;
- }
-
-
-
-
-
-
-