Clase CMapStringToOb
Una clase de colección de diccionarios que asigna objetos CString
únicos a punteros CObject
.
Sintaxis
class CMapStringToOb : public CObject
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CMapStringToOb::CMapStringToOb |
Constructor. |
Métodos públicos
Nombre | Descripción |
---|---|
CMapStringToOb::GetCount |
Devuelve el número de elementos en esta asignación. |
CMapStringToOb::GetHashTableSize |
Determina el número actual de elementos de la tabla hash. |
CMapStringToOb::GetNextAssoc |
Obtiene el siguiente elemento para iterar. |
CMapStringToOb::GetSize |
Devuelve el número de elementos en esta asignación. |
CMapStringToOb::GetStartPosition |
Devuelve la posición del primer elemento. |
CMapStringToOb::HashKey |
Calcula el valor hash de una clave especificada. |
CMapStringToOb::InitHashTable |
Inicializa la tabla hash. |
CMapStringToOb::IsEmpty |
Prueba la condición de asignación vacía (sin elementos). |
CMapStringToOb::Lookup |
Busca un puntero nulo basado en la clave de puntero nulo. El valor del puntero, no la entidad a la que apunta, se usa para la comparación de claves. |
CMapStringToOb::LookupKey |
Devuelve una referencia a la clave asociada al valor de clave especificado. |
CMapStringToOb::RemoveAll |
Quita todos los elementos de esta asignación. |
CMapStringToOb::RemoveKey |
Quita un elemento especificado por una clave. |
CMapStringToOb::SetAt |
Inserta un elemento en el mapa; reemplaza un elemento existente si se encuentra una clave coincidente. |
Operadores públicos
Nombre | Descripción |
---|---|
CMapStringToOb::operator [ ] |
Inserta un elemento en la asignación: sustitución de operadores para SetAt . |
Comentarios
Una vez que haya insertado un par (elemento) CString
- CObject*
en la asignación, puede recuperar o eliminar el par de forma eficaz mediante una cadena o un valor CString
como clave. También puede iterar todos los elementos de la asignación.
Se usa una variable de tipo POSITION
para el acceso de entrada alternativo en todas las variaciones de la asignación. Puede usar POSITION
para "recordar" una entrada y recorrer en iteración el mapa. Podría pensar que esta iteración es secuencial según el valor de clave; pero no es así. La secuencia de elementos recuperados es indeterminada.
CMapStringToOb
incorpora la macro IMPLEMENT_SERIAL
para admitir la serialización y el volcado de sus elementos. Cada elemento se serializa a su vez si una asignación se almacena en un archivo, o con el operador de inserción sobrecargada (<<
) o con la función miembro Serialize
.
Si se necesita un volcado de diagnóstico de los elementos individuales de la asignación (el valor CString
y el contenido de CObject
), se debe establecer la profundidad del contexto de volcado en 1 o un valor superior.
Cuando se elimina un objeto CMapStringToOb
, o cuando se quitan sus elementos, se quitan los objetos CString
y los punteros CObject
. Los objetos a los que hacen referencia los punteros CObject
no se destruyen.
La derivación de clases de asignación es similar a la derivación de listas. Consulta el artículo Colecciones para obtener una ilustración de la derivación de una clase de lista para un propósito especial.
Jerarquía de herencia
CMapStringToOb
Requisitos
Encabezado: afxcoll.h
CMapStringToOb::CMapStringToOb
Construye una asignación vacía de CString
a CObject*
.
CMapStringToOb(INT_PTR nBlockSize = 10);
Parámetros
nBlockSize
Especifica la granularidad de la asignación de memoria para extender la asignación.
Comentarios
A medida que crece la asignación, la memoria se asigna en unidades de nBlockSize
entradas.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb:: CMapStringToOb
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
CMapPtrToPtr( INT_PTR nBlockSize = 10 ); |
CMapPtrToWord |
CMapPtrToWord( INT_PTR nBlockSize = 10 ); |
CMapStringToPtr |
CMapStringToPtr( INT_PTR nBlockSize = 10 ); |
CMapStringToString |
CMapStringToString( INT_PTR nBlockSize = 10 ); |
CMapWordToOb |
CMapWordToOb( INT_PTR nBlockSize = 10 ); |
CMapWordToPtr |
MapWordToPtr( INT_PTR nBlockSize = 10 ); |
Ejemplo
CMapStringToOb map(20); // Map on the stack with blocksize of 20
CMapStringToOb *pm = new CMapStringToOb; // Map on the heap
// with default blocksize
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb::GetCount
Determina cuántos elementos hay en la asignación.
INT_PTR GetCount() const;
Valor devuelto
Número de elementos de esta asignación.
Comentarios
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::GetCount
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
INT_PTR GetCount() const; |
CMapPtrToWord |
INT_PTR GetCount() const; |
CMapStringToPtr |
INT_PTR GetCount() const; |
CMapStringToString |
INT_PTR GetCount() const; |
CMapWordToOb |
INT_PTR GetCount() const; |
CMapWordToPtr |
INT_PTR GetCount() const; |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb map;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Homer"), new CAge(36));
ASSERT(map.GetCount() == 2);
CMapStringToOb::GetHashTableSize
Determina el número actual de elementos de la tabla hash.
UINT GetHashTableSize() const;
Valor devuelto
Devuelve el número de elementos de la tabla hash.
Comentarios
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::GetHashTableSize
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
UINT GetHashTableSize() const; |
CMapPtrToWord |
UINT GetHashTableSize() const; |
CMapStringToPtr |
UINT GetHashTableSize() const; |
CMapStringToString |
UINT GetHashTableSize() const; |
CMapWordToOb |
UINT GetHashTableSize() const; |
CMapWordToPtr |
UINT GetHashTableSize() const; |
CMapStringToOb::GetNextAssoc
Recupera el elemento de la asignación en rNextPosition
y, a continuación, se actualiza rNextPosition
para hacer referencia al siguiente elemento de la asignación.
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue) const;
Parámetros
rNextPosition
Especifica una referencia a un valor POSITION devuelto por una llamada a GetNextAssoc
o GetStartPosition
anterior.
rKey
Especifica la clave devuelta del elemento recuperado (una cadena).
rValue
Especifica el valor devuelto del elemento recuperado (un puntero CObject
). Consulte Comentarios para más información sobre este parámetro.
Comentarios
Esta función es más útil para recorrer en iteración todos los elementos del mapa. Tenga en cuenta que la secuencia de posición no es necesariamente la misma que la secuencia de valores de clave.
Si el elemento recuperado es el último del mapa, el nuevo valor de rNextPosition
se establece en NULL
.
Para el parámetro rValue
, asegúrese de convertir el tipo de objeto en CObject*&
, que es lo que requiere el compilador, como se muestra en el ejemplo siguiente:
CObject *ob;
map.GetNextAssoc(pos, key, (CObject *&)ob);
Esto no es cierto para GetNextAssoc
para las asignaciones que se basan en plantillas.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::GetNextAssoc
.
Clase | Función miembro |
---|---|
CMapPtrToPtr | void GetNextAssoc( POSITION& rNextPosition , void*& rKey , void*& rValue ) const; |
CMapPtrToWord | void GetNextAssoc( POSITION& rNextPosition , void*& rKey , WORD& rValue ) const; |
CMapStringToPtr | void GetNextAssoc( POSITION& rNextPosition , CString& rKey , void*& rValue ) const; |
CMapStringToString | void GetNextAssoc( POSITION& rNextPosition , CString& rKey , CString& rValue ) const; |
CMapWordToOb | void GetNextAssoc( POSITION& rNextPosition , WORD& rKey , CObject*& rValue ) const; |
CMapWordToPtr | void GetNextAssoc( POSITION& rNextPosition , WORD& rKey , void*& rValue ) const; |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb map;
POSITION pos;
CString key;
CAge *pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
// Iterate through the entire map, dumping both name and age.
for (pos = map.GetStartPosition(); pos != NULL;)
{
map.GetNextAssoc(pos, key, (CObject *&)pa);
#ifdef _DEBUG
afxDump << key << _T(" : ") << pa << _T("\n");
#endif
}
Los resultados de este programa son los siguientes:
Lisa : a CAge at $4724 11
Marge : a CAge at $47A8 35
Homer : a CAge at $4766 36
Bart : a CAge at $45D4 13
CMapStringToOb::GetSize
Devuelve el número de elementos de la asignación.
INT_PTR GetSize() const;
Valor devuelto
El número de elementos de la asignación.
Comentarios
Llame a este método para recuperar el número de elementos del mapa.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::GetSize
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
INT_PTR GetSize() const; |
CMapPtrToWord |
INT_PTR GetSize() const; |
CMapStringToPtr |
INT_PTR GetSize() const; |
CMapStringToString |
INT_PTR GetSize() const; |
CMapWordToOb |
INT_PTR GetSize() const; |
CMapWordToPtr |
INT_PTR GetSize() const; |
Ejemplo
CMapStringToOb map;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Homer"), new CAge(36));
ASSERT(map.GetSize() == 2);
CMapStringToOb::GetStartPosition
Inicia una iteración de la asignación mediante la devolución de un valor POSITION
que se puede pasar a una llamada a GetNextAssoc
.
POSITION GetStartPosition() const;
Valor devuelto
Un valor POSITION
que indica una posición inicial para iterar la asignación; o NULL
si la asignación está vacía.
Comentarios
La secuencia de iteración no es predecible; por lo tanto, el "primer elemento de la asignación" no tiene importancia especial.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::GetStartPosition
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
POSITION GetStartPosition() const; |
CMapPtrToWord |
POSITION GetStartPosition() const; |
CMapStringToPtr |
POSITION GetStartPosition() const; |
CMapStringToString |
POSITION GetStartPosition() const; |
CMapWordToOb |
POSITION GetStartPosition() const; |
CMapWordToPtr |
POSITION GetStartPosition() const; |
Ejemplo
Vea el ejemplo de CMapStringToOb::GetNextAssoc
.
CMapStringToOb::HashKey
Calcula el valor hash de una clave especificada.
UINT HashKey(LPCTSTR key) const;
Parámetros
key
Clave cuyo valor hash se va a calcular.
Valor devuelto
Valor hash de la clave
Comentarios
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::HashKey
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
UINT HashKey( void *key ) const; |
CMapPtrToWord |
UINT HashKey( void *key ) const; |
CMapStringToString |
UINT HashKey( LPCTSTR key ) const; |
CMapStringToPtr |
UINT HashKey( LPCTSTR key ) const; |
CMapWordToOb |
UINT HashKey( WORD key ) const; |
CMapWordToPtr |
UINT HashKey( WORD key ) const; |
CMapStringToOb::InitHashTable
Inicializa la tabla hash.
void InitHashTable(
UINT hashSize,
BOOL bAllocNow = TRUE);
Parámetros
hashSize
Número de entradas de la tabla hash.
bAllocNow
Si es TRUE
, se asigna la tabla hash después de la inicialización; de lo contrario, la tabla se asigna cuando es necesario.
Comentarios
Para obtener el mejor rendimiento, el tamaño de la tabla hash debe ser un número primo. Para minimizar las colisiones, el tamaño debe ser aproximadamente un 20 por ciento mayor que el conjunto de datos previsto más grande.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::InitHashTable
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapPtrToWord |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapStringToString |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapStringToPtr |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapWordToOb |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapWordToPtr |
void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE ); |
CMapStringToOb::IsEmpty
Determina si la asignación está vacía.
BOOL IsEmpty() const;
Valor devuelto
Distinto de cero si esta asignación no contiene elementos; de lo contrario, 0.
Ejemplo
Vea el ejemplo de RemoveAll
.
Comentarios
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb:: IsEmpty
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
BOOL IsEmpty() const; |
CMapPtrToWord |
BOOL IsEmpty() const; |
CMapStringToPtr |
BOOL IsEmpty() const; |
CMapStringToString |
BOOL IsEmpty() const; |
CMapWordToOb |
BOOL IsEmpty() const; |
CMapWordToPtr |
BOOL IsEmpty() const; |
CMapStringToOb::Lookup
Devuelve un puntero CObject
basado en un valor CString
.
BOOL Lookup(
LPCTSTR key,
CObject*& rValue) const;
Parámetros
key
Especifica la clave de cadena que identifica el elemento que se va a buscar.
rValue
Especifica el valor devuelto del elemento buscado.
Valor devuelto
Distinto de cero si se ha encontrado el elemento; de lo contrario, 0.
Comentarios
Lookup
usa un algoritmo hash para buscar, de forma rápida, el elemento de mapa con una clave que coincida exactamente (valor CString
).
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::LookUp
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
BOOL Lookup( void *key , void*& rValue ) const; |
CMapPtrToWord |
BOOL Lookup( void *key , WORD& rValue ) const; |
CMapStringToPtr |
BOOL Lookup( LPCTSTR key , void*& rValue ) const; |
CMapStringToString |
BOOL Lookup( LPCTSTR key , CString& rValue ) const; |
CMapWordToOb |
BOOL Lookup( WORD key , CObject*& rValue ) const; |
CMapWordToPtr |
BOOL Lookup( WORD key , void*& rValue ) const; |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb map;
CAge *pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
ASSERT(map.Lookup(_T("Lisa"), (CObject *&)pa)); // Is "Lisa" in the map?
ASSERT(*pa == CAge(11)); // Is she 11?
CMapStringToOb::LookupKey
Devuelve una referencia a la clave asociada al valor de clave especificado.
BOOL LookupKey(
LPCTSTR key,
LPCTSTR& rKey) const;
Parámetros
key
Especifica la clave de cadena que identifica el elemento que se va a buscar.
rKey
Referencia a la clave asociada.
Valor devuelto
Distinto de cero si se encontró la clave; de lo contrario, 0.
Comentarios
El uso de una referencia a una clave no es seguro si se usa después de quitar el elemento asociado de la asignación o después de destruir esta.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb:: LookupKey
.
Clase | Función miembro |
---|---|
CMapStringToPtr |
BOOL LookupKey( LPCTSTR key , LPCTSTR& rKey ) const; |
CMapStringToString |
BOOL LookupKey( LPCTSTR key , LPCTSTR& rKey ) const; |
CMapStringToOb::operator [ ]
Un sustituto conveniente de la función miembro SetAt
.
CObject*& operator[ ](lpctstr key);
Valor devuelto
Referencia a un puntero a un objeto CObject
; o NULL
si la asignación está vacía o key
está fuera del intervalo.
Comentarios
Por tanto, solo se puede usar en el lado izquierdo de una instrucción de asignación (un l-value
). Si no hay ningún elemento de asignación con la clave especificada, se crea un nuevo elemento.
No hay ningún "lado derecho" (r-value
) equivalente a este operador porque existe la posibilidad de que no se encuentre una clave en la asignación. Use la función miembro Lookup
para la recuperación de elementos.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::operator []
.
Clase | Función miembro |
---|---|
CMapPtrToPtr | void*& operator[](void *key ); |
CMapPtrToWord | WORD& operator[](void *key ); |
CMapStringToPtr | void*& operator[](lpctstr key ); |
CMapStringToString | CString& operator[](lpctstr key ); |
CMapWordToOb | CObject*& operator[](word key ); |
CMapWordToPtr | void*& operator[](word key ); |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb map;
map[_T("Bart")] = new CAge(13);
map[_T("Lisa")] = new CAge(11);
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("Operator [] example: ") << &map << _T("\n");
#endif
Los resultados de este programa son los siguientes:
Operator [] example: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $4A02 11
[Bart] = a CAge at $497E 13
CMapStringToOb::RemoveAll
Quita todos los elementos de esta asignación y destruye los objetos clave CString
.
void RemoveAll();
Comentarios
Los objetos CObject
a los que hace referencia cada clave no se destruyen. La función RemoveAll
puede provocar fugas de memoria si no se asegura de que se destruyen los objetos CObject
a los que se hace referencia.
La función funciona correctamente si la asignación ya está vacía.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::RemoveAll
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
void RemoveAll(); |
CMapPtrToWord |
void RemoveAll(); |
CMapStringToPtr |
void RemoveAll(); |
CMapStringToString |
void RemoveAll(); |
CMapWordToOb |
void RemoveAll(); |
CMapWordToPtr |
void RemoveAll(); |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
{
CMapStringToOb map;
CAge age1(13); // Two objects on the stack
CAge age2(36);
map.SetAt(_T("Bart"), &age1);
map.SetAt(_T("Homer"), &age2);
ASSERT(map.GetCount() == 2);
map.RemoveAll(); // CObject pointers removed; objects not removed.
ASSERT(map.GetCount() == 0);
ASSERT(map.IsEmpty());
} // The two CAge objects are deleted when they go out of scope.
CMapStringToOb::RemoveKey
Busca la entrada de la asignación correspondiente a la clave proporcionada; después, si se encuentra la clave, se elimina la entrada.
BOOL RemoveKey(LPCTSTR key);
Parámetros
key
Especifica la cadena usada para la búsqueda de asignación.
Valor devuelto
Distinto de cero si la entrada se ha encontrado y se ha quitado correctamente; de lo contrario, 0.
Comentarios
Esto puede provocar fugas de memoria si el objeto CObject
no se elimina en otro lugar.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::RemoveKey
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
BOOL RemoveKey( void *key ); |
CMapPtrToWord |
BOOL RemoveKey( void *key ); |
CMapStringToPtr |
BOOL RemoveKey( LPCTSTR key ); |
CMapStringToString |
BOOL RemoveKey( LPCTSTR key ); |
CMapWordToOb |
BOOL RemoveKey( WORD key ); |
CMapWordToPtr |
BOOL RemoveKey( WORD key ); |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb map;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
map.RemoveKey(_T("Lisa")); // Memory leak: CAge object not
// deleted.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveKey example: ") << &map << _T("\n");
#endif
Los resultados de este programa son los siguientes:
RemoveKey example: A CMapStringToOb with 3 elements
[Marge] = a CAge at $49A0 35
[Homer] = a CAge at $495E 36
[Bart] = a CAge at $4634 13
CMapStringToOb::SetAt
El medio principal para insertar un elemento en una asignación.
void SetAt(
LPCTSTR key,
CObject* newValue);
Parámetros
key
Especifica la cadena que es la clave del nuevo elemento.
newValue
Especifica el puntero CObject
que es el valor del nuevo elemento.
Comentarios
En primer lugar, se busca la clave. Si se encuentra la clave, se cambia el valor correspondiente; de lo contrario, se crea un nuevo elemento clave-valor.
En la tabla siguiente se muestran otras funciones miembro similares a CMapStringToOb::SetAt
.
Clase | Función miembro |
---|---|
CMapPtrToPtr |
void SetAt( void *key , void *newValue ); |
CMapPtrToWord |
void SetAt( void *key , WORD newValue ); |
CMapStringToPtr |
void SetAt( LPCTSTR key , void *newValue ); |
CMapStringToString |
void SetAt( LPCTSTR key , LPCTSTR newValue ); |
CMapWordToOb |
void SetAt( WORD key , CObject *newValue ); |
CMapWordToPtr |
void SetAt( WORD key , void *newValue ); |
Ejemplo
Consulta CObList::CObList
para obtener una lista de la clase CAge
que se usa en todos los ejemplos de la colección.
CMapStringToOb map;
CAge *pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11)); // Map contains 2
// elements.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("before Lisa's birthday: ") << &map << _T("\n");
#endif
if (map.Lookup(_T("Lisa"), (CObject *&)pa))
{ // CAge 12 pointer replaces CAge 11 pointer.
map.SetAt(_T("Lisa"), new CAge(12));
delete pa; // Must delete CAge 11 to avoid memory leak.
}
#ifdef _DEBUG
afxDump << _T("after Lisa's birthday: ") << &map << _T("\n");
#endif
Los resultados de este programa son los siguientes:
before Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $493C 11
[Bart] = a CAge at $4654 13
after Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $49C0 12
[Bart] = a CAge at $4654 13
Consulte también
CObject
(clase)
Gráfico de jerarquías
CMapPtrToPtr
(clase)
CMapPtrToWord
(clase)
CMapStringToPtr
(clase)
CMapStringToString
(clase)
CMapWordToOb
(clase)
CMapWordToPtr
(clase)