Quantcast
Channel: MicroStation Programming Forum - Recent Threads
Viewing all 7260 articles
Browse latest View live

[v8i ss3 MDL] Problem with using a variables in dialog.

$
0
0

I have four variables:    

var1="AbcdeZ"
var2=22.22;
var3=33.33;
var4=44.44;

In my dialog:

var2 and var4 are lost, why?

Any suggestion?

Files in my project.

File.h

typedef struct globalsa 
{
 char	var1[255];
 float  var2;
 float  var3;
 double var4;
} GlobalsA;

File.mt

publishStructures(globalsa);

File.c

Public GlobalsA globala;

mdlDialog_publishComplexVariable (setP, "globalsa","globala", &globala);

strcpy (globala.var1, "AbcdeZ");
globala.var2=22.22;
globala.var3=33.33;
globala.var4=44.44;

mdlDialog_open (NULL, DIALOGID_MYDIALOG);

File.r

DialogBoxRsc DIALOGID_MYDIALOG =
    {
    DIALOGATTR_DEFAULT,
    XC, YC,
    NOHELP,    MHELP,
    NOHOOK,
    NOPARENTID,"- Dialog -",
	{
    {{XC*18, GENY(1.0), 60 ,0}, Text, TEXTID_VAR1, ON, 0, "", ""},
    {{XC*18, GENY(2.2), 60 ,0}, Text, TEXTID_VAR2, ON, 0, "", ""},
    {{XC*18, GENY(3.4), 60 ,0}, Text, TEXTID_VAR3, ON, 0, "", ""},
    {{XC*18, GENY(4.6), 60 ,0}, Text, TEXTID_VAR4, ON, 0, "", ""},
	}
    };

DItem_TextRsc TEXTID_VAR1 =
    {
    NOCMD, LCMD, NOSYNONYM, NOHELP, MHELP, NOHOOK, NOARG,
    255, "%s", "%s", "", "", NOMASK, NOCONCAT,"var1:","globala.var1"
    };
DItem_TextRsc TEXTID_VAR2 =
    {
    NOCMD, LCMD, NOSYNONYM, NOHELP, MHELP, NOHOOK, NOARG,
    10, "%f", "%f", "", "", NOMASK, NOCONCAT,"var2:","globala.var2"
    };
DItem_TextRsc TEXTID_VAR3 =
    {
    NOCMD, LCMD, NOSYNONYM, NOHELP, MHELP, NOHOOK, NOARG,
    10, "%f", "%f", "", "", NOMASK, NOCONCAT,"var3:","globala.var3"
    };
DItem_TextRsc TEXTID_VAR4 =
    {
    NOCMD, LCMD, NOSYNONYM, NOHELP, MHELP, NOHOOK, NOARG,
    10, "%f", "%f", "", "", NOMASK, NOCONCAT,"var4:","globala.var4"
    };

Regards.


[v8i SS3 VBA] Create a rectangle using CreateShapeElement1 ?

$
0
0

Hi everybody,

I want to make a normal rectangular using VBA. The provided data are the start point, length and width.

I suspect CreateShapeElement1 should do the trick. But I couldn't find examples about it.

I recorded the macro. But I don't think this is the best solution. Here is the code from the recorded macro:

Sub Macro1()
    Dim startPoint As Point3d
    Dim point As Point3d, point2 As Point3d
    Dim lngTemp As Long'   Start a command
    CadInputQueue.SendCommand "PLACE BLOCK ICON"'   Coordinates are in master units
    startPoint.X = 1179518.64470319
    startPoint.Y = 1877837.56670545
    startPoint.Z = 0#'   Send points to simulate a down-drag-up action
    point.X = startPoint.X
    point.Y = startPoint.Y
    point.Z = startPoint.Z
    point2.X = point.X + 3#
    point2.Y = point.Y - 2#
    point2.Z = point.Z
    CadInputQueue.SendDragPoints point, point2, 1

    CommandState.StartDefaultCommand
End Sub

Sorry for the big number of point. It meant for the place that is far away from the headquarter.

Thanks in advance.

Regards,

Cindy

[CONNECT C#] Cannot load dll on Windows 10

$
0
0

Hi all,

I have some custom tools that are developed with C#. With appropriate compiler switches and configuartion I made the code running on both: 32bit Microstation v8i SS3 and 64bit Microstation CONNECT / AECOsim.

It works perfectly on my own developer machine and on my coworkers machines (they dont have Visual Studio or stuff installed) all with WIndows 7 and all with both versions of Microstation / AECOsim.

Now we got some new PCs with Windows 10. Somehow it is not possible to load the dlls into Microstation on that Windows 10 PC. I tried both: Keyin "mdl load ..." and browsing for dll via Mdl-Dialog.
As the workspace is the same, the configuartion is the same and, well, everything else is the same except Windows version I really have no idea what kind of error that could be. Microstation is not helping very much: it just gives me the usual "... could not be loaded".

Maybe someone has an idea where to search for errors? Or even HOW to search? I have no idea. I mean as it is running on the other systems it should not be useful to install Visual Studio on that Win10 machine to try to debug with Windows 10. Or maybe that would be useful indeed?

Regards
Stephan

[v8i SS3 VBA] Create a 3D Box using SmartSolidElement.CreateSlab ?

$
0
0

Hi everyone,

Continuing my answered question in 
https://communities.bentley.com/products/programming/microstation_programming/f/microstation-programming---forum/147220/v8i-ss3-vba-create-a-rectangle-using-createshapeelement1/447981

I want to create a normal 3D Box. As suggested by Jon Summers in the comment of question from above ( ), I used SmartSolidElement.CreateSlab.

After looking at the example from these sources:

I still couldn't figure out how to place the box in the given point.

This is what I've tried

Set oBox = SmartSolid.CreateSlab(Nothing, trailer_width, trailer_length, trailer_height)
oBox.Origin.X = startpoint.X
oBox.Origin.Y = startpoint.Y
oBox.Origin.Z = startpoint.Z
ActiveModelReference.AddElement oBox
oBox.Redraw

To be honest, I don't really understand why we need to put oBox.Redraw at the end, as I didn't change anything inbetween.

Anyway, the program didn't work when I wrote oBox.Origin = startpoint because it is apparently read-only.
And after the code above, the box still appeared in middle of 0 point.

Any idea regarding creating a 3D box or moving it?

Thank you in advance!

Regards,

Cindy

[Connect C++] How to read custom properties (no standard properties) on elements

$
0
0

Hi Experts, I want to know if there is a direct way to get MicroStation element custom properties. For example, Below first image is full properties of one element:

Then all custom properties which I want to read (no standard categories):

Right now I am able to use EC Property iterate full properties from one given Element, however the results are mixed of standard and custom properties. One of the possible way I think is to perform a further filter to ignore standard properties by checking every property's category information, will that work? Is it possible custom properties having standard category also?

On the other side, I notice there is an 'Item' associated with the element, and inside of the item it contains many custom properties, will it be enough to read the 'Item" object of every element to get all custom properties? And if so can you kindly advice which parts of API I should use to read this type objects?

Thanks a lot,

Danny

[AECOsim SS6] mdlFile_validDesignFile missing

$
0
0

" Cant find DLL entry point mdlFile_validDesignFile in stdmdlbltin.dll message"

I wrote a small freeware VBA tool mentioned here.  One of its jobs is to harvest files.  While harvesting files it checks that a file is a DGN file before adding to its internal list.  It uses mdlFile_validDesignFile.

It works in MicroStation, but not in AECOsim SS6.  "I get  an Error 435 with a Cant find DLL entry point mdlFile_validDesignFile in stdmdlbltin.dll"  Why would that function be missing in AECOsim SS6?

[Connect update 6] Solid element Range accuracy issue

$
0
0

Hi,

My system is windows 7, VS 2015, connect update 6

While working with solid elements (sphere , slab) I have noticed strange thing with range accuracy.

Example:

I created sphere with radius = 50 millimeters and center = 0,0,0

Range in X,Y and Z direction should be 50 but it is not. There is a difference 0.0125 millimeters.

Does this have something to do with resolution, I am using 1/80 resolution.

I tried to attach dgn file but received error message "Maximum file size 512KB"

Thanks

Nenad

[CONNECT U7] Question About DItem_PulldownMenuItemRsc

$
0
0

A Pulldown Menu Item has a parameter for a Hook (pulldownItemHookId) but there doesn't seem to be a Hook Argument (itemHookArg), like provided for by many other Dialog Items. Is there a way to pass an "argument" some other way to a hook function. Can the "searchId" (long) be used to pass an argument? If so, how would you retrieve the value?

Thanks,

Bruce


Place Block Rotate

[CONNECT StringLists] Possible to Concat Strings for StringList Resource Definition?

$
0
0

I've got an include file that contains version information on my tool:

...
#define VER_PRODUCTNAME_STR         "srs_placeBreak"
#define VER_COPYRIGHT_STR           "SRNS, Copyright (C) 2018"
...

I use this information in the tool's .rc file to get the version info embedded into the .dll. I'm also attempting to use that same information as the text part of a StringList entry so I can grab it and use it in a "About" type dialog box using mdlDialog_openInfoBox();

StringList STRINGLIST_Help =	// 50
{
	4,	
	{
		{ {VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD}, "\nVER_PRODUCTNAME_STR\nVER_COPYRIGHT_STR"},
	}
};

However, when the resource compiler is run, it is not "replacing" VER_PRODUCTNAME_STR with the actual text as defined in the header file. Is there a way to do this?

Bruce

[CONNECT] Problem creating design file (Excel VBA)

$
0
0

Hi all,

Recently updated my SelectSeries4 to CONNECT and I am having issues creating a design file using the following code

Sub Test()

Dim o As MicroStationDGN.Application
Dim oAL As ApplicationObjectConnector
Dim myDGN As DesignFile

Set oAL = New ApplicationObjectConnector
Set o = oAL.Application

o.Visible = True

Set myDGN = o.CreateDesignFile("seed2d", "Test", True)

End Sub

I've switched the references to the Bentley Microstation 10.x Object library as well and it doesn't seem to be working. It doesn't have a problem creating a design file using the old version of Microstation
I get a "File not found" error when I run the macro.

Could anyone point me in the right direction?

Kind regards,
Jacky

Debugging a native application in OpenRoads Designer CONNECT Edition and Visual Studio 2015

$
0
0

Hi guys,

I am attempting to debug my newly migrated native MDL application using Visual Studio 2015 and OpenRoads Designer CONNECT.

I compiled the MDL app using the following command:

bmake -a -ddebug tables

Then I ran the OpenRoads Designer CONNECT application.

From Visual Studio 2015 I attached the debug session to the OpenRoads executable.

I set several breakpoints in my source code.

I cannot find a way to add my application DLL to the Visual Studio debug session.

Is this step necessary? When I run my MDL none of my breakpoints are hit.

Any help would be greatly appreciated.

Regards,

Benzi

Remote debugging of Microstation/Promis-e add-in

$
0
0

Hello,

I'm wondering if anyone has any experience with debugging a Microstation or Promis-e add-in over a network? My situation is that my Visual Studio is on a different machine than my Microstation App. At present I do not have the option to install it on the same machine. I can get the program to start over the network but it ignores my command line arguments and when I get it running it won't let me step through my code. I'm currently writing in VB.Net

Any help is appreciated.

Thanks

Dave

[CONNECT C++]

$
0
0

Using pre-CONNECT Dialog Item hooks, if one had a PulldownMenuItem, it is possible to get the "searchID" value of the pulldown entry by grabbing the auxiliary information from the DialogItemMessage, and obtaining it from u.activateItem.searchId. I'm trying to utilize the newer C++ DialogItemHookHandler class. Once I get to _OnButton(), I can't see any way to grab that "auxiliary info" so I can snag the searchID from DialogItemButtonArgs.

Bruce

Place Text dialogue box text height and width problem

$
0
0

In the "Place Text" dialogue box the Height and Width boxes are expressed as ratios (with a colon) instead of a decimal value.  How can I change this?


Entering Multiple Lines Using Notepad

$
0
0

Hello,

I currently am able to find and replace text using the following code in Notepad, utilizing the batch process command in utilities, version V8i:

MDL SILENTLOAD FINDREPLACETEXT,CHNGTXT CHANGE DIALOGTEXT
FIND DIALOG SEARCHSTRING OLD TEXT HERE
FIND DIALOG REPLACESTRING NEW TEXT HERE
CHANGE TEXT ALLFILTERED

Thus far this code is working properly; however, If i want to replace the old text with new text that goes on multiple lines, I am not able to make it work.

For example:

Old text: The quick brown fox jumps over....

New Text: The quick brown [new line]

                 fox jumps over....

Is there a way of properly doing this by modifying the code above?

Thank you in advance.

[CONNECT C++] YawPitchRollAngles

$
0
0

I noticed the YawPitchRollAngles struct in the MicroStationAPI documentation.  Is this related to Euler angles?

Problem Unloading Native Application in CONNECT

$
0
0

Hello guys,

I am in the process of debugging my native application in OpenRoads Designer CONNECT edition.

I have added the following code to my main dialog hook function:

void tablesDialogHook( DialogMessage   *dmP )
{
    dmP->msgUnderstood = TRUE;

    switch (dmP->messageType)
    {
        case DIALOG_MESSAGE_CREATE:
            dmP->u.create.interests.updates = TRUE;
            dmP->u.create.interests.mouses = TRUE;
            dmP->u.create.interests.keystrokes = TRUE;
            dmP->u.create.interests.dialogFocuses = TRUE;
            dmP->u.create.interests.itemFocuses = TRUE;
            dmP->u.create.interests.resizes = TRUE;
            break;

        case DIALOG_MESSAGE_DESTROY:
            mdlSystem_unloadMdlProgram(L"TABLES");
            mdlDialog_cmdNumberQueue(FALSE, CMD_MDL_UNLOAD, mdlSystem_getCurrTaskID(), INPUTQ_EOQ);
            break;

        default:
            dmP->msgUnderstood = FALSE;
            break;
    }
}

Both attempts to unload the application fail for some reason. 

If I unload the application manually with "mdl unload tables" Microstation crashes.

Any ideas why?

Regards,

Benzi

Exception Handling During Debug Session In Visual Studio 2015

$
0
0

Hi guys,

I am in the process of debugging my native application in OpenRoads Designer CONNECT Edition using Visual Studio 2015.

All seems to be running fine except for some strange exception error messages that are unrelated to the MA/DLL that I am debugging.

Here is a sample error message:

Unfortunately these error messages do not allow me to continue debugging my application.

Is there a way to tell Visual Studio to break only on exceptions that are created inside my application code?

Apparently Visual Studio 2017 has a feature that allows breaking on exceptions only from specific modules.

Regards,

Benzi

Simplify the code

$
0
0

Hi,

I have used Microstation V8i select series 2 and visual studio 2005.

Project files are (.cpp, .r, .mke, .mki and .h)

Please find the  below code and help to simplify the code if possible


        //Ectract the element tags
        if(mdlTag_extract( NULL, NULL, &tag_spec, NULL, &tag_val, NULL, NULL, NULL, NULL, NULL, &tag_descr->el, ACTIVEMODEL ) == SUCCESS)
        {
		    if(mdlWideChar_strlen((MSWideCharCP)tag_spec.set.setName) == mdlWideChar_strlen((MSWideCharCP)SIP_TITEL_TAGSET))
            {
		        if(0 == mdlWideChar_strcmpi((MSWideCharCP)SIP_TITEL_TAGSET,(MSWideCharCP)tag_spec.set.setName))
                {
                    find = TRUE;
					//Revision level tag name
                    if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_REV))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->revisionlevel, tag_val.val.stringVal);
                    }
					//Revision level1
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_REV1))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->revisionlevel1, tag_val.val.stringVal);
                    }
					//Revision level2
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_REV2))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->revisionlevel2, tag_val.val.stringVal);
                    }
					//Date
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DATE))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->revisiondate, tag_val.val.stringVal);
                    }
					//Date1
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DATE1))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->revisiondate1, tag_val.val.stringVal);
                    }
					//Date2
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DATE2))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->revisiondate2, tag_val.val.stringVal);
                    }
					//Grund
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_GRUND))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->grund, tag_val.val.stringVal);
                    }
					//Grund1
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_GRUND1))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->grund1, tag_val.val.stringVal);
                    }
					//Grund2
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_GRUND2))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->grund2, tag_val.val.stringVal);
                    }
					//Herstkz
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_HERKZ))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->herstkz, tag_val.val.stringVal);
                    }
					//ZeichungsNr
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_ZEICHN))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->zeichnungsnr, tag_val.val.stringVal);
                    }
					//Plankennzeichen
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_PLAKEN))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->functionkennzeichen, tag_val.val.stringVal);
                    }
					//Ortskennzeichen
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_ORTSKEN))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->ortskennzeichen, tag_val.val.stringVal);
                    }
					//SheetNo
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_SHTNO))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->sheetno, tag_val.val.stringVal);
                    }
					//Schrank
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_POW))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->schrank, tag_val.val.stringVal);
                    }
					//Drawingid
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DRAWID))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->drawingid, tag_val.val.stringVal);
                    }
					//DrawingHeader
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DRAWHDR))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->drawingheader, tag_val.val.stringVal);
                    }
					//DrawingHeader1
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DRAWHDR1))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->drawingheader1, tag_val.val.stringVal);
                    }
					//DrawingHeader2
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DRAWHDR2))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->drawingheader2, tag_val.val.stringVal);
                    }
					//Titel
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_TITEL))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->titel, tag_val.val.stringVal);
                    }
					//Titel1
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_TITEL1))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->titel1, tag_val.val.stringVal);
                    }
					//Drawn By
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DRAWNBY))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->drawnby, tag_val.val.stringVal);
                    }
					//Drawn Date
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_DRAWN_DATE))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->drawndate, tag_val.val.stringVal);
                    }
					//Checked By
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_CHECKEDBY))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->checkedby, tag_val.val.stringVal);
                    }
					//Checked Date
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_CHECKED_DATE))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->checkeddate, tag_val.val.stringVal);
                    }
					//Approved By
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_APPROVEDBY))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->approvedby, tag_val.val.stringVal);
                    }
					//Approved Date
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_APPROVED_DATE))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->approveddate, tag_val.val.stringVal);
                    }
					//Sig Art
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_SIGART))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->sigart, tag_val.val.stringVal);
                    }
					//FunctionNr
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_FUNCTION_NR))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->function_nr, tag_val.val.stringVal);
                    }
					//Function Drawing
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_FUNCTION_DWG))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->function_dwg, tag_val.val.stringVal);
                    }
					//Function Sheet
                    else if(0 == mdlWideChar_strcmpi((MSWideCharCP)tag_spec.tagName,(MSWideCharCP)TAG_FUNCTION_SHT))
                    {
                        if( (check_char_drg(tag_val.val.stringVal)) != 0 )
                            strcpy(tab->function_sht, tag_val.val.stringVal);
                    }
                }
            }
            if(tag_val.type == MS_TAGTYPE_CHAR)
                free(tag_val.val.stringVal);
        }

Regards,

Saravanan

Viewing all 7260 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>