Platform SDK: CDO for Windows 2000

Count Property

The Count property returns the number of Message objects contained in the collection.

[Visual Basic]
Property Count as Long
read-only
[C++]
HRESULT get_Count(long* pVal);
[IDL]
HRESULT [propget] Count([out,retval] long* pVal);

Remarks

The Count property returns the number of objects in the collection. The index values for the objects in the collection range from 1 to Count.

The collection is not automatically updated when new messages arrive in the file system folder. To update the collection, you need to call the IDropDirectory.GetMessages method again and retrieve a new collection.

Example

[Visual Basic]
' Reference to Microsoft ActiveX Data Objects 2.5 Library
' Reference to Microsoft CDO for Windows 2000 Library
Dim iDropDir as New CDO.DropDirectory
Dim iMsgs as CDO.IMessages
Dim iMsg as CDO.Message
Dim i as Long
Dim C as Long
i = 1
Set iMsgs = iDropDir.GetMessages
C = iMsgs.Count
For i = 1 to C
  Set iMsg = iMsgs.Item(i)
  If iMsg.To = "someaddress" Then
   iMsgs.Delete i
  End If
Next i
[C++,IDL]
#import "d:\program files\common files\system\ado\msado15.dll" no_namespace raw_interfaces_only
#import <cdosys.dll> no_namespace raw_interfaces_only
#include <iostream.h>

void main(int argc, char* argv[])
{
  CoInitialize(NULL);

  IDropDirectory* pDropDir = NULL;
  IMessages* pMsgs         = NULL;
  IMessage* pMsg           = NULL;
 CoCreateInstance(
          __uuidof(DropDirectory),
          NULL,
          CLSCTX_SERVER,
          __uuidof(IDropDirectory),
          (void**)&pDropDir));

  pDropDir->GetMessages(L"",&pMsgs);
  long count = 0;
  pMsgs->get_Count(&count);
  cout << count << endl;
  for(long i = 1;i<=count;i++) {
      pMsgs->get_Item(i,pMsg));
      BSTR szTo;
      pMsg->get_To(&szTo);
      if(_bstr_t(szTo) == _bstr_t("someaddress"))
          pMsgs->Delete(_variant_t((long)i));
      SysFreeString(szTo);
   }

  CoUninitialize();
}