構文
BOOL GetRoom(VARIANT * vVertex, WORD * uRoomType, BSTR
* szRoomName, unsigned short * bDispRoomName,
unsigned short * bDispRoomSize, double * dFloorHeight, double
* dFloorThick, double * dCeilingHeight,
double * dHabakiHeight, double * dKoshiHeight,
double * dMawaribuchiHeight, double * dKoshiMikiriHeight,
double * dBalconyHeight, unsigned short * bHabaki,
unsigned short * bMawaribuchi,
unsigned short * bKoshikabe,
unsigned short * bKoshiMikiri, unsigned short * bRoofFlag,
BYTE * byHatchStyle, OLE_COLOR * ocForeColor,
OLE_COLOR * ocBackColor, unsigned short * bBackTrans, WORD * uTatamiType,
BSTR *szFontName, double * dFontSize,
BYTE * byFontAttr,
double * dFontAngle, OLE_COLOR * ocFontColor);
カレントのオブジェクトが、部屋の場合、その情報を取得します。
パラメータ
- 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出窓
- 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 以外を返します。できなかった場合は 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("何もない"); while(lRet){ ULONG uType = m_MadoriDoc->GetCurrentObjectType(); short nLayer = m_MadoriDoc->GetCurrentObjectLayer(); CString strMsg; strMsg.Format("[%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; unsigned short uRoomType; BSTR szRoomName = NULL; unsigned short bDispRoomName, bDispRoomSize; double dFloorHeight, dFloorThick, dCeilingHeight, dHabakiHeight, dKoshiHeight, dMawaribuchiHeight, dKoshiMikiriHeight, dBalconyHeight; unsigned short bHabaki, bMawaribuchi, bKoshikabe, bKoshiMikiri, bRoofFlag; BYTE byHatchStyle; unsigned long ocForeColor, ocBackColor; unsigned short bBackTrans, uTatamiType; BSTR szFontName = NULL; double dFontSize; BYTE byFontAttr; double dFontAngle; unsigned long ocFontColor; m_MadoriDoc->GetRoom(&vVertex, &uRoomType, &szRoomName, &bDispRoomName, &bDispRoomSize, &dFloorHeight, &dFloorThick, &dCeilingHeight, &dHabakiHeight, &dKoshiHeight, &dMawaribuchiHeight, &dKoshiMikiriHeight, &dBalconyHeight, &bHabaki, &bMawaribuchi, &bKoshikabe, &bKoshiMikiri, &bRoofFlag, &byHatchStyle, &ocForeColor, &ocBackColor, &bBackTrans, &uTatamiType, &szFontName, &dFontSize, &byFontAttr, &dFontAngle, &ocFontColor); CString strRoomName, strFontName; AfxBSTR2CString(&strRoomName, szRoomName); AfxBSTR2CString(&strFontName, szFontName); strMsg.Format("Room type[%u]name[%s]disp[%u][%u]floorHeight[%lf]" "thick[%lf]Ceiling[%lf]habaki[%lf]koshi[%lf]" "mawa[%lf]mikiri[%lf]bal[%lf]bHabaki[%u]bMawa[%u]bKosi[%u]bKosiM[%u]bRoof[%u]hatch[%d]" "forCol[%x]backCol[%x]back[%u]tatami[%u]font[%s]size[%lf]attr[%x]angle[%lf]col[%x]", uRoomType, strRoomName, bDispRoomName, bDispRoomSize, dFloorHeight, dFloorThick, dCeilingHeight, dHabakiHeight, dKoshiHeight, dMawaribuchiHeight, dKoshiMikiriHeight, dBalconyHeight, bHabaki, bMawaribuchi, bKoshikabe, bKoshiMikiri, bRoofFlag, byHatchStyle, ocForeColor, ocBackColor, bBackTrans, uTatamiType, strFontName, dFontSize, byFontAttr, dFontAngle, ocFontColor); AfxMessageBox(strMsg); if(szRoomName){ ::SysFreeString(szRoomName); } if(szFontName){ ::SysFreeString(szFontName); } 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("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(); }