| Platform SDK: Exchange 2000 Server |
[This is preliminary documentation and subject to change.]
The folder's content class.
[Visual Basic,VBScript] Property ContentClass as String [C++] HRESULT get_ContentClass(BSTR* pVal); HRESULT put_ContentClass(BSTR Val); [IDL] HRESULT [propget] ContentClass([out,retval] BSTR* pVal); HRESULT [propput] ContentClass([in] BSTR Val);
The ContentClass property is used to indicate the intent or purpose of the folder. For example, a user's inbox has a content class of "urn:content-classes:mailfolder".
The content class is not the same as the PR_CONTAINER_CLASS MAPI property.
' Reference to Microsoft ActiveX Data Objects 2.5 Library
' Reference to Microsoft CDO for Exchange 2000 Library
Function CreateFolder( Url as String, _
ContentClass as String, _
Description as String )
Set Fldr = New CDO.Folder
With Fldr
.ContentClass = ContentClass
.Description = Description
.DataSource.SaveTo Url, , _
adModeReadWrite, _
adCreateCollection Or adCreateOverWrite
End With
Set CreateFolder = Fldr
End Function
Const adModeReadWrite = 3
Const adCreateCollection = 8192
Const adCreateOverwrite = 67108864
Function CreateFolder( Url, ContentClass, Description )
Set Fldr = CreateObject("CDO.Folder")
With Fldr
.ContentClass = ContentClass
.Description = Description
.DataSource.SaveTo Url, , _
adModeReadWrite, _
adCreateCollection Or adCreateOverWrite
End With
Set CreateFolder = Fldr
End Function
HRESULT CreateFolder(BSTR Url, BSTR contentclass, BSTR Description, IFolder** ppFldr) {
/* Assume these headers:
*
* #import <msado15.dll> no_namespace
* #import <cdoex.dll> no_namespace
*
*/
if(ppFldr == NULL)
return E_POINTER;
IDataSource* pDsrc = NULL;
HRESULT hr = CoCreateInstance(
__uuidof(Folder),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IFolder),
reinterpret_cast<void**>(ppFldr));
if(FAILED(hr))
return hr;
hr = (*ppFldr)->put_ContentClass(contentclass);
hr = (*ppFldr)->put_Description(Description);
if(FAILED(hr)) {
(*ppFldr)->Release();
*ppFldr = NULL;
return E_UNEXPECTED;
}
hr = (*ppFldr)->QueryInterface(
__uuidof(IDataSource),
reinterpret_cast<void**>(&pDsrc));
if(FAILED(hr)) {
(*ppFldr)->Release();
*ppFldr = NULL;
return E_UNEXPECTED;
}
hr = pDsrc->raw_SaveTo(
Url,
NULL,
adModeReadWrite,
(RecordCreateOptionsEnum)
( adCreateCollection |
adCreateOverwrite
),
adOpenSource,
NULL,
NULL);
if(FAILED(hr)) {
(*ppFldr)->Release();
*ppFldr = NULL;
}
pDsrc->Release();
pDsrc = NULL;
return hr;
}