.
No les recomiedno usar Not para ver si esta inicializada la variable , en codigos largos y complejos causa errores muy desagradables es por eso que le di el codigo de CopyMemory.
Edito------>
Es la forma más rápida, en el IDE puede dar problemas pero compilado funciona 100%.
Para prevenir el bug en el IDE haz:
Extraño a mi con mi ctl ListViewEx compilado o no, me dio bastantes errores... que se solucionaban separando un monton de variables, haciendo los cats, reduciendo operaciones uff... muchos errores.
El error exacto era:
Expresión Demasiado compleja@seba123neoEn esa liga, el código que esta ( el que publiscaste ) es bueno pero hace demasiadas cosas ya que un array dinámico NULO (sin dimensiones) es un apuntador de 4 bytes ( aqrquitectura 32bytes lo digo solo como dato general ) del mismo apuntando a la estructura SafeArray dado que si no existe ( puntero NULO ) es que no esta inicializado el array, en caso contrario se apuntaría al SafeArray y simplemente usaríamos Ubound() y Lbound() que es lo mismo que en aquel código de la liga otorgas pero el caso no es saber las dimensiones ni los estados si no mas bien saber si esta inicializado o no el array o mejor dicho saber si ya hay memoria reservada para el mismo.
* Los array con declaración estática no apuntan al safearray de echo el puntero de la variable es a esta estructura...
typedef struct FARSTRUCT tagSAFEARRAY {
unsigned short cDims; // Count of dimensions in this array.
unsigned short fFeatures; // Flags used by the SafeArray
// routines documented below.
#if defined(WIN32)
unsigned long cbElements; // Size of an element of the array.
// Does not include size of
// pointed-to data.
unsigned long cLocks; // Number of times the array has been
// locked without corresponding unlock.
#else
unsigned short cbElements;
unsigned short cLocks;
unsigned long handle; // Used on Macintosh only.
#endif
void HUGEP* pvData; // Pointer to the data.
SAFEARRAYBOUND rgsabound[1]; // One bound for each dimension.
} SAFEARRAY;
.. en todo caso lo que importa es solo saber si ya tiene memoria reservada (Inicializado)... pero bueno. Mas Info
SafeArray.
Temibles Lunas!¡.