---
product: Chilkat
product_version: 11.7.0
language: wc
language_label: Unicode C
class: Mailboxes
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/wc_CkMailboxesWRef.html
---
# Chilkat Mailboxes — Unicode C — v11.7.0

> Chilkat 11.7.0 · language=wc · class=Mailboxes
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/Mailboxes.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/wc/guide.md`.

## Purpose

**Inspect IMAP mailbox names and attributes returned by Chilkat.Imap.**

`Chilkat.Mailboxes` is a read-only result collection populated by `Chilkat.Imap.MbxList`. Applications inspect the returned mailbox names and attributes but do not directly add, remove, or modify entries. The class provides indexed access to mailbox flags, selectable status, marked status, whether child mailboxes exist, and whether child mailboxes may be created.

**Mailbox collection**

Receive the read-only list of IMAP mailboxes populated by `Chilkat.Imap.MbxList`.

**Indexed mailbox access**

Use the mailbox count and index-based methods to retrieve each mailbox name in the returned collection.

**Mailbox flags**

Inspect IMAP flags associated with each mailbox, including standard and server-specific attributes.

**Selectable status**

Determine whether a mailbox can be selected and opened for message access.

**Hierarchy information**

Check whether a mailbox has child mailboxes or whether children may be created beneath it.

**Marked status**

Detect whether a mailbox is marked or unmarked according to the attributes returned by the IMAP server.

**Common pattern:** Call `Chilkat.Imap.MbxList` to populate a `Mailboxes` object, loop from `0` to `Count - 1`, retrieve each mailbox name, and inspect its flags or selectable status. Mailbox names are exposed as normal Unicode text; Chilkat automatically handles modified UTF-7 or IMAP UTF-8 at the protocol level.

For an extended overview, see [Mailboxes Class Overview](https://www.chilkatsoft.com/mailboxes_class_overview.asp).

## Object creation, unlocking and error handling

**Create/Dispose**

```c
HCkMailboxesW instance = CkMailboxesW_Create();
// ...
CkMailboxesW_Dispose(instance);
```

`HCkMailboxesW CkMailboxesW_Create(void);`

Creates an instance of the HCkMailboxesW object and returns a handle ("void \*" pointer). The handle is passed in the 1st argument for the functions listed on this page.

`void CkMailboxesW_Dispose(HCkMailboxesW handle);`

Objects created by calling CkMailboxesW_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function. Also, any handle returned by a Chilkat "C" function must also be freed by the application by calling the appropriate Dispose method, such as CkMailboxesW_Dispose.

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in Unicode C.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `void CkMailboxesW_getDebugLogFilePath(HCkMailboxesW cHandle, HCkString retval); void CkMailboxesW_putDebugLogFilePath(HCkMailboxesW cHandle, const wchar_t *newVal); const wchar_t *CkMailboxesW_debugLogFilePath(HCkMailboxesW cHandle);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `void CkMailboxesW_getLastErrorHtml(HCkMailboxesW cHandle, HCkString retval); const wchar_t *CkMailboxesW_lastErrorHtml(HCkMailboxesW cHandle);` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `void CkMailboxesW_getLastErrorText(HCkMailboxesW cHandle, HCkString retval); const wchar_t *CkMailboxesW_lastErrorText(HCkMailboxesW cHandle);` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `void CkMailboxesW_getLastErrorXml(HCkMailboxesW cHandle, HCkString retval); const wchar_t *CkMailboxesW_lastErrorXml(HCkMailboxesW cHandle);` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `BOOL CkMailboxesW_getLastMethodSuccess(HCkMailboxesW cHandle); void CkMailboxesW_putLastMethodSuccess(HCkMailboxesW cHandle, BOOL newVal);` | read/write | Indicates the success or failure of the most recent method call: `TRUE` means success, `FALSE` means failure. |
| `VerboseLogging` | `BOOL CkMailboxesW_getVerboseLogging(HCkMailboxesW cHandle); void CkMailboxesW_putVerboseLogging(HCkMailboxesW cHandle, BOOL newVal);` | read/write | If set to `TRUE`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `void CkMailboxesW_getVersion(HCkMailboxesW cHandle, HCkString retval); const wchar_t *CkMailboxesW_version(HCkMailboxesW cHandle);` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Count` | property, read-only | `int CkMailboxesW_getCount(HCkMailboxesW cHandle);` |
| `GetFlags` | method | `BOOL CkMailboxesW_GetFlags(HCkMailboxesW cHandle, int index, const wchar_t *outStr); const wchar_t *CkMailboxesW_getFlags(HCkMailboxesW cHandle, int index);` |
| `GetMailboxIndex` | method | `int CkMailboxesW_GetMailboxIndex(HCkMailboxesW cHandle, const wchar_t *mbxName);` |
| `GetName` | method | `BOOL CkMailboxesW_GetName(HCkMailboxesW cHandle, int index, const wchar_t *outStrName); const wchar_t *CkMailboxesW_getName(HCkMailboxesW cHandle, int index);` |
| `GetNthFlag` | method | `BOOL CkMailboxesW_GetNthFlag(HCkMailboxesW cHandle, int index, int flagIndex, const wchar_t *outStr); const wchar_t *CkMailboxesW_getNthFlag(HCkMailboxesW cHandle, int index, int flagIndex);` |
| `GetNumFlags` | method | `int CkMailboxesW_GetNumFlags(HCkMailboxesW cHandle, int index);` |
| `HasFlag` | method | `BOOL CkMailboxesW_HasFlag(HCkMailboxesW cHandle, int index, const wchar_t *flagName);` |
| `HasInferiors` | method | `BOOL CkMailboxesW_HasInferiors(HCkMailboxesW cHandle, int index);` |
| `IsMarked` | method | `BOOL CkMailboxesW_IsMarked(HCkMailboxesW cHandle, int index);` |
| `IsSelectable` | method | `BOOL CkMailboxesW_IsSelectable(HCkMailboxesW cHandle, int index);` |
| `LoadTaskResult` | method | `BOOL CkMailboxesW_LoadTaskResult(HCkMailboxesW cHandle, HCkTaskW task);` |

## Properties

### Mailboxes.Count

`Chilkat 11.7.0 · wc · Mailboxes · Count · property · read-only`

```c
int CkMailboxesW_getCount(HCkMailboxesW cHandle);
```

Returns the number of mailboxes in this collection. An empty collection has a count of `0`.

`Mailboxes` is a read-only result container populated by `Imap.MbxList`. Applications inspect the returned entries but do not directly add, remove, or modify mailboxes in this object.

## Methods

### Mailboxes.GetFlags

`Chilkat 11.7.0 · wc · Mailboxes · GetFlags · method`

```c
BOOL CkMailboxesW_GetFlags(HCkMailboxesW cHandle, int index, const wchar_t *outStr);
const wchar_t *CkMailboxesW_getFlags(HCkMailboxesW cHandle, int index);
```

Returns a comma-separated list of flags for the mailbox at the zero-based index specified by `index`.

For example:

```
\HasNoChildren,\Important
```

To inspect the flags individually, use `GetNumFlags` and `GetNthFlag`.

Returns TRUE for success, FALSE for failure.

### Mailboxes.GetMailboxIndex

`Chilkat 11.7.0 · wc · Mailboxes · GetMailboxIndex · method`

```c
int CkMailboxesW_GetMailboxIndex(HCkMailboxesW cHandle, const wchar_t *mbxName);
```

Returns the zero-based index of the mailbox whose name matches `mbxName`.

Pass `mbxName` as a normal Unicode mailbox name. Chilkat automatically handles the protocol-level modified UTF-7 or IMAP UTF-8 representation; the application should not encode the mailbox name manually.

The returned index can be used with methods such as `GetName`, `GetFlags`, and `IsSelectable`.

### Mailboxes.GetName

`Chilkat 11.7.0 · wc · Mailboxes · GetName · method`

```c
BOOL CkMailboxesW_GetName(HCkMailboxesW cHandle, int index, const wchar_t *outStrName);
const wchar_t *CkMailboxesW_getName(HCkMailboxesW cHandle, int index);
```

Returns the name of the mailbox at the zero-based index specified by `index`.

The name is returned as normal Unicode text. Chilkat automatically decodes modified UTF-7 or IMAP UTF-8 mailbox names received from the server and automatically performs the corresponding encoding when the name is passed to an `Imap` method.

The returned name can therefore be passed directly to methods that select, examine, create, rename, delete, copy to, or otherwise operate on a mailbox. Do not manually encode or decode the mailbox name.

Returns TRUE for success, FALSE for failure.

### Mailboxes.GetNthFlag

`Chilkat 11.7.0 · wc · Mailboxes · GetNthFlag · method`

```c
BOOL CkMailboxesW_GetNthFlag(HCkMailboxesW cHandle, int index, int flagIndex, const wchar_t *outStr);
const wchar_t *CkMailboxesW_getNthFlag(HCkMailboxesW cHandle, int index, int flagIndex);
```

Returns one flag from a mailbox in the collection.

- `index` is the zero-based mailbox index.
- `flagIndex` is the zero-based flag index within that mailbox.

Call `GetNumFlags` to determine the number of flags available for the mailbox.

Returns TRUE for success, FALSE for failure.

### Mailboxes.GetNumFlags

`Chilkat 11.7.0 · wc · Mailboxes · GetNumFlags · method`

```c
int CkMailboxesW_GetNumFlags(HCkMailboxesW cHandle, int index);
```

Returns the number of flags associated with the mailbox at the zero-based index specified by `index`.

Returns `-1` if `index` is outside the valid mailbox-index range. Use `GetNthFlag` to retrieve the individual flags.

### Mailboxes.HasFlag

`Chilkat 11.7.0 · wc · Mailboxes · HasFlag · method`

```c
BOOL CkMailboxesW_HasFlag(HCkMailboxesW cHandle, int index, const wchar_t *flagName);
```

Returns `TRUE` if the mailbox at the zero-based index specified by `index` contains the flag named by `flagName`.

Flag-name comparison is case-insensitive. Include the leading backslash when checking an IMAP system flag or mailbox attribute, for example `\Marked`, `\Noselect`, or `\HasChildren`.

### Mailboxes.HasInferiors

`Chilkat 11.7.0 · wc · Mailboxes · HasInferiors · method`

```c
BOOL CkMailboxesW_HasInferiors(HCkMailboxesW cHandle, int index);
```

Returns `TRUE` if the mailbox at the zero-based index specified by `index` either has child mailboxes or permits child mailboxes to be created beneath it.

**Important distinction:** `\HasNoChildren` means that no child mailboxes currently exist. It does not mean that children cannot be created. The IMAP `\Noinferiors` attribute means that child mailboxes cannot be created.

### Mailboxes.IsMarked

`Chilkat 11.7.0 · wc · Mailboxes · IsMarked · method`

```c
BOOL CkMailboxesW_IsMarked(HCkMailboxesW cHandle, int index);
```

Returns `TRUE` if the mailbox at the zero-based index specified by `index` has the IMAP `\Marked` attribute.

`\Marked` is a server-provided hint that the mailbox may contain messages added since it was last selected. It is advisory information returned by the mailbox-listing operation.

### Mailboxes.IsSelectable

`Chilkat 11.7.0 · wc · Mailboxes · IsSelectable · method`

```c
BOOL CkMailboxesW_IsSelectable(HCkMailboxesW cHandle, int index);
```

Returns `TRUE` if the mailbox at the zero-based index specified by `index` can be selected or examined for message access.

A mailbox having the IMAP `\Noselect` attribute is not selectable, even though it may appear in the mailbox hierarchy and may contain selectable child mailboxes.

### Mailboxes.LoadTaskResult

`Chilkat 11.7.0 · wc · Mailboxes · LoadTaskResult · method · since 9.5.0.52`

```c
BOOL CkMailboxesW_LoadTaskResult(HCkMailboxesW cHandle, HCkTaskW task);
```

Loads this object from a completed asynchronous task whose result is a `Mailboxes` collection.

`task` must reference a completed `Task` returned by the asynchronous form of an operation that produces mailbox-listing results.

Returns TRUE for success, FALSE for failure.

## Related classes

[`Task`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/wc/classes/Task.md)

