CComSafeArray 클래스
이 클래스에 대 한 래퍼 되는 SAFEARRAY 구조.
template <
typename T,
VARTYPE _vartype = _ATL_AutomationType< T >::type
>
class CComSafeArray
매개 변수
- T
배열에 저장 될 데이터의 형식입니다.
Members
Public 생성자
Name |
설명 |
---|---|
생성자입니다. |
|
소멸자 |
Public 메서드
Name |
설명 |
---|---|
하나 이상의 요소를 추가 또는 SAFEARRAY 구조체에 CComSafeArray. |
|
첨부는 SAFEARRAY 구조체에 CComSafeArray 개체입니다. |
|
내용을 복사 하는 SAFEARRAY 구조에 CComSafeArray 개체. |
|
CComSafeArray 개체의 복사본을 만듭니다. |
|
CComSafeArray 개체를 만듭니다. |
|
CComSafeArray 개체를 소멸시킵니다. |
|
분리 된 SAFEARRAY 에서 CComSafeArray 개체. |
|
1 차원 배열에서 단일 요소를 검색합니다. |
|
배열에서 요소의 개수를 반환합니다. |
|
배열의 차수를 반환합니다. |
|
지정 된 차원의 배열에 대 한 하한값을 반환합니다. |
|
주소를 반환 하는 m_psa 데이터 멤버입니다. |
|
배열에 저장 된 데이터 형식을 반환 합니다. |
|
배열의 모든 차원에 대해 상한을 반환합니다. |
|
테스트 하는 경우는 CComSafeArray 개체를 조정할 수 있습니다. |
|
다차원 배열에서 단일 요소를 검색합니다. |
|
다차원 배열에서 요소의 값을 설정합니다. |
|
크기를 조절 한 CComSafeArray 개체입니다. |
|
에 1 차원 배열 요소의 값을 설정합니다. |
Public 연산자
Name |
설명 |
---|---|
값으로 캐스팅 된 SAFEARRAY 포인터. |
|
배열에서 요소를 검색합니다. |
|
할당 연산자입니다. |
공용 데이터 멤버
Name |
설명 |
---|---|
이 데이터 멤버의 주소를 보유 하 고 있는 SAFEARRAY 구조. |
설명
CComSafeArray제공에 대 한 래퍼는 SAFEARRAY Data Type 클래스, 단일 및 다차원 배열의 거의 모든 변형을 지 원하는 형식을 만들고 관리 하는 간단 하 게 받아.
CComSafeArray배열 전달 프로세스 간의 단순화 하 고 또한 배열 인덱스 값에 위, 아래 범위를 확인 하 여 추가 보안을 제공 합니다.
하한값은 CComSafeArray 시작에서 사용자 정의 값입니다. 그러나 C++를 통해 액세스 되는 배열 하한값은 0 사용 해야 합니다.Visual Basic 같은 다른 언어 (예를 들어,-10-10) 다른 경계 값을 사용할 수 있습니다.
사용 CComSafeArray::Create 만들 수는 CComSafeArray 개체 및 CComSafeArray::Destroy 삭제 합니다.
A CComSafeArray 다음 VARIANT 데이터 형식의 하위 집합을 포함할 수 있습니다.
VARTYPE |
설명 |
---|---|
VT_I1 |
char |
VT_I2 |
short |
VT_I4 |
int |
VT_I4 |
long |
VT_I8 |
longlong |
VT_UI1 |
byte |
VT_UI2 |
ushort |
VT_UI4 |
uint |
VT_UI4 |
ulong |
VT_UI8 |
ulonglong |
VT_R4 |
float |
VT_R8 |
double |
VT_DECIMAL |
10 진수 포인터 |
VT_VARIANT |
변형 된 포인터 |
VT_CY |
통화 데이터 형식 |
요구 사항
헤더: atlsafe.h
예제
// Create a multidimensional array,
// then write and read elements
// Define an array of character pointers
CComSafeArray<char> *pSar;
char cElement;
char cTable[2][3] = {'A','B','C','D','E','F'};
// Declare the variable used to store the
// array indexes
LONG aIndex[2];
// Define the array bound structure
CComSafeArrayBound bound[2];
bound[0].SetCount(3);
bound[0].SetLowerBound(0);
bound[1].SetCount(3);
bound[1].SetLowerBound(0);
// Create a new 2 dimensional array
// each dimension size is 3
pSar = new CComSafeArray<char>(bound,2);
// Use MultiDimSetAt to store characters in the array
for (int x = 0; x < 2; x++)
{
for (int y = 0; y < 3; y++)
{
aIndex[0] = x;
aIndex[1] = y;
HRESULT hr = pSar->MultiDimSetAt(aIndex,cTable[x][y]);
ATLASSERT(hr == S_OK);
}
}
// Use MultiDimGetAt to retrieve characters in the array
for (int x = 0; x < 2; x++)
{
for (int y = 0; y < 3; y++)
{
aIndex[0]=x;
aIndex[1]=y;
HRESULT hr = pSar->MultiDimGetAt(aIndex,cElement);
ATLASSERT(hr == S_OK);
ATLASSERT(cElement == cTable[x][y]);
}
}