mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.1 KiB
85 lines
2.1 KiB
/*---------------------------------------------------------------------------
|
|
File: MapiUtil.cpp
|
|
|
|
Comments: COM helper object that enumerates MAPI profiles on a computer, and
|
|
containers in the exchange directory. This is used by the GUI to show the available
|
|
mapi profiles and containers for selection.
|
|
|
|
(c) Copyright 1999, Mission Critical Software, Inc., All Rights Reserved
|
|
Proprietary and confidential to Mission Critical Software, Inc.
|
|
|
|
REVISION LOG ENTRY
|
|
Revision By: Christy Boles
|
|
Revised on 07/01/99
|
|
|
|
---------------------------------------------------------------------------
|
|
*/// MapiUtil.cpp : Implementation of CMapiUtil
|
|
#include "stdafx.h"
|
|
#include "McsMapi.h"
|
|
#include "MapiUtil.h"
|
|
|
|
#include "ListProf.h"
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMapiUtil
|
|
|
|
|
|
STDMETHODIMP CMapiUtil::ListContainers(BSTR profile, IUnknown **pUnkOut)
|
|
{
|
|
HRESULT hr = S_OK;
|
|
|
|
IVarSetPtr pVarSet(CLSID_VarSet);
|
|
IUnknownPtr pUnk;
|
|
|
|
hr = ::ListContainers((WCHAR*)profile,pVarSet);
|
|
|
|
if ( FAILED(hr) )
|
|
{
|
|
pVarSet->put("McsMapiUtil.ErrorCode",hr);
|
|
hr = S_OK;
|
|
}
|
|
pUnk = pVarSet;
|
|
(*pUnkOut) = pUnk;
|
|
(*pUnkOut)->AddRef();
|
|
|
|
return hr;
|
|
}
|
|
|
|
STDMETHODIMP CMapiUtil::ListProfiles(IUnknown **pUnkOut)
|
|
{
|
|
HRESULT hr = S_OK;
|
|
|
|
IVarSetPtr pVarSet(CLSID_VarSet);
|
|
IUnknownPtr pUnk;
|
|
|
|
hr = ::ListProfiles(pVarSet);
|
|
|
|
if ( FAILED(hr) )
|
|
{
|
|
pVarSet->put("McsMapiUtil.ErrorCode",hr);
|
|
hr = S_OK;
|
|
}
|
|
pUnk = pVarSet;
|
|
(*pUnkOut) = pUnk;
|
|
(*pUnkOut)->AddRef();
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
STDMETHODIMP CMapiUtil::ProfileGetServer(BSTR profile, BSTR *exchangeServer)
|
|
{
|
|
WCHAR computername[MAX_PATH];
|
|
HRESULT hr = S_OK;
|
|
|
|
hr = ::ProfileGetServer(NULL,(WCHAR*)profile,computername);
|
|
|
|
if ( SUCCEEDED(hr) )
|
|
{
|
|
(*exchangeServer) = SysAllocString(computername);
|
|
}
|
|
else
|
|
{
|
|
(*exchangeServer) = NULL;
|
|
}
|
|
return hr;
|
|
}
|