構文
void GetFloorConfig(long* lAboveFloorNumber, long* lBelowFloorNumber, double* dBaseHeight,
double* dFloorHeight1F, double* dDefWallThick, VARIANT *vFloorHeight, VARIANT *vCeilingHeight);
(JavaScript用) string GetFloorConfigJS();
階数・階高・壁厚などの設定をまとめて取得します。
パラメータ
lAboveFloorNumber
地上の階数
lBelowFloorNumber
地下の階数
dBaseHeight
基礎高
dFloorHeight1F
1階床高
dDefWallThick
壁厚の既定値
vFloorHeight
階高の配列。下の階から上の階に向かって並びます。型は VT_R8 | VT_ARRAY にしてください。
vCeilingHeight
天井高の配列。下の階から上の階に向かって並びます。型は VT_R8 | VT_ARRAY にしてください。
使用例
// C++ sample
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
long lAboveFloorNumber, lBelowFloorNumber;
double dBaseHeight, dFloorHeight1F, dDefWallThick;
VARIANT vFloorHeight, vCeilingHeight;
vFloorHeight.vt = vCeilingHeight.vt = VT_R8 | VT_ARRAY;
vFloorHeight.parray = vCeilingHeight.parray = NULL;
m_MadoriDoc->GetFloorConfig(&lAboveFloorNumber, &lBelowFloorNumber, &dBaseHeight, &dFloorHeight1F,
&dDefWallThick, &vFloorHeight, &vCeilingHeight);
ULONG uFloor = 0;
if(vFloorHeight.parray)
uFloor = vFloorHeight.parray->rgsabound[0].cElements;
CString strMsg;
strMsg.Format(TEXT("地上%u階, 地下%u階, 基礎高:%lf, 1階床高:%lf, 壁厚:%lf"),
lAboveFloorNumber, lBelowFloorNumber, dBaseHeight, dFloorHeight1F, dDefWallThick);
AfxMessageBox(strMsg);
if (uFloor > 0)
{
double* pFH;
double* pCH;
SafeArrayAccessData(vFloorHeight.parray, (void**)&pFH);
SafeArrayAccessData(vCeilingHeight.parray, (void**)&pCH);
for (ULONG u = 0; u < uFloor; u++)
{
strMsg.Format(TEXT("FloorHeight:%lf, CeilingHeight:%lf"), pFH[u], pCH[u]);
AfxMessageBox(strMsg);
}
SafeArrayUnaccessData(vFloorHeight.parray);
SafeArrayUnaccessData(vCeilingHeight.parray);
}
if (vFloorHeight.parray) SafeArrayDestroy(vFloorHeight.parray);
if (vCeilingHeight.parray) SafeArrayDestroy(vCeilingHeight.parray);
// JavaScript sample var doc = new CMadoriDoc(); var data = eval( doc.GetFloorConfigJS() ); var msg = " Result[" + data.Result + "]\r\n"; msg += " Above[" + data.AboveFloorNumber + "]\r\n"; msg += " Below[" + data.BelowFloorNumber + "]\r\n"; msg += " FloorHeight[" + data.FloorHeight + "]\r\n"; msg += " CeilingHeight[" + data.CeilingHeight + "]\r\n"; msg += " BaseHeight[" + data.BaseHeight + "]\r\n"; msg += " FloorHeight1F[" + data.FloorHeight1F + "]\r\n"; msg += " DefWallThick[" + data.DefWallThick + "]"; alert(msg);