構文
BOOL GetRoom2(VARIANT* vVertex,
long* uRoomType, BSTR* szRoomName, long* bDispRoomName, long* bDispRoomSize,
double* dFloorHeight, double* dCeilingHeight, double* dHabakiHeight, double* dKoshiHeight,
double* dMawaribuchiHeight, double* dKoshiMikiriHeight, double* dBalconyHeight,
long* bHabaki, long* bMawaribuchi, long* bKoshikabe, long* bKoshiMikiri, long* bRoofFlag,
BYTE* byHatchStyle, OLE_COLOR* ocForeColor, OLE_COLOR* ocBackColor, long* bBackTrans,
long* uTatamiType, BSTR* szFontName, double* dFontSize, BYTE* byFontAttr, double* dFontAngle,
OLE_COLOR* ocFontColor, long* bCalcFloorArea, long* bExteriorFlag,
long* nMoldingPattern, long* bCasing, double* dCasingThickness, long* bInsideMeasure,
BSTR* szBalconyDesignFilePath);
(JavaScript用) string GetRoom2JS();
カレントのオブジェクトが、部屋の場合、その情報を取得します。
パラメータ
- 1玄関
- 2廊下
- 3吹抜
- 4リビング
- 5ダイニング
- 6キッチン
- 7LD
- 8浴室
- 9洗面室
- 10ランドリースペース
- 11トイレ
- 12洋室
- 13寝室
- 14子供室
- 15和室
- 16床の間
- 17押入
- 18クロゼット
- 19納戸
- 20ポーチ
- 21バルコニー
- 22インナーガレージ
- 23ホール
- 24家事室
- 25書斎
- 26仏間
- 27広縁
- 28物入
- 29土間
- 30出窓
- 31PS
- 32カバードポーチ
- 33外廊下
- 34アルコーブ
- 35EV
- 36管理人室
- 37ロビー
- 38機械室
- 39ピロティ
- 40屋上
- 41内廊下
- 42床
- 43診察室
- 44検査室
- 45処置室
- 46X線室
- 47手術室
- 48回復室
- 49準備室
- 50病室
- 51スタッフステーション
- 52受付
- 53待合室
- 54スタッフルーム
- 55食堂
- 56厨房
- 57機能訓練室
- 58談話室
- 59事務室
- 60リネン室
- 61倉庫
- 0なし。
- 1塗りつぶし。
- 2水平ハッチ。
- 3垂直ハッチ。
- 4右下がりハッチ。
- 5右上がりハッチ。
- 6水平と垂直の格子ハッチ。
- 7斜め格子ハッチ。
- 8ドット1。
- 9ドット2。
- 10ドット3。
- 11ウェーブ1。
- 12ウェーブ2。
- 13ウェーブ3。
- 14斜線1。
- 15斜線2。
- 16破線1。
- 17破線2。
- 18板目。
- 19グラデーション横1。
- 20グラデーション横2。
- 21グラデーション縦1。
- 22グラデーション縦2。
- 23グラデーション右上。
- 24グラデーション左上。
- 25グラデーション中心。
- 26グラデーション右上。
- 27グラデーション右下。
- 30半透明。
- 40水平ハッチ。2の水平ハッチより目が細かい。
- 41垂直ハッチ。3の垂直ハッチより目が細かい。
- 42水平と垂直の格子ハッチ。6のハッチより目が細かい。
- 0畳模様なし。
- 1半畳。
- 21畳横。
- 31畳縦。
- 42畳。
- 53畳横。

- 63畳横。

- 73畳縦。

- 83畳縦。

- 94畳半。

- 104畳半。

- 114畳半。

- 124畳半。

- 134畳半。

- 144畳半。

- 154畳半。

- 164畳半。

- 174畳半。

- 184畳半。

- 196畳横。

- 206畳横。

- 216畳縦。

- 226畳縦。

- 237畳半横。

- 247畳半横。

- 257畳半横。

- 267畳半横。

- 277畳半縦。

- 287畳半縦。

- 297畳半縦。

- 307畳半縦。

- 318畳。

- 328畳。

- 3310畳横。

- 3410畳横。

- 3510畳横。

- 3610畳横。

- 3710畳縦。

- 3810畳縦。

- 3910畳縦。

- 4010畳縦。

- 4112畳横。

- 4212畳横。

- 4312畳縦。

- 4412畳縦。

- 1斜体。
- 2太字。
- 4下線。
- 0なし。
- 1タイプ1。
- 2タイプ2。
戻り値
部屋の情報を取得できた場合 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);
// 列挙する
long lRet = m_MadoriDoc->GetTopObject();
if(lRet == 0) AfxMessageBox(TEXT("何もない"));
while(lRet){
ULONG uType = m_MadoriDoc->GetCurrentObjectType();
short nLayer = m_MadoriDoc->GetCurrentObjectLayer();
CString strMsg;
strMsg.Format(TEXT("[%X]type[%d]layer[%d]"), lRet, uType,nLayer);
AfxMessageBox(strMsg);
switch(uType){
case 19: // room
{
VARIANT vVertex;
vVertex.vt = VT_R8 | VT_ARRAY;
vVertex.parray = NULL;
long uRoomType;
BSTR szRoomName = NULL;
long bDispRoomName, bDispRoomSize;
double dFloorHeight, dCeilingHeight, dHabakiHeight, dKoshiHeight, dMawaribuchiHeight, dKoshiMikiriHeight, dBalconyHeight;
long bHabaki, bMawaribuchi, bKoshikabe, bKoshiMikiri, bRoofFlag;
BYTE byHatchStyle;
unsigned long ocForeColor, ocBackColor;
long bBackTrans, uTatamiType;
BSTR szFontName = NULL;
double dFontSize;
BYTE byFontAttr;
double dFontAngle;
unsigned long ocFontColor;
long bCalcFloorArea;
long bExteriorFlag;
long nMoldingPattern;
long bCasing;
double dCasingThickness;
long bInsideMeasure;
BSTR szBalconyDesignFilePath = NULL;
m_MadoriDoc->GetRoom2(&vVertex, &uRoomType, &szRoomName, &bDispRoomName, &bDispRoomSize, &dFloorHeight,
&dCeilingHeight, &dHabakiHeight, &dKoshiHeight, &dMawaribuchiHeight, &dKoshiMikiriHeight,
&dBalconyHeight, &bHabaki, &bMawaribuchi, &bKoshikabe, &bKoshiMikiri, &bRoofFlag, &byHatchStyle,
&ocForeColor, &ocBackColor, &bBackTrans, &uTatamiType, &szFontName, &dFontSize, &byFontAttr,
&dFontAngle, &ocFontColor,
&bCalcFloorArea, &bExteriorFlag,
&nMoldingPattern, &bCasing, &dCasingThickness, &bInsideMeasure,
&szBalconyDesignFilePath);
CString strRoomName, strFontName, strBalconyDesignFilePath;
AfxBSTR2CString(&strRoomName, szRoomName);
AfxBSTR2CString(&strFontName, szFontName);
AfxBSTR2CString(&strBalconyDesignFilePath, szBalconyDesignFilePath);
strMsg.Format(TEXT("Room type[%u]name[%s]disp[%u][%u]floorHeight[%lf]\r\n")
TEXT("Ceiling[%lf]habaki[%lf]koshi[%lf]\r\n")
TEXT("mawa[%lf]mikiri[%lf]bal[%lf]bHabaki[%u]bMawa[%u]bKosi[%u]bKosiM[%u]bRoof[%u]hatch[%d]\r\n")
TEXT("forCol[%x]backCol[%x]back[%u]tatami[%u]font[%s]size[%lf]attr[%x]angle[%lf]col[%x]\r\n")
TEXT("CalcArea[%d]Exterior[%d]\r\n")
TEXT("Molding[%d]Casing[%d]cThick[%d]Inside[%d]\r\n")
TEXT("Bal[%s]"),
uRoomType, strRoomName, bDispRoomName, bDispRoomSize, dFloorHeight,
dCeilingHeight, dHabakiHeight, dKoshiHeight,
dMawaribuchiHeight, dKoshiMikiriHeight,
dBalconyHeight, bHabaki, bMawaribuchi, bKoshikabe, bKoshiMikiri, bRoofFlag, byHatchStyle,
ocForeColor, ocBackColor, bBackTrans, uTatamiType, strFontName, dFontSize, byFontAttr,
dFontAngle, ocFontColor,
bCalcFloorArea, bExteriorFlag,
nMoldingPattern, bCasing, dCasingThickness, bInsideMeasure,
strBalconyDesignFilePath);
AfxMessageBox(strMsg);
if(szRoomName){
::SysFreeString(szRoomName);
}
if(szFontName){
::SysFreeString(szFontName);
}
if(szBalconyDesignFilePath){
::SysFreeString(szBalconyDesignFilePath);
}
ULONG uVertex = 0;
if(vVertex.parray){
uVertex = vVertex.parray->rgsabound[0].cElements;
}
if(uVertex > 0){
double * pVar;
SafeArrayAccessData(vVertex.parray, (void**)&pVar);
for(ULONG u = 0; u < uVertex; u+=2){
strMsg.Format(TEXT("Vertex %u[%lf,%lf]"), u/2, pVar[u], pVar[u+1]);
AfxMessageBox(strMsg);
}
SafeArrayUnaccessData(vVertex.parray);
}
if(vVertex.parray) SafeArrayDestroy(vVertex.parray);
}
break;
}
lRet = m_MadoriDoc->GetNextObject();
}
// JavaScript sample
var doc = new CMadoriDoc();
var lRet = doc.GetTopObject();
while(lRet){
var uType =doc.GetCurrentObjectType();
alert(uType);
switch (uType){
case 19: // room
var data = eval( doc.GetRoom2JS() );
alert( "Result[" + data.Result + "]" );
alert( data.Vertex.length );
for( var i=0 ; i < data.Vertex.length ; i++ ){
alert( "Vertex:[" + data.Vertex[i] + "]" );
}
alert( data.RoomType );
alert( data.RoomName );
alert( data.DispRoomName );
alert( data.DispRoomSize );
alert( data.FloorHeight );
alert( data.CeilingHeight );
alert( data.HabakiHeight );
alert( data.KoshiHeight );
alert( data.BalconyHeight );
alert( data.KoshiMikiriHeight );
alert( data.Habaki );
alert( data.Mawaribuchi );
alert( data.Koshikabe );
alert( data.KoshiMikiri );
alert( data.RoofFlag );
alert( data.HatchStyle );
alert( data.ForeColor );
alert( data.BackColor );
alert( data.BackTrans );
alert( data.TatamiType );
alert( data.FontName );
alert( data.FontSize );
alert( data.FontAttr );
alert( data.FontAngle );
alert( data.FontColor );
alert( data.CalcFloorArea);
alert( data.ExteriorFlag);
alert( data.MoldingPattern);
alert( data.Casing);
alert( data.CasingThickness);
alert( data.InsideMeasure);
alert( data.BalconyDesignFilePath);
break;
}
lRet = doc.GetNextObject();
}