/*
MapInfo Products Knowledge Base
Product: MapX
Version: 4.5
Platform: Win9xNT0
Category: VC++ Code Samples
Summary:
Creating a new table in Visual C++.
Question:
Is there a C++ code example for how to create a new table?
Answer:
Below is an example of how to create a new layer with MapX 4.5 and C++:
*/
//Create a new Fields Object
CMapXFields Flds;
Flds.CreateDispatch(Flds.GetClsid());
//Create the field definitions for the new layer. For example:
//First field is a string, second is an integer, last is a date
Flds.AddStringField("My String Column", 50);
Flds.AddIntegerField("My Integer Field");
Flds.AddDateField("My Date Field");
//Create a variant that points to the fields collection just created
VARIANT vFlds;
vFlds.vt = VT_DISPATCH;
vFlds.pdispVal = Flds.m_lpDispatch;
//Create a new LayerInfo Object
CMapXLayerInfo Linfo;
Linfo.CreateDispatch(Linfo.GetClsid());
//Set the Layer Info type to type: New Table
Linfo.SetType(miLayerInfoTypeNewTable);
//Add the parameters for the new table
Linfo.AddParameter("FileSpec", COleVariant("MyTab.tab")); //Tab file
Linfo.AddParameter("Name", COleVariant("MyNewLayer")); //Layer name
Linfo.AddParameter("Fields", vFlds); //Fields
//Add the new layer to the map
m_MapX.GetLayers().Add(Linfo.m_lpDispatch);