Post

xdata 쓰기 예제

xdata 쓰기 예제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
if (mdlElmdscr_read(&pDescr, filePosP , modelRef , FALSE , NULL) != 0)
{
    ElementId regAppID;
    static MSWChar *s_applicationName = L"Rev.Pro";
    if (SUCCESS == mdlRegApp_idFromName (&regAppID, s_applicationName , mdlModelRef_getDgnFile(MASTERFILE), TRUE))
    {
        XDataValueUnion     data;
        int     dataType;
        int     groupCode;
        UInt32    dataSize;
        UInt32    index = NULL;

        if(pDescr->h.isHeader && pDescr->h.firstElem)
        {
            for(MSElementDescrP ptr = pDescr->h.firstElem;NULL != ptr;ptr = ptr->h.next)
            {
                UInt32        color = 0;
                mdlElement_getSymbology(&color, NULL , NULL , &(ptr->el));
                //기존 데이타 있는지 체크..
                if (SUCCESS != mdlLinkage_getXDataGroupCode (&data, &dataType, &dataSize, &groupCode, &(ptr->el) , &index))
                {
                    const int iSize1 = sizeof(&OriginColor);
                    const int iSize2 = sizeof(OriginColor);
                    if (SUCCESS == mdlLinkage_addXDataGroupCode (&ptr, DWGXDATA_Integer, &color, sizeof(color)))
                    {
                    } 
                    else
                    {
                        AfxMessageBox(_T("XData 안들어 감"));
                    }
                }
            }
        }

            if (SUCCESS != mdlLinkage_getXDataGroupCode (&data, &dataType, &dataSize, &groupCode, &(pDescr->el) , &index))
        {
            const int iSize1 = sizeof(&OriginColor);
            const int iSize2 = sizeof(OriginColor);
            if (SUCCESS == mdlLinkage_addXDataGroupCode (&pDescr, DWGXDATA_Integer, &OriginColor, sizeof(OriginColor)))
            {
            } 
            else
            {
                AfxMessageBox(_T("XData 안들어 감"));
            }
        }
    }
    mdlElmdscr_rewrite(pDescr,pDescr,filePosP);
    mdlElmdscr_freeAll (&pDescr);
}