AddClippedCeiling メソッド

構文

BOOL AddClippedCeiling(BYTE byType, BOOL bLightOn, VARIANT & vVertex, VARIANT & vHeight, VARIANT & vWidth);

折上げ天井を追加します。

パラメータ

byType
デザイン。次のいずれかの値を指定できます。
  • 1垂直
  • 2垂直飾り縁付
  • 3傾斜
  • 4傾斜飾り縁付
  • 5コーブ照明用
bLightOn
コーブ照明用の場合に、光源をつけるかどうか。0で無し、1でつけます。
vVertex
(x, y) 頂点列。型は VT_R8 | VT_ARRAY にしてください。
vHeight
高さの配列。要素数は1~3、型は VT_R8 | VT_ARRAY にしてください。要素数が段数になります。
vWidth
オフセットの配列。要素数は1~3、型は VT_R8 | VT_ARRAY にしてください。要素数が段数になります。

戻り値

折上げ天井を追加できた場合 0 以外を返します。できなかった場合は 0 を返します。

使用例

// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);

// 天井を追加
SAFEARRAYBOUND bound[1];
bound[0].cElements = 8;
bound[0].lLbound = 0;
SAFEARRAY * pArray = SafeArrayCreate(VT_R8, 1, bound);
double * pVar;
SafeArrayAccessData(pArray, (void**)&pVar);
double dVertex[8] = {0.0, 0.0, 10000.0, 0.0, 10000.0, 10000.0, 0.0, 10000.0}; 
for(int i=0; i < 8; ++i){
pVar[i] = dVertex[i];
}
VARIANT v;
v.vt = VT_R8 | VT_ARRAY;
v.parray = pArray;
SafeArrayUnaccessData(pArray);

SAFEARRAYBOUND bound2[1];
bound2[0].cElements = 2;
bound2[0].lLbound = 0;
SAFEARRAY * pArray2 = SafeArrayCreate(VT_R8, 1, bound2);
SafeArrayAccessData(pArray2, (void**)&pVar);
pVar[0] = 75;
pVar[1] = 75;
VARIANT v2;
v2.vt = VT_R8 | VT_ARRAY;
v2.parray = pArray2;
SafeArrayUnaccessData(pArray2);

SAFEARRAYBOUND bound3[1];
bound3[0].cElements = 2;
bound3[0].lLbound = 0;
SAFEARRAY *pArray3 = SafeArrayCreate(VT_R8, 1, bound3);
SafeArrayAccessData(pArray3, (void**)&pVar);
pVar[0] = 0;
pVar[1] = 30;
VARIANT v3;
v3.vt = VT_R8 | VT_ARRAY;
v3.parray = pArray3;
SafeArrayUnaccessData(pArray3);
BOOL bRet = m_MadoriDoc->AddClippedCeiling(2, FALSE, v, v2, v3);
if(!bRet) return;	// error