다음을 통해 공유


CComSafeArray 클래스

이 클래스에 대 한 래퍼 되는 SAFEARRAY 구조.

template <
   typename T,
   VARTYPE _vartype = _ATL_AutomationType< T >::type
>
class CComSafeArray

매개 변수

  • T
    배열에 저장 될 데이터의 형식입니다.

Members

3xzbsee8.collapse_all(ko-kr,VS.110).gifPublic 생성자

Name

설명

CComSafeArray::CComSafeArray

생성자입니다.

CComSafeArray:: ~ CComSafeArray

소멸자

3xzbsee8.collapse_all(ko-kr,VS.110).gifPublic 메서드

Name

설명

CComSafeArray::Add

하나 이상의 요소를 추가 또는 SAFEARRAY 구조체에 CComSafeArray.

CComSafeArray::Attach

첨부는 SAFEARRAY 구조체에 CComSafeArray 개체입니다.

CComSafeArray::CopyFrom

내용을 복사 하는 SAFEARRAY 구조에 CComSafeArray 개체.

CComSafeArray::CopyTo

CComSafeArray 개체의 복사본을 만듭니다.

CComSafeArray::Create

CComSafeArray 개체를 만듭니다.

CComSafeArray::Destroy

CComSafeArray 개체를 소멸시킵니다.

CComSafeArray::Detach

분리 된 SAFEARRAY 에서 CComSafeArray 개체.

CComSafeArray::GetAt

1 차원 배열에서 단일 요소를 검색합니다.

CComSafeArray::GetCount

배열에서 요소의 개수를 반환합니다.

CComSafeArray::GetDimensions

배열의 차수를 반환합니다.

CComSafeArray::GetLowerBound

지정 된 차원의 배열에 대 한 하한값을 반환합니다.

CComSafeArray::GetSafeArrayPtr

주소를 반환 하는 m_psa 데이터 멤버입니다.

CComSafeArray::GetType

배열에 저장 된 데이터 형식을 반환 합니다.

CComSafeArray::GetUpperBound

배열의 모든 차원에 대해 상한을 반환합니다.

CComSafeArray::IsSizable

테스트 하는 경우는 CComSafeArray 개체를 조정할 수 있습니다.

CComSafeArray::MultiDimGetAt

다차원 배열에서 단일 요소를 검색합니다.

CComSafeArray::MultiDimSetAt

다차원 배열에서 요소의 값을 설정합니다.

CComSafeArray::Resize

크기를 조절 한 CComSafeArray 개체입니다.

CComSafeArray::SetAt

에 1 차원 배열 요소의 값을 설정합니다.

3xzbsee8.collapse_all(ko-kr,VS.110).gifPublic 연산자

Name

설명

CComSafeArray::operator LPSAFEARRAY

값으로 캐스팅 된 SAFEARRAY 포인터.

CComSafeArray::operator]

배열에서 요소를 검색합니다.

CComSafeArray::operator =

할당 연산자입니다.

3xzbsee8.collapse_all(ko-kr,VS.110).gif공용 데이터 멤버

Name

설명

CComSafeArray::m_psa

이 데이터 멤버의 주소를 보유 하 고 있는 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]);
   }   
}

참고 항목

참조

SAFEARRAY Data Type

CComSafeArray::Create

CComSafeArray::Destroy

기타 리소스

ATL 클래스 개요