KIDASA Software, Inc. Website   

HOME   |   BUY   |   DOWNLOAD   |  PRODUCTS   |    NEWS   |   SUPPORT   |   CONTACT   |   EXAMPLES   |   SEARCH

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

// milesautosample.cpp : Defines the entry point for the application.
//

// Windows Header Files:
#include <windows.h>
#include <windowsx.h>
#include <oleauto.h>

// C RunTime Header Files
#include  <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include "resource.h"

int CopyBSTRToString(LPSTR szOut,BSTR bstrIn,int nOutMax);

void DisplayClipboardMetafile(HDC hdc, HWND hWnd);

// Start Milestones API declarations
//

HRESULT mlsActivate(void);                              // dont remove
HRESULT mlsRefresh(void);                               // dont remove
HRESULT mlsSetDebugMode(LPSTR szOnOff); // dont remove

// begin declaring functions
HRESULT mlsAddCurtain(LPSTR szString1, LPSTR szString2);
HRESULT mlsAddSymbol(int nLine, LPSTR szDate, int nValue1, int nValue2, int nValue3, int nValue4, int nValue5, int nValue6, int nValue7, int nValue8,LPSTR szText1,LPSTR szText2,LPSTR szText3,LPSTR szText4);
HRESULT mlsAddTaskUsingDuration(int nValue1, LPSTR szLineOne, int nValue2,int nValue3,int nValue4,int nValue5,int nValue6, LPSTR szLineTwo, int nValue7, int nValue8, LPSTR szLineThree, LPSTR szLineFour, LPSTR szLineFive);
HRESULT mlsAddFreeText(LPSTR szText, double dbValue1, double dbValue2);
HRESULT mlsApplyColorTheme(LPSTR szTheme, LPSTR szTrueFalse);
HRESULT mlsClearValueSet(LPSTR szString1);
HRESULT mlsClearValueSetByNumber(int nValue1);
HRESULT mlsClose(LPSTR szAskForSave);
HRESULT mlsCheckForDiskFileSave(LPSTR szAskForSave);
HRESULT mlsCheckForEscapeKey(LPSTR szReturnString);
HRESULT mlsConvertUserHeadToEmbedded(int nValue1);
HRESULT mlsCopyFileToFTP(LPSTR szString1, LPSTR szString2);
HRESULT mlsCopyMetaFileToClipboard(void);
HRESULT mlsDeleteCurrentPage(void);
HRESULT mlsDeleteSymbol(int nValue1, int nValue2);
HRESULT mlsDeleteTaskLine(int nValue1);
HRESULT mlsDisplayMessageBox(LPSTR szString1);
HRESULT mlsFilterTaskLines(LPSTR szLineOne, LPSTR szLineTwo, LPSTR szLineThree, LPSTR szLineFour, LPSTR szLineFive, LPSTR szLineSix, LPSTR szLineSeven, LPSTR szLineEight, LPSTR szLineNine, LPSTR szLineTen, LPSTR szLineEleven, LPSTR szLineTwelve, LPSTR szLineThirteen, LPSTR szLineFourteen, LPSTR szLineFifteen, LPSTR szLineSixteen, LPSTR szLineSeventeen);
HRESULT mlsGetCellTag(LPSTR szCellText,int nValue1, int nValue2);
HRESULT mlsGetCellText(LPSTR szCellText,int nValue1, int nValue2);
HRESULT mlsGetColumnProperty(LPSTR szLineTwo,int nValue1, LPSTR szLineOne);
HRESULT mlsGetCurrencySymbol(LPSTR szReturnString);
HRESULT mlsGetCurrentDate(LPSTR szReturnString);
HRESULT mlsGetCurrentPage(int * nReturnValue);
HRESULT mlsGetDataGraphProperty(LPSTR szLineTwo,int nValue1, LPSTR szLineOne);
HRESULT mlsGetFirstWeeklyValueSetDate(LPSTR szReturnString);
HRESULT mlsGetFontSize(int * nReturnValue,int nValue1);
HRESULT mlsGetFreeTextProperty(LPSTR szLineTwo,int nValue1, LPSTR szLineOne);
HRESULT mlsGetGlobalValueSetValue(double * dblReturnValue, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsGetLegendProperty(LPSTR szLineTwo,int nValue1, LPSTR szLineOne);
HRESULT mlsGetLineOfSymbolTag(int * nReturnValue,LPSTR szLineOne);
HRESULT mlsGetLinesPerPage(int * nReturnValue);
HRESULT mlsGetNumberOfFreeTextBlocksUsed(int * nReturnValue);
HRESULT mlsGetNumberOfPages(int * nReturnValue);
HRESULT mlsGetMetric(int * nReturnValue);
HRESULT mlsGetMilestonesDateFormat(int * nReturnValue);
HRESULT mlsGetMilestonesSystemFolder(LPSTR szReturnString);
HRESULT mlsGetMiscProperty(LPSTR szLineTwo, LPSTR szLineOne);
HRESULT mlsGetNumberOfLines(int * nReturnValue);
HRESULT mlsGetNumberOfSymbolsInLine(int * nReturnValue,int nValue1);
HRESULT mlsGetOutlineLevel(int * nReturnValue,int nValue1);
HRESULT mlsGetOutlineLevelAttribute(int * nReturnValue,int nValue1, LPSTR szLineOne);
HRESULT mlsGetPercentComplete(double * dblReturnValue,int nValue1);
HRESULT mlsGetScheduleHeight(double * dblReturnValue);
HRESULT mlsGetSelectedSymbolInLine(int * nReturnValue,int nValue1);
HRESULT mlsGetSymbolNumberOfSymbolTag(int * nReturnValue,LPSTR szLineOne);
HRESULT mlsGetSymbolProperty(LPSTR szLineTwo,int nValue1, int nValue2, LPSTR szLineOne, int nValue3);
HRESULT mlsGetTaskLineOfSelectedSymbol(int * nReturnValue);
HRESULT mlsGetTaskLineValueSetValue(double * dblReturnValue, int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsGetTitle1(LPSTR szReturnString);
HRESULT mlsGetTitle2(LPSTR szReturnString);
HRESULT mlsGetTitle3(LPSTR szReturnString);
HRESULT mlsGetToolboxSymbolProperty(LPSTR szLineTwo,int nValue1, LPSTR szLineOne, int nValue2);
HRESULT mlsGetValueSetDateAlignment(LPSTR szReturnString);
HRESULT mlsKeepScheduleOpen(void);
HRESULT mlsMaximizeWindow(void);
HRESULT mlsPrint(int nValue1, int nValue2);
HRESULT mlsPutCell(int nRow, int nColumn, LPSTR szCellText);
HRESULT mlsPutCellTag(int nRow, int nColumn, LPSTR szCellText);
HRESULT mlsRefreshTask(int nValue1);
HRESULT mlsResetEscapeKey(void);
HRESULT mlsRollUpTaskLines(int nValue1);
HRESULT mlsSave(LPSTR szFileName);
HRESULT mlsSaveBitmap(LPSTR szFileName);
HRESULT mlsSaveHTML(LPSTR szFileName);
HRESULT mlsSaveHTMLDrillDown(LPSTR szFileName);
HRESULT mlsSelectSymbolInLine(int nValue1, int nValue2);
HRESULT mlsSetAutomationDependencyMode(LPSTR szOnOff);
HRESULT mlsSetAutoSave(LPSTR szOnOff);
HRESULT mlsSetCalculationColumnProperties(int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetCalendarView(LPSTR szLineOne, int nValue1);
HRESULT mlsSetColumnProperty(int nValue1,LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetColumnWidth(int nValue1, double dbValue2);
HRESULT mlsSetConnectorFillToStatus(LPSTR szOnOff);
HRESULT mlsSetCurrentDate(LPSTR szDate);
HRESULT mlsSetCurrentPage(int nValue1);
HRESULT mlsSetCurtainProperties(int nValue1, LPSTR szLineOne, LPSTR szLineTwo, int nValue2,int nValue3,int nValue4,int nValue5);
HRESULT mlsSetCustomColor(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetDataGraphProperty(int nValue1,LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetDateHeading(int nHeading, LPSTR szHeadingType, int nSubheading);
HRESULT mlsSetDateHeadingProperty(int nValue1, LPSTR szLineOne, int nValue2);
HRESULT mlsSetDisplayedStartEndTimes(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetEndDate(LPSTR szDate);
HRESULT mlsSetFontSize(int nValue1, int nValue2);
HRESULT mlsSetFontStyle(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetFrameAndBackgroundOptions(int nValue1, int nValue2, int nValue3, int nValue4, int nValue5, int nValue6, int nValue7, int nValue8);
HRESULT mlsSetFreeTextProperty(int nValue1,LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetGlobalSymbolSize(double dbValue1);
HRESULT mlsSetGlobalValueSetValue(LPSTR szLineOne, LPSTR szLineTwo, double dbValue1);
HRESULT mlsSetHideBaseLineSummaryBar(LPSTR szOnOff);
HRESULT mlsSetHolidayCalendar(LPSTR szString1, LPSTR szString2);
HRESULT mlsSetInternetPublishingOptions(int nValue0, LPSTR szDate, int nValue1, int nValue2, int nValue3, int nValue4,LPSTR szText1, int nValue5, int nValue6, int nValue7,int nValue8,int nValue9,int nValue10,double dbValue1,int nValue11,int nValue12);
HRESULT mlsSetLegendHeight(double dbValue1);
HRESULT mlsSetLegendProperty(LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetLegendSymbology(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetLegendText(int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetLinesPerPage(int nValue1);
HRESULT mlsSetMiscProperty(LPSTR szLineOne, int nValue1);
HRESULT mlsSetOutLineLevel(int nValue1, int nValue2);
HRESULT mlsSetOutLineLevelAttribute(int nValue1, LPSTR szLineOne, int nValue2);
HRESULT mlsSetPageSize(double dbValue1, double dbValue2);
HRESULT mlsSetPageStartEndDates(int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetPercentComplete(int nValue1, double dbValue2, int nValue2);
HRESULT mlsSetScheduleGridlinesAndShades(int nValue1, int nValue2, int nValue3, int nValue4, int nValue5, int nValue6, int nValue7);
HRESULT mlsSetShowLinks(LPSTR szOnOff);
HRESULT mlsSetStartDate(LPSTR szDate);
HRESULT mlsSetStartAndEndDates(LPSTR szString1, LPSTR szString2);
HRESULT mlsSetStatusMessage(LPSTR szStatus);
HRESULT mlsSetSummaryBarDisplay(int nValue1);
HRESULT mlsSetSymbolDateFormat(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetSymbolFillToStatus(LPSTR szOnOff);
HRESULT mlsSetSymbolProperty(int nValue1, int nValue2, LPSTR szLineOne, LPSTR szLineTwo, int nValue3);
HRESULT mlsSetTaskLineFontHeight(int nValue1, int nValue2);
HRESULT mlsSetTaskLineFontStyle(int nValue1, int nValue2);
HRESULT mlsSetTaskLineGrid(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetTaskLineHeight(int nValue1, double dbValue2);
HRESULT mlsSetTaskLineShade(int nValue1, int nValue2, int nValue3);
HRESULT mlsSetTaskLineShadeEffects(int nValue1, int nValue2, int nValue3, int nValue4);
HRESULT mlsSetTaskLineValueSetValue(int nValue1, LPSTR szLineOne, LPSTR szLineTwo, double dbValue1);
HRESULT mlsSetTitle1(LPSTR szTitle);
HRESULT mlsSetTitle2(LPSTR szTitle);
HRESULT mlsSetTitle3(LPSTR szTitle);
HRESULT mlsSetTitleProperty(LPSTR szPropertyName,int nValue);
HRESULT mlsSetToolboxHorizontalConnectorProperty(int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetToolboxVerticalConnectorProperty(int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetToolboxProperty(LPSTR szPropertyName,int nValue);
HRESULT mlsSetToolboxSymbolProperty(int nValue1, LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetValueSetDateAlignment(LPSTR szDate);
HRESULT mlsSetValueSetName(int nValue1, LPSTR szLineOne);
HRESULT mlsSetValueSetProperty(LPSTR szLineZero,LPSTR szLineOne, LPSTR szLineTwo);
HRESULT mlsSetWorkdayStartEndTimes(int nValue1, int nValue2, int nValue3, int nValue4, int nValue5, int nValue6, int nValue7, int nValue8);
HRESULT mlsShowAllTaskLines(void);
HRESULT mlsSortSymbols(int nValue1);
HRESULT mlsTemplate(LPSTR szTemplate);
HRESULT mlsToggleContinuousView(void);
HRESULT mlsToolbar(LPSTR szOnOff);
HRESULT mlsToolbox(LPSTR szOnOff);
HRESULT mlsUse20Columns(void);

//
// End Milestones API declarations

#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst;                                                                // current instance
TCHAR szTitle[MAX_LOADSTRING];                                                          // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];                                                            // The title bar text

CLSID CLSID_Milestones;
IUnknown FAR* punk;
IDispatch FAR* pdisp = (IDispatch FAR*)NULL;


// Foward declarations of functions included in this code module:
ATOM                            MyRegisterClass(HINSTANCE hInstance);
BOOL                            InitInstance(HINSTANCE, int);
LRESULT CALLBACK        WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK        About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
MSG msg;
HACCEL hAccelTable;

// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_MILESAUTOSAMPLE, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);

// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
        {
        return FALSE;
        }

hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MILESAUTOSAMPLE);

// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))
        {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
                {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
                }
        }

return msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    This function and its usage is only necessary if you want this code
//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
//    function that was added to Windows 95. It is important to call this function
//    so that the application will get 'well formed' small icons associated
//    with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);

wcex.style                      = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc        = (WNDPROC)WndProc;
wcex.cbClsExtra         = 0;
wcex.cbWndExtra         = 0;
wcex.hInstance          = hInstance;
wcex.hIcon                      = LoadIcon(hInstance, (LPCTSTR)IDI_MILESAUTOSAMPLE);
wcex.hCursor            = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground      = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName       = (LPCSTR)IDC_MILESAUTOSAMPLE;
wcex.lpszClassName      = szWindowClass;
wcex.hIconSm            = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

return RegisterClassEx(&wcex);
}

//
//   FUNCTION: InitInstance(HANDLE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;

hInst = hInstance; // Store instance handle in our global variable

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

if (!hWnd)
        {
        return FALSE;
        }

ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);

// Initialize OLE
CoInitialize(NULL);

return TRUE;
}

//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND  - process the application menu
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);

switch (message)
        {
        case WM_COMMAND:
                {
                wmId    = LOWORD(wParam);
                wmEvent = HIWORD(wParam);
                // Parse the menu selections:
                switch (wmId)
                        {
                        case IDM_ABOUT:
                                {
                                DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
                                }
                        break;

                        case ID_PRINT:
                                {
                                if(!pdisp)
                                        {
                                        MessageBox(hWnd,"Sample Schedule not yet created. Select the Start Milestones Sample first.","Message",MB_OK);
                                        return TRUE;
                                        break;
                                        }
                                // Print (first page, last page)
                                mlsPrint(1,2);
                                }
                        break;

                        case ID_METAFILE:
                                {
                                if(!pdisp)
                                        {
                                        MessageBox(hWnd,"Sample Schedule not yet created. Select the Start Milestones Sample first.","Message",MB_OK);
                                        return TRUE;
                                        break;
                                        }
                                // copy a meta file to the clipboard
                                mlsCopyMetaFileToClipboard();
                                }
                        break;

                        case IDM_EXIT:
                                {
                                DestroyWindow(hWnd);
                                }
                        break;


                        case ID_STARTMILESTONES:
                                {
                                // Place calls into this section

                                HRESULT hresult;

                                CLSIDFromString(OLESTR("Milestones"),&CLSID_Milestones);

                                hresult = CoCreateInstance(CLSID_Milestones, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void FAR* FAR*)&punk);

                                hresult = punk->QueryInterface(IID_IDispatch,(void FAR* FAR*)&pdisp);

                                // Start Milestones
                                mlsActivate();

                                // Turn on debug mode
                                mlsSetDebugMode("off");

                                // set use20columns
                                mlsUse20Columns();

                                // set misc property
                                mlsSetMiscProperty("HourlyDetail", 0);
                                mlsSetMiscProperty("MinuteDetail", 0);
                                mlsSetMiscProperty("ShowPageNumber", 0);
                                mlsSetMiscProperty("ShowCurrentDate", 0);
                                mlsSetMiscProperty("ShowDurationAndPercentDecimal", 1);
                                mlsSetMiscProperty("UseEarnedValueMethodForPercentOnSummaryLines", 1);
                                mlsSetMiscProperty("OneLineLegendInDataGraph", 1);

                                // set the summary bar
                                mlsSetSummaryBarDisplay(2);

                                // set outline level (row, new level)
                                mlsSetOutLineLevel(1,1);
                                mlsSetOutLineLevel(2,2);
                                mlsSetOutLineLevel(3,2);
                                mlsSetOutLineLevel(4,2);
                                mlsSetOutLineLevel(5,2);
                                mlsSetOutLineLevel(6,2);
                                mlsSetOutLineLevel(7,2);
                                mlsSetOutLineLevel(8,2);

                                // Add a title
                                mlsSetTitle1(" Performance Review ");

                                // set Title properties
                                mlsSetTitleProperty("BackgroundColor",0);
                                mlsSetTitleProperty("Align",0);
                                mlsSetTitleProperty("Line1TextColor",11);
                                mlsSetTitleProperty("FullWidthBackground",0);

                                // set symbol "fill to status"
                                mlsSetSymbolFillToStatus("on");

                                // set connector "fill to status"
                                mlsSetConnectorFillToStatus("on");

                                // set toolbox vertical connector property
                                mlsSetToolboxVerticalConnectorProperty(1,"RoundedCorners","On");

                                // set property for a date heading
                                mlsSetDateHeadingProperty(1,"HeadingBackGroundColor",8);
                                mlsSetDateHeadingProperty(2,"HeadingBackGroundColor",0);

                                // set an End Date and start date
                                mlsSetStartAndEndDates("03/01/02","05/31/2002");

                                // set current date
                                mlsSetCurrentDate("04/11/2002");

                                // set a date heading
                                mlsSetDateHeading(1, "Yearly",1);
                                mlsSetDateHeading(2, "Monthly",1);

                                // set font style (area, new style, size, color
                                mlsSetFontStyle(3,1,16,11);
                                mlsSetFontStyle(6,1,11,0);
                                mlsSetFontStyle(7,1,11,18);
                                mlsSetFontStyle(12,1,11,0);
                                mlsSetFontStyle(17,1,10,0);
                                mlsSetFontStyle(18,1,10,0);
                                mlsSetFontStyle(19,1,10,0);
                                mlsSetFontStyle(20,1,10,0);
                                mlsSetFontStyle(21,1,10,0);
                                mlsSetFontStyle(29,1,10,0);
                                mlsSetFontStyle(30,1,10,0);
                                mlsSetFontStyle(31,1,10,0);
                                mlsSetFontStyle(32,1,10,0);

                                // sets column property
                                mlsSetColumnProperty(1,"Indent",".2");
                                mlsSetColumnProperty(1,"ColumnHeadingLine1","Project/");
                                mlsSetColumnProperty(1,"ColumnHeadingLine2","Tasks");
                                mlsSetColumnProperty(11,"ColumnHeadingLine1","Total");
                                mlsSetColumnProperty(11,"ColumnHeadingLine2","Budget");
                                mlsSetColumnProperty(12,"ColumnHeadingLine1","BCWS");
                                mlsSetColumnProperty(13,"ColumnHeadingLine1","AWCP");
                                mlsSetColumnProperty(13,"ColumnHeadingLine2","Spending");
                                mlsSetColumnProperty(14,"ColumnHeadingLine1","BCWP");
                                mlsSetColumnProperty(14,"ColumnHeadingLine2","E Value");
                                mlsSetColumnProperty(15,"ColumnHeadingLine1","PRCNT");
                                mlsSetColumnProperty(15,"ColumnHeadingLine2","CMPLT");
                                mlsSetColumnProperty(16,"ColumnHeadingLine1","SV");
                                mlsSetColumnProperty(17,"ColumnHeadingLine1","CV");
                                mlsSetColumnProperty(18,"ColumnHeadingLine1","CPI");
                                mlsSetColumnProperty(19,"ColumnHeadingLine1","SPI");
                                mlsSetColumnProperty(1,"HeadingBackgroundColor","8");
                                mlsSetColumnProperty(11,"HeadingBackgroundColor","10");
                                mlsSetColumnProperty(12,"HeadingBackgroundColor","6");
                                mlsSetColumnProperty(13,"HeadingBackgroundColor","13");
                                mlsSetColumnProperty(14,"HeadingBackgroundColor","3");
                                mlsSetColumnProperty(15,"HeadingBackgroundColor","8");
                                mlsSetColumnProperty(16,"HeadingBackgroundColor","11");
                                mlsSetColumnProperty(17,"HeadingBackgroundColor","11");
                                mlsSetColumnProperty(18,"HeadingBackgroundColor","11");
                                mlsSetColumnProperty(19,"HeadingBackgroundColor","11");
                                mlsSetColumnProperty(1,"SmartColumn","None");
                                mlsSetColumnProperty(11,"SmartColumn","Values");
                                mlsSetColumnProperty(12,"SmartColumn","Calculation");
                                mlsSetColumnProperty(13,"SmartColumn","Values");
                                mlsSetColumnProperty(14,"SmartColumn","Calculation");
                                mlsSetColumnProperty(15,"SmartColumn","PercentComplete");
                                mlsSetColumnProperty(16,"SmartColumn","Calculation");
                                mlsSetColumnProperty(17,"SmartColumn","Calculation");
                                mlsSetColumnProperty(18,"SmartColumn","Calculation");
                                mlsSetColumnProperty(19,"SmartColumn","Calculation");
                                mlsSetColumnProperty(2,"Hidden","Yes");
                                mlsSetColumnProperty(3,"Hidden","Yes");
                                mlsSetColumnProperty(4,"Hidden","Yes");
                                mlsSetColumnProperty(5,"Hidden","Yes");
                                mlsSetColumnProperty(6,"Hidden","Yes");
                                mlsSetColumnProperty(7,"Hidden","Yes");
                                mlsSetColumnProperty(8,"Hidden","Yes");
                                mlsSetColumnProperty(9,"Hidden","Yes");
                                mlsSetColumnProperty(10,"Hidden","Yes");
                                mlsSetColumnProperty(11,"Hidden","No");
                                mlsSetColumnProperty(12,"Hidden","No");
                                mlsSetColumnProperty(13,"Hidden","No");
                                mlsSetColumnProperty(14,"Hidden","No");
                                mlsSetColumnProperty(1,"FontSize","8");
                                mlsSetColumnProperty(11,"FontSize","8");
                                mlsSetColumnProperty(12,"FontSize","8");
                                mlsSetColumnProperty(13,"FontSize","8");
                                mlsSetColumnProperty(14,"FontSize","8");
                                mlsSetColumnProperty(15,"FontSize","8");
                                mlsSetColumnProperty(16,"FontSize","8");
                                mlsSetColumnProperty(17,"FontSize","8");
                                mlsSetColumnProperty(18,"FontSize","8");
                                mlsSetColumnProperty(19,"FontSize","8");
                                mlsSetColumnProperty(1,"TextAlign","0");
                                mlsSetColumnProperty(2,"TextAlign","2");
                                mlsSetColumnProperty(11,"TextAlign","2");
                                mlsSetColumnProperty(12,"TextAlign","2");
                                mlsSetColumnProperty(13,"TextAlign","2");
                                mlsSetColumnProperty(14,"TextAlign","2");
                                mlsSetColumnProperty(15,"TextAlign","2");
                                mlsSetColumnProperty(16,"TextAlign","2");
                                mlsSetColumnProperty(17,"TextAlign","2");
                                mlsSetColumnProperty(18,"TextAlign","2");
                                mlsSetColumnProperty(19,"TextAlign","2");
                                mlsSetColumnProperty(11,"DisplayColumnAsCurrency","1");
                                mlsSetColumnProperty(12,"DisplayColumnAsCurrency","1");
                                mlsSetColumnProperty(13,"DisplayColumnAsCurrency","1");
                                mlsSetColumnProperty(14,"DisplayColumnAsCurrency","1");
                                mlsSetColumnProperty(16,"DisplayColumnAsCurrency","1");
                                mlsSetColumnProperty(17,"DisplayColumnAsCurrency","1");

                                // set column width
                                mlsSetColumnWidth(1,.95);
                                mlsSetColumnWidth(11,.65);
                                mlsSetColumnWidth(12,.65);
                                mlsSetColumnWidth(13,.65);
                                mlsSetColumnWidth(14,.65);
                                mlsSetColumnWidth(15,.65);
                                mlsSetColumnWidth(16,.65);
                                mlsSetColumnWidth(17,.6);
                                mlsSetColumnWidth(18,.55);
                                mlsSetColumnWidth(19,.55);

                                // set task shade
                                mlsSetTaskLineShade(1,0,15);
                                mlsSetTaskLineShade(1,1,15);
                                mlsSetTaskLineShade(1,2,15);
                                mlsSetTaskLineShade(2,0,0);
                                mlsSetTaskLineShade(2,1,0);
                                mlsSetTaskLineShade(2,2,0);
                                mlsSetTaskLineShade(3,0,0);
                                mlsSetTaskLineShade(3,1,0);
                                mlsSetTaskLineShade(3,2,0);
                                mlsSetTaskLineShade(4,0,0);
                                mlsSetTaskLineShade(4,1,0);
                                mlsSetTaskLineShade(4,2,0);
                                mlsSetTaskLineShade(5,0,0);
                                mlsSetTaskLineShade(5,1,0);
                                mlsSetTaskLineShade(5,2,0);
                                mlsSetTaskLineShade(6,0,0);
                                mlsSetTaskLineShade(6,1,0);
                                mlsSetTaskLineShade(6,2,0);
                                mlsSetTaskLineShade(7,0,0);
                                mlsSetTaskLineShade(7,1,0);
                                mlsSetTaskLineShade(7,2,0);
                                mlsSetTaskLineShade(8,0,0);
                                mlsSetTaskLineShade(8,1,0);
                                mlsSetTaskLineShade(8,2,0);

                                // set task line shade effects
                                mlsSetTaskLineShadeEffects(1,0,0,3);
                                mlsSetTaskLineShadeEffects(1,1,0,3);
                                mlsSetTaskLineShadeEffects(1,2,0,3);
                                mlsSetTaskLineShadeEffects(2,0,13,5);
                                mlsSetTaskLineShadeEffects(2,1,0,0);
                                mlsSetTaskLineShadeEffects(2,2,0,0);
                                mlsSetTaskLineShadeEffects(3,0,13,5);
                                mlsSetTaskLineShadeEffects(3,1,0,0);
                                mlsSetTaskLineShadeEffects(3,2,0,0);
                                mlsSetTaskLineShadeEffects(4,0,6,5);
                                mlsSetTaskLineShadeEffects(4,1,0,0);
                                mlsSetTaskLineShadeEffects(4,2,0,0);
                                mlsSetTaskLineShadeEffects(5,0,6,5);
                                mlsSetTaskLineShadeEffects(5,1,0,0);
                                mlsSetTaskLineShadeEffects(5,2,0,0);
                                mlsSetTaskLineShadeEffects(6,0,6,5);
                                mlsSetTaskLineShadeEffects(6,1,0,0);
                                mlsSetTaskLineShadeEffects(6,2,0,0);
                                mlsSetTaskLineShadeEffects(7,0,6,5);
                                mlsSetTaskLineShadeEffects(7,1,0,0);
                                mlsSetTaskLineShadeEffects(7,2,0,0);
                                mlsSetTaskLineShadeEffects(8,0,6,5);
                                mlsSetTaskLineShadeEffects(8,1,0,0);
                                mlsSetTaskLineShadeEffects(8,2,0,0);

                                // Put a Cell
                                mlsPutCell(1,1,"Project ABC");
                                mlsPutCell(2,1,"Task 1");
                                mlsPutCell(3,1,"Task 2");
                                mlsPutCell(4,1,"Task 3");
                                mlsPutCell(5,1,"Task 4");
                                mlsPutCell(6,1,"Task 5");
                                mlsPutCell(7,1,"Task 6");
                                mlsPutCell(8,1,"Task 7");
                                mlsPutCell(1,11,"2,975.50");
                                mlsPutCell(1,13,"1,575.00");
                                mlsPutCell(2,11,"300.00");
                                mlsPutCell(2,13,"350.00");
                                mlsPutCell(3,11,"400.00");
                                mlsPutCell(3,13,"400.00");
                                mlsPutCell(4,11,"250.00");
                                mlsPutCell(4,13,"175.00");
                                mlsPutCell(5,11,"725.00");
                                mlsPutCell(5,13,"200.00");
                                mlsPutCell(6,11,"400.00");
                                mlsPutCell(6,13,"100.00");
                                mlsPutCell(7,11,"350.00");
                                mlsPutCell(7,13,"200.00");
                                mlsPutCell(8,11,"550.00");
                                mlsPutCell(8,13,"150.00");

                                // Delete a task line(row)
                                mlsDeleteTaskLine(9);
                                mlsDeleteTaskLine(10);

                                // setlinesperpage (1-300)
                                mlsSetLinesPerPage(8);

                                // sets height of legend
                                mlsSetLegendHeight(0);

                                // set legend properties
                                mlsSetLegendProperty("Gap","0");
                                mlsSetLegendProperty("Color","7");

                                // Add task using duration
                                mlsAddTaskUsingDuration(2,"03/11/2002",1,0,0,2,15,"Day",0,0,"","","");
                                mlsAddTaskUsingDuration(3,"03/18/2002",1,0,0,2,22,"Day",0,0,"","","");
                                mlsAddTaskUsingDuration(4,"03/20/2002",1,0,0,2,43,"Day",0,0,"","","");
                                mlsAddTaskUsingDuration(5,"03/25/2002",1,0,0,2,27,"Day",0,0,"","","");
                                mlsAddTaskUsingDuration(6,"03/24/2002",1,0,0,2,38,"Day",0,0,"","","");
                                mlsAddTaskUsingDuration(7,"03/27/2002",1,0,0,2,33,"Day",0,0,"","","");
                                mlsAddTaskUsingDuration(8,"04/04/2002",1,0,0,2,36,"Day",0,0,"","","");

                                // Set percent complete (row, %)
                                mlsSetPercentComplete(1,67.4,1);
                                mlsSetPercentComplete(2,100.0,1);
                                mlsSetPercentComplete(3,100.0,1);
                                mlsSetPercentComplete(4,55.8,1);
                                mlsSetPercentComplete(5,77.8,1);
                                mlsSetPercentComplete(6,52.6,1);
                                mlsSetPercentComplete(7,63.6,1);
                                mlsSetPercentComplete(8,30.6,1);

                                // SortSymbols (task row)
                                mlsSortSymbols(1);
                                mlsSortSymbols(2);
                                mlsSortSymbols(3);
                                mlsSortSymbols(4);
                                mlsSortSymbols(5);
                                mlsSortSymbols(6);
                                mlsSortSymbols(7);
                                mlsSortSymbols(8);

                                // sets symbol property
                                mlsSetSymbolProperty(1,1,"SymbolSize","1.2",0);
                                mlsSetSymbolProperty(1,3,"SymbolSize","1.2",0);
                                mlsSetSymbolProperty(2,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(2,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(2,2,"SymbolSize","0.1",0);
                                mlsSetSymbolProperty(3,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(3,2,"SymbolSize","0.1",0);
                                mlsSetSymbolProperty(3,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(4,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(4,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(5,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(5,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(6,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(6,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(7,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(7,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(8,1,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(8,3,"SymbolSize","1.0",0);
                                mlsSetSymbolProperty(1,1,"SymbolDatePosition","4",0);
                                mlsSetSymbolProperty(1,3,"SymbolDatePosition","7",0);
                                mlsSetSymbolProperty(2,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(2,3,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(3,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(3,3,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(4,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(4,3,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(5,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(5,3,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(6,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(6,3,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(7,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(7,3,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(8,1,"SymbolDatePosition","13",0);
                                mlsSetSymbolProperty(8,3,"SymbolDatePosition","13",0);

                                // set toolbox symbol property
                                mlsSetToolboxSymbolProperty(2,"FillColor","11");
                                mlsSetToolboxSymbolProperty(2,"FillColorAfterStatus","6");
                                mlsSetToolboxSymbolProperty(32,"Type","12");

                                // set toolbox horizontal connector property
                                mlsSetToolboxHorizontalConnectorProperty(1,"Type","10");
                                mlsSetToolboxHorizontalConnectorProperty(1,"ShadowColor","7");
                                mlsSetToolboxHorizontalConnectorProperty(1,"ShadowSize","2");
                                mlsSetToolboxHorizontalConnectorProperty(1,"ShowShadow","On");
                                mlsSetToolboxHorizontalConnectorProperty(1,"FadeType","3");
                                mlsSetToolboxHorizontalConnectorProperty(1,"FillColor","6");
                                mlsSetToolboxHorizontalConnectorProperty(1,"FillColorTarget","0");
                                mlsSetToolboxHorizontalConnectorProperty(1,"AfterStatusFillColor","11");
                                mlsSetToolboxHorizontalConnectorProperty(1,"AfterStatusFillColorTarget","0");

                                // sets calculation column property
                                mlsSetCalculationColumnProperties(12,"Type","4");
                                mlsSetCalculationColumnProperties(12,"Factor1","11");
                                mlsSetCalculationColumnProperties(12,"DoNotCalculateOnSummaryLine","1");
                                mlsSetCalculationColumnProperties(14,"Type","1");
                                mlsSetCalculationColumnProperties(14,"Factor1","11");
                                mlsSetCalculationColumnProperties(16,"Type","1");
                                mlsSetCalculationColumnProperties(16,"Factor1","14");
                                mlsSetCalculationColumnProperties(16,"Factor2","12");
                                mlsSetCalculationColumnProperties(16,"Operator","2");
                                mlsSetCalculationColumnProperties(17,"Type","1");
                                mlsSetCalculationColumnProperties(17,"Factor1","14");
                                mlsSetCalculationColumnProperties(17,"Factor2","13");
                                mlsSetCalculationColumnProperties(17,"Operator","2");
                                mlsSetCalculationColumnProperties(18,"Type","1");
                                mlsSetCalculationColumnProperties(18,"Factor1","14");
                                mlsSetCalculationColumnProperties(18,"Factor2","13");
                                mlsSetCalculationColumnProperties(18,"Operator","3");
                                mlsSetCalculationColumnProperties(19,"Type","1");
                                mlsSetCalculationColumnProperties(19,"Factor1","14");
                                mlsSetCalculationColumnProperties(19,"Factor2","12");
                                mlsSetCalculationColumnProperties(19,"Operator","3");

                                // set the frame and background options
                                mlsSetFrameAndBackgroundOptions(2,0,18,0,7,2,1,0);

                                // set valueset name
                                mlsSetValueSetName(1, "BCWS");
                                mlsSetValueSetName(2, "BCWP");
                                mlsSetValueSetName(3, "Budget");
                                mlsSetValueSetName(4, "ACWP");

                                // Set value set date alignment
                                mlsSetValueSetDateAlignment("Daily");

                                // sets valueset property
                                mlsSetValueSetProperty("1","Type","3");
                                mlsSetValueSetProperty("1","LineType","4");
                                mlsSetValueSetProperty("1","LineColor","6");
                                mlsSetValueSetProperty("1","Show","GraphCumulativeOn");
                                mlsSetValueSetProperty("1","Show","NumericOff");
                                mlsSetValueSetProperty("1","Type3Column","12");
                                mlsSetValueSetProperty("1","Type3AllocateValuesBeforeCurrentDate","Yes");
                                mlsSetValueSetProperty("2","Type","3");
                                mlsSetValueSetProperty("2","LineType","4");
                                mlsSetValueSetProperty("2","LineColor","3");
                                mlsSetValueSetProperty("2","Show","GraphCumulativeOn");
                                mlsSetValueSetProperty("2","Show","NumericOff");
                                mlsSetValueSetProperty("2","Type3Column","14");
                                mlsSetValueSetProperty("2","Type3AllocateValuesBeforeCurrentDate","Yes");
                                mlsSetValueSetProperty("3","Type","3");
                                mlsSetValueSetProperty("3","LineType","3");
                                mlsSetValueSetProperty("3","LineColor","13");
                                mlsSetValueSetProperty("3","Show","GraphCumulativeOn");
                                mlsSetValueSetProperty("3","Show","NumericOff");
                                mlsSetValueSetProperty("3","Type3Column","11");
                                mlsSetValueSetProperty("4","Type","3");
                                mlsSetValueSetProperty("4","LineType","4");
                                mlsSetValueSetProperty("4","LineColor","13");
                                mlsSetValueSetProperty("4","Show","GraphCumulativeOn");
                                mlsSetValueSetProperty("4","Show","NumericOff");
                                mlsSetValueSetProperty("4","Type3Column","13");
                                mlsSetValueSetProperty("4","Type3AllocateValuesBeforeCurrentDate","Yes");

                                // sets datagraph property
                                mlsSetDataGraphProperty(1,"ShowGraph","On");
                                mlsSetDataGraphProperty(1,"PlotInScheduleArea","On");
                                mlsSetDataGraphProperty(1,"LowY","0.00");
                                mlsSetDataGraphProperty(1,"HighY","3000.00");
                                mlsSetDataGraphProperty(1,"IncY","500.00");
                                mlsSetDataGraphProperty(1,"LineBar","Line");
                                mlsSetDataGraphProperty(1,"Height","1");
                                mlsSetDataGraphProperty(1,"LineType","4");
                                mlsSetDataGraphProperty(1,"BackgroundColor","8");
                                mlsSetDataGraphProperty(1,"FadeType","5");
                                mlsSetDataGraphProperty(1,"IncludeValueSet","1");
                                mlsSetDataGraphProperty(1,"IncludeValueSet","2");
                                mlsSetDataGraphProperty(1,"IncludeValueSet","3");
                                mlsSetDataGraphProperty(1,"IncludeValueSet","4");

                                // set a holiday
                                mlsSetHolidayCalendar("ADD", "11/16/02");

                                // Add Block of Free Text
                                mlsAddFreeText("Budget", 4.0, 2.3);

                                // sets freetext property
                                mlsSetFreeTextProperty(1,"TextHeight","10");
                                mlsSetFreeTextProperty(1,"Border","1");
                                mlsSetFreeTextProperty(1,"BackGroundColor","0");
                                mlsSetFreeTextProperty(1,"Bold","1");

                                // copy a meta file to the clipboard
                                mlsCopyMetaFileToClipboard();
                                InvalidateRect(hWnd,NULL,TRUE);












                                // get outline level of a row
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetOutlineLevel(&nReturnValue,1);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Outline level of the row you selected:",MB_OK);

                                // get global value set value
                                // double dblReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetGlobalValueSetValue(&dblReturnValue,"name", "3/2/01");
                                // wsprintf(szLines,"%0.2f",dblReturnValue);
                                // MessageBox(hWnd,szLines,"Value set value:",MB_OK);

                                // get taskline valueset value
                                // double dblReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetTaskLineValueSetValue(&dblReturnValue,1,"name", "3/2/01");
                                // wsprintf(szLines,"%0.2f",dblReturnValue);
                                // MessageBox(hWnd,szLines,"task line Valueset value:",MB_OK);

                                // get percent complete (task line)
                                // double dblReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetPercentComplete(&dblReturnValue,1);
                                // sprintf(szLines,"%0.2f",dblReturnValue);
                                // MessageBox(hWnd,szLines,"percent complete:",MB_OK);

                                // get schedule height
                                // double dblReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetScheduleHeight(&dblReturnValue);
                                // sprintf(szLines,"%0.2f",dblReturnValue);
                                // MessageBox(hWnd,szLines,"schedule height:",MB_OK);

                                // get selected symbol of a line (0 for none, -1 for multiple)
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetSelectedSymbolInLine(&nReturnValue,1);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Symbol selected is:",MB_OK);

                                // Apply a Color Theme
                                // mlsApplyColorTheme("Purdue","True");

                                // Add Symbols
                                // mlsAddSymbol(1,"02/01/2001",5,0,0,0,0,0,0,0,"this is a tag","helllooo again","WHAT","text");
                                // mlsAddSymbol(1,"03/30/2001",5,0,0,0,0,0,0,0,"this is","er","another","symbol");

                                // Put a Cell Tag
                                // mlsPutCellTag(1, 3, "this is a tag");

                                // set calendar view, on/off, taskline (0 for all)
                                // mlsSetCalendarView("on", 0);

                                // select a symbol on the gui (taskline, symbol)
                                // mlsSelectSymbolInLine(1,2);

                                // set outlinelevelattribute
                                // mlsSetOutLineLevelAttribute(1,"BoldItalic",1);

                                // filter the task lines
                                // mlsFilterTaskLines(0,"OR","","OR","","OR","","OR","","OR","","OR","","OR","","OR","");

                                // set autosave on/off
                                // mlsSetAutoSave("off");

                                // Get cell text (row, column)
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetCellText(szText,1,3);
                                // MessageBox(hWnd,szText,"Cell text:",MB_OK);

                                // Get milestones system folder
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetMilestonesSystemFolder(szText);
                                // MessageBox(hWnd,szText,"Full path of Milestones System Folder:",MB_OK);

                                // Get tag (row, column)
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetCellTag(szText,1,3);
                                // MessageBox(hWnd,szText,"Cell tag:",MB_OK);

                                // Get first weekly valueset date
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetFirstWeeklyValueSetDate(szText);
                                // MessageBox(hWnd,szText,"First weekly valueset:",MB_OK);

                                // Get valueset date alignment
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetValueSetDateAlignment(szText);
                                // MessageBox(hWnd,szText,"Valuesets are aligned:",MB_OK);

                                // Get current date
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetCurrentDate(szText);
                                // MessageBox(hWnd,szText,"Current date:",MB_OK);

                                // check if user hit escape key
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsCheckForEscapeKey(szText);
                                // MessageBox(hWnd,szText,"user hit escape key:",MB_OK);

                                // get currency symbol
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetCurrencySymbol(szText);
                                // MessageBox(hWnd,szText,"User's Currency Symbol:",MB_OK);

                                // Get symbol property
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetSymbolProperty(szText,1,1,"SymbolHour", 0);
                                // MessageBox(hWnd,szText,"symbol property",MB_OK);

                                // Get misc. property
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetMiscProperty(szText,"Symbol Size");
                                // MessageBox(hWnd,szText,"Misc. Property:",MB_OK);

                                // Get freetext property
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetFreeTextProperty(szText,1,"XPos");
                                // MessageBox(hWnd,szText,"freetext property",MB_OK);

                                // Get legend property
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetLegendProperty(szText,1,"TextHeight");
                                // MessageBox(hWnd,szText,"Legend property:",MB_OK);

                                // Get datagraph property
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetDataGraphProperty(szText,1,"Height");
                                // MessageBox(hWnd,szText,"Datagraph property:",MB_OK);

                                // Get toolbox symbol property
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetToolboxSymbolProperty(szText,1,"Shape",1);
                                // MessageBox(hWnd,szText,"ToolboxSymbolProperty:",MB_OK);

                                // Get columnProperty
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetColumnProperty(szText,1,"Width");
                                // MessageBox(hWnd,szText,"Column Property:",MB_OK);

                                // get title 3
                                // char szText[600];
                                // ZeroMemory(szText,600);
                                // mlsGetTitle3(szText);
                                // MessageBox(hWnd,szText,"Title1:",MB_OK);

                                // roll up the task lines
                                // mlsRollUpTaskLines(1);

                                // use 20 columns
                                // mlsUse20Columns();

                                // copy a meta file to the clipboard
                                // mlsCopyMetaFileToClipboard();

                                // copy file to FTP - not supported
                                //

                                // display msg box
                                // mlsDisplayMessageBox("Press OK if you would like to press OK.");

                                // set start and end times for work days
                                // mlsSetWorkdayStartEndTimes(8,30,12,00,13,00,17,50);

                                // delete the current page
                                // mlsDeleteCurrentPage();

                                // set symbol date format
                                // mlsSetSymbolDateFormat(1,0,1,11);

                                // set schedule gridlines and shades
                                // mlsSetScheduleGridlinesAndShades(1,16,3,12,13,4,0);

                                // set task line font style
                                // mlsSetTaskLineFontStyle(1,6);

                                // set task line font height
                                // mlsSetTaskLineFontHeight(1,33);

                                // toggle Continuous view
                                // mlsToggleContinuousView();

                                // set task line grid
                                // mlsSetTaskLineGrid(1,0,16,3);

                                // set task line height
                                // mlsSetTaskLineHeight(1,4.4);

                                // Toolbar on/off
                                // mlsToolbar("off");

                                // clear value set (name)
                                // mlsClearValueSet("off");

                                // set hide base line summary bar on/off
                                // mlsSetHideBaseLineSummaryBar("off");

                                // clear value set (number)
                                // mlsClearValueSetByNumber(1);

                                // Toolbox on/off
                                // mlsToolbox("off");

                                // get number of lines per page
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetLinesPerPage(&nReturnValue);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"title",MB_OK);

                                // get number of lines per page
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetOutlineLevelAttribute(&nReturnValue,1,"FontSize");
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Outline level attribute:",MB_OK);

                                // get current page
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetCurrentPage(&nReturnValue);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Current Page:",MB_OK);

                                // get number of free text blocks used
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetNumberOfFreeTextBlocksUsed(&nReturnValue);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Number of Free Text Blocks Used:",MB_OK);

                                // get number of pages in schedule
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetNumberOfPages(&nReturnValue);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Number of pages:",MB_OK);

                                // get milestones date format
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetMilestonesDateFormat(&nReturnValue);
                                // sprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"Milestones date format:",MB_OK);

                                // is user using metric (0 for english, 1 for metric
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetMetric(&nReturnValue);
                                // sprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"User using metric? (0 for english, 1 for metric)",MB_OK);

                                // get number of lines
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetNumberOfLines(&nReturnValue);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"title",MB_OK);

                                // get task line of selected symbol (0 if no symbols selected, -1 if more than 1)
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetTaskLineOfSelectedSymbol(&nReturnValue);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"TaskLine of selected symbol:",MB_OK);

                                // get number of symbols in a line
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetNumberOfSymbolsInLine(&nReturnValue,1);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"number of symbols in this line:",MB_OK);

                                // get symbol number with the tag
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetSymbolNumberOfSymbolTag(&nReturnValue,"this is a tag");
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"the symbol number that had the tag:",MB_OK);

                                // get line of symbol with tag
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetLineOfSymbolTag(&nReturnValue,"this is a tag");
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"the line that had the tag:",MB_OK);

                                // get font size
                                // int nReturnValue;
                                // char szLines[50];
                                // ZeroMemory(szLines,50);
                                // mlsGetFontSize(&nReturnValue,1);
                                // wsprintf(szLines,"%d",nReturnValue);
                                // MessageBox(hWnd,szLines,"title",MB_OK);

                                // set page size
                                // mlsSetPageSize(84.2,44.1);

                                // attempts to keep schedule open
                                // mlsMaximizeWindow();

                                // sets page start end date
                                // mlsSetPageStartEndDates(1,"3/20/2002","6/20/2006");

                                // maximize the window
                                // mlsKeepScheduleOpen();

                                // set global symbol size
                                // mlsSetGlobalSymbolSize(5);

                                // set global valueset value
                                // mlsSetGlobalValueSetValue("valuename", "3/2/01", 3.2);

                                // set global valueset value
                                // mlsSetTaskLineValueSetValue(1, "valuename", "3/2/01", 3.2);

                                // Set a Template
                                // mlsTemplate("C:\\Program Files\\KIDASA\\Milestones\\StandardTemplates\\Timelines/One Week Timeline.MTP");

                                // save the file
                                // mlsSave("C:\\Program Files\\KIDASA\\Milestones/filetest.ml7");

                                // save a bitmap/jpeg/gif screenshot of the window
                                // mlsSaveBitmap("C:\\Program Files\\KIDASA\\Milestones/filetest.bmp");

                                // Set message for status bar
                                // mlsSetStatusMessage("Milestones version INFINITY");

                                // Set custom color
                                // mlsSetCustomColor(1,200,0,0);

                                // Add a Title2
                                // mlsSetTitle2("Other Title?");

                                // Add a Title
                                // mlsSetTitle3("My last title");

                                // Add a Start Date
                                // mlsSetStartDate("03/05/01");

                                // Reset escape key to "false"
                                // mlsResetEscapeKey();

                                // when program is closed, "off" will not display save dialogue
                                // mlsCheckForDiskFileSave("off");

                                // refresh a certain task
                                // mlsRefreshTask(1);

                                // Set percent complete (row, %)
                                // mlsAddCurtain("03/05/01","05/10/01");

                                // set the properties of a curtain
                            // mlsSetCurtainProperties(1,"3/10/01","4/20/01",16,18,8,1);

                                // Set the legend text
                                // mlsSetLegendText(1, "legend text line 1","and line 2");

                                // Add Toolbox properties
                                // mlsSetToolboxProperty("ShowDrawingTools",1);

                                // Delete a symbol (task row, symbol number)
                                // mlsDeleteSymbol(1,2);

                                // set the legend symbology
                                // mlsSetLegendSymbology(1,5,2,5);

                                // set the current page
                                // mlsSetCurrentPage(2);

                                // ConvertUserHeadToEmbedded
                                // mlsConvertUserHeadToEmbedded(2);

                                // Put a Cell
                                // mlsPutCell(2, 3, "Cell text");

                                // set automation dependency on
                                // mlsSetAutomationDependencyMode("on");

                                // Print (first page, last page)
                                // mlsPrint(1,2);

                                // set internet options before publishing
                                // mlsSetInternetPublishingOptions(8,"This is An ALTERNATE title!",1,0,0,0,"G",70,1,0,0,0,0,1.0,0,0);

                                // Set font size (type, new size)
                                // mlsSetFontSize(3,10);

                                // save an HTML of the file
                                // mlsSaveHTML("C:\\Program Files\\KIDASA\\Milestones\\filetest.htm");

                                // save an HTML DRILL DOWN
                                // mlsSaveHTMLDrillDown("C:\\Program Files\\KIDASA\\Milestones\\filetest.htm");

                                // set displayed start time / end time
                                // mlsSetDisplayedStartEndTimes(01,30,04,50);

                                // set show links
                                // mlsSetShowLinks("off");

                                // Redraw the Milestones Window
                                mlsRefresh();

                                // Close Current Schedule - string is to ask for save or not ("NoSave" means it closes with no asking)
                                // anything else means it asks for a save (unless theres nothing at all, then it doesnt work)
                                // mlsClose("NoSave");

                                }
                        break;



                        default:
                                {
                                return DefWindowProc(hWnd, message, wParam, lParam);
                                }
                        break;
                        }
                }
        break;

        case WM_PAINT:
                {
                hdc = BeginPaint(hWnd, &ps);
                // TODO: Add any drawing code here...
                RECT rt;
                GetClientRect(hWnd, &rt);
                DisplayClipboardMetafile(hdc, hWnd);


                EndPaint(hWnd, &ps);
                }
        break;

        case WM_DESTROY:
                {
                PostQuitMessage(0);
                }
        break;

        default:
                {
                return DefWindowProc(hWnd, message, wParam, lParam);
                }
        break;
        }
return 0;
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
        {
        case WM_INITDIALOG:
                {
                return TRUE;
                }
        break;

        case WM_COMMAND:
                {
                if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
                        {
                        EndDialog(hDlg, LOWORD(wParam));
                        return TRUE;
                        }
                }
        break;
        }
return FALSE;
}


/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////BEGIN FUNCTIONS/////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////





































































HRESULT mlsActivate(void)
{
HRESULT hresult;

// Encode name of automation method
OLECHAR FAR* szMemberActivate = OLESTR("Activate");

DISPID dispidActivate;

DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szMemberActivate, 1,LOCALE_USER_DEFAULT, &dispidActivate);

// Activate

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidActivate,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsNoArgs, NULL, NULL, NULL);

return hresult;
}







HRESULT mlsAddCurtain(LPSTR szString1, LPSTR szString2)
{
HRESULT hresult;

OLECHAR FAR* szMemberAddCurtain = OLESTR("AddCurtain");

DISPID dispidAddCurtain;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szMemberAddCurtain, 1,LOCALE_USER_DEFAULT, &dispidAddCurtain);


dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;


// first for loop
OLECHAR pwcsText1[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText1[nloop]=0;
mbstowcs(pwcsText1, szString1, lstrlen(szString1));
BSTR bstrString1=NULL;
bstrString1=SysAllocString(pwcsText1);
rgvArgs[1].bstrVal=bstrString1;


// second for loop
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szString2, lstrlen(szString2));
BSTR bstrString2=NULL;
bstrString2=SysAllocString(pwcsText2);
rgvArgs[0].bstrVal=bstrString2;

hresult = pdisp->Invoke(dispidAddCurtain,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString1);
SysFreeString(bstrString2);

return hresult;
}










HRESULT mlsAddFreeText(LPSTR szText, double dbValue1, double dbValue2)
{
HRESULT hresult;

OLECHAR FAR* szAddFreeText = OLESTR("AddFreeText");

DISPID dispidAddFreeText;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szAddFreeText, 1,LOCALE_USER_DEFAULT, &dispidAddFreeText);

dispparamsArgs.cArgs = 3;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[2]);
rgvArgs[2].vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_R8;
rgvArgs[1].dblVal=dbValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_R8;
rgvArgs[0].dblVal=dbValue2;

OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szText, lstrlen(szText));
BSTR bstrText=NULL;
bstrText=SysAllocString(pwcsText);
rgvArgs[2].bstrVal=bstrText;

hresult = pdisp->Invoke(dispidAddFreeText,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrText);

return hresult;
}







HRESULT mlsAddSymbol(int nLine, LPSTR szDate, int nValue1, int nValue2, int nValue3, int nValue4, int nValue5, int nValue6, int nValue7, int nValue8,LPSTR szText1,LPSTR szText2,LPSTR szText3, LPSTR szText4)
{
HRESULT hresult;

OLECHAR FAR* szMemberAddSymbol = OLESTR("AddSymbol");

DISPID dispidAddSymbol;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szMemberAddSymbol, 1,LOCALE_USER_DEFAULT, &dispidAddSymbol);

dispparamsArgs.cArgs = 14;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[13]);
rgvArgs[13].vt = VT_I4;
rgvArgs[13].lVal=nLine;

VariantInit(&rgvArgs[12]);
rgvArgs[12].vt = VT_BSTR;

VariantInit(&rgvArgs[11]);
rgvArgs[11].vt = VT_I4;
rgvArgs[11].lVal=nValue1;

VariantInit(&rgvArgs[10]);
rgvArgs[10].vt = VT_I4;
rgvArgs[10].lVal=nValue2;

VariantInit(&rgvArgs[9]);
rgvArgs[9].vt = VT_I4;
rgvArgs[9].lVal=nValue3;

VariantInit(&rgvArgs[8]);
rgvArgs[8].vt = VT_I4;
rgvArgs[8].lVal=nValue4;

VariantInit(&rgvArgs[7]);
rgvArgs[7].vt = VT_I4;
rgvArgs[7].lVal=nValue5;

VariantInit(&rgvArgs[6]);
rgvArgs[6].vt = VT_I4;
rgvArgs[6].lVal=nValue6;

VariantInit(&rgvArgs[5]);
rgvArgs[5].vt = VT_I4;
rgvArgs[5].lVal=nValue7;

VariantInit(&rgvArgs[4]);
rgvArgs[4].vt = VT_I4;
rgvArgs[4].lVal=nValue8;

VariantInit(&rgvArgs[3]);
rgvArgs[3].vt = VT_BSTR;

VariantInit(&rgvArgs[2]);
rgvArgs[2].vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

////////////////////////////////
OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szDate, lstrlen(szDate));
BSTR bstrDate=NULL;
bstrDate=SysAllocString(pwcsText);
rgvArgs[12].bstrVal=bstrDate;
//////////////////////////////////

////////////////////////////////
OLECHAR pwcsText1[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText1[nloop]=0;
mbstowcs(pwcsText1, szText1, lstrlen(szText1));
BSTR bstrText1=NULL;
bstrText1=SysAllocString(pwcsText1);
rgvArgs[3].bstrVal=bstrText1;
//////////////////////////////////

////////////////////////////////
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szText2, lstrlen(szText2));
BSTR bstrText2=NULL;
bstrText2=SysAllocString(pwcsText2);
rgvArgs[2].bstrVal=bstrText2;
//////////////////////////////////

////////////////////////////////
OLECHAR pwcsText3[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText3[nloop]=0;
mbstowcs(pwcsText3, szText3, lstrlen(szText3));
BSTR bstrText3=NULL;
bstrText3=SysAllocString(pwcsText3);
rgvArgs[1].bstrVal=bstrText3;
//////////////////////////////////

////////////////////////////////
OLECHAR pwcsText4[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText4[nloop]=0;
mbstowcs(pwcsText4, szText4, lstrlen(szText4));
BSTR bstrText4=NULL;
bstrText4=SysAllocString(pwcsText4);
rgvArgs[0].bstrVal=bstrText4;
//////////////////////////////////

hresult = pdisp->Invoke(dispidAddSymbol,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrDate);
SysFreeString(bstrText1);
SysFreeString(bstrText2);
SysFreeString(bstrText3);
SysFreeString(bstrText4);

return hresult;
}












HRESULT mlsAddTaskUsingDuration(int nValue1, LPSTR szLineOne, int nValue2,int nValue3,int nValue4,int nValue5,int nValue6, LPSTR szLineTwo, int nValue7, int nValue8, LPSTR szLineThree, LPSTR szLineFour, LPSTR szLineFive)
{
HRESULT hresult;

OLECHAR FAR* szAddTaskUsingDuration = OLESTR("AddTaskUsingDuration");

DISPID dispidAddTaskUsingDuration;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szAddTaskUsingDuration, 1,LOCALE_USER_DEFAULT, &dispidAddTaskUsingDuration);

dispparamsArgs.cArgs = 13;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[12]);
rgvArgs[12].vt = VT_I4;
rgvArgs[12].lVal=nValue1;

VariantInit(&rgvArgs[11]);
rgvArgs[11].vt = VT_BSTR;

VariantInit(&rgvArgs[10]);
rgvArgs[10].vt = VT_I4;
rgvArgs[10].lVal=nValue2;

VariantInit(&rgvArgs[9]);
rgvArgs[9].vt = VT_I4;
rgvArgs[9].lVal=nValue3;

VariantInit(&rgvArgs[8]);
rgvArgs[8].vt = VT_I4;
rgvArgs[8].lVal=nValue4;

VariantInit(&rgvArgs[7]);
rgvArgs[7].vt = VT_I4;
rgvArgs[7].lVal=nValue5;

VariantInit(&rgvArgs[6]);
rgvArgs[6].vt = VT_I4;
rgvArgs[6].lVal=nValue6;

VariantInit(&rgvArgs[5]);
rgvArgs[5].vt = VT_BSTR;

VariantInit(&rgvArgs[4]);
rgvArgs[4].vt = VT_I4;
rgvArgs[4].lVal=nValue7;

VariantInit(&rgvArgs[3]);
rgvArgs[3].vt = VT_I4;
rgvArgs[3].lVal=nValue8;

VariantInit(&rgvArgs[2]);
rgvArgs[2].vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

// first for loop
OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrString=NULL;
bstrString=SysAllocString(pwcsText);
rgvArgs[11].bstrVal=bstrString;

// second for loop
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szLineTwo, lstrlen(szLineTwo));
BSTR bstrString2=NULL;
bstrString2=SysAllocString(pwcsText2);
rgvArgs[5].bstrVal=bstrString2;

// third for loop
OLECHAR pwcsText3[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText3[nloop]=0;
mbstowcs(pwcsText3, szLineThree, lstrlen(szLineThree));
BSTR bstrString3=NULL;
bstrString3=SysAllocString(pwcsText3);
rgvArgs[2].bstrVal=bstrString3;

// fourth for loop
OLECHAR pwcsText4[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText4[nloop]=0;
mbstowcs(pwcsText4, szLineFour, lstrlen(szLineFour));
BSTR bstrString4=NULL;
bstrString4=SysAllocString(pwcsText4);
rgvArgs[1].bstrVal=bstrString4;

// fifth for loop
OLECHAR pwcsText5[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText5[nloop]=0;
mbstowcs(pwcsText5, szLineFive, lstrlen(szLineFive));
BSTR bstrString5=NULL;
bstrString5=SysAllocString(pwcsText5);
rgvArgs[0].bstrVal=bstrString5;

hresult = pdisp->Invoke(dispidAddTaskUsingDuration,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString);
SysFreeString(bstrString2);
SysFreeString(bstrString3);
SysFreeString(bstrString4);
SysFreeString(bstrString5);

return hresult;
}














HRESULT mlsApplyColorTheme(LPSTR szTheme, LPSTR szTrueFalse)
{
HRESULT hresult;

OLECHAR FAR* szMemberApplyColorTheme = OLESTR("ApplyColorTheme");

DISPID dispidApplyColorTheme;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szMemberApplyColorTheme, 1,LOCALE_USER_DEFAULT, &dispidApplyColorTheme);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

// first for loop
OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szTheme, lstrlen(szTheme));
BSTR bstrString=NULL;
bstrString=SysAllocString(pwcsText);
rgvArgs[1].bstrVal=bstrString;

// second for loop
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szTrueFalse, lstrlen(szTrueFalse));
BSTR bstrString2=NULL;
bstrString2=SysAllocString(pwcsText2);
rgvArgs[0].bstrVal=bstrString2;

hresult = pdisp->Invoke(dispidApplyColorTheme,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString);
SysFreeString(bstrString2);

return hresult;
}











HRESULT mlsCheckForDiskFileSave(LPSTR szAskForSave)
{
HRESULT hresult;

OLECHAR FAR* szMemberCheckForDiskFileSave = OLESTR("CheckForDiskFileSave");

DISPID dispidCheckForDiskFileSave;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szMemberCheckForDiskFileSave, 1,LOCALE_USER_DEFAULT, &dispidCheckForDiskFileSave);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;

mbstowcs(pwcsText, szAskForSave, lstrlen(szAskForSave));

BSTR bstrString=NULL;

bstrString=SysAllocString(pwcsText);

rgvArgs[0].bstrVal=bstrString;

hresult = pdisp->Invoke(dispidCheckForDiskFileSave,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString);

return hresult;
}









HRESULT mlsCheckForEscapeKey(LPSTR szReturnString)
{
HRESULT hresult;

OLECHAR FAR* szCheckForEscapeKey = OLESTR("CheckForEscapeKey");

DISPID dispidCheckForEscapeKey;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szCheckForEscapeKey, 1,LOCALE_USER_DEFAULT, &dispidCheckForEscapeKey);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

hresult = pdisp->Invoke(dispidCheckForEscapeKey,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

CopyBSTRToString(szReturnString,vRetVal.bstrVal,599);

return hresult;
}










HRESULT mlsClearValueSet(LPSTR szString1)
{
HRESULT hresult;

OLECHAR FAR* szClearValueSet = OLESTR("ClearValueSet");

DISPID dispidClearValueSet;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szClearValueSet, 1,LOCALE_USER_DEFAULT, &dispidClearValueSet);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

// first for loop
OLECHAR pwcsText1[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText1[nloop]=0;
mbstowcs(pwcsText1, szString1, lstrlen(szString1));
BSTR bstrString1=NULL;
bstrString1=SysAllocString(pwcsText1);
rgvArgs[0].bstrVal=bstrString1;

hresult = pdisp->Invoke(dispidClearValueSet,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString1);

return hresult;
}













HRESULT mlsClearValueSetByNumber(int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szClearValueSetByNumber = OLESTR("ClearValueSetByNumber");

DISPID dispidClearValueSetByNumber;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szClearValueSetByNumber, 1,LOCALE_USER_DEFAULT, &dispidClearValueSetByNumber);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidClearValueSetByNumber,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

return hresult;
}












HRESULT mlsClose(LPSTR szAskForSave)
{
HRESULT hresult;

OLECHAR FAR* szMemberClose = OLESTR("Close");

DISPID dispidClose;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szMemberClose, 1,LOCALE_USER_DEFAULT, &dispidClose);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);

rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;

mbstowcs(pwcsText, szAskForSave, lstrlen(szAskForSave));

BSTR bstrString=NULL;

bstrString=SysAllocString(pwcsText);

rgvArgs[0].bstrVal=bstrString;

hresult = pdisp->Invoke(dispidClose,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString);

return hresult;
}









HRESULT mlsConvertUserHeadToEmbedded(int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szConvertUserHeadToEmbedded = OLESTR("ConvertUserHeadToEmbedded");

DISPID dispidConvertUserHeadToEmbedded;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szConvertUserHeadToEmbedded, 1,LOCALE_USER_DEFAULT, &dispidConvertUserHeadToEmbedded);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidConvertUserHeadToEmbedded,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

return hresult;
}
















/*
HRESULT mlsCopyFileToFTP(LPSTR szString1, LPSTR szString2)
{
HRESULT hresult;
OLECHAR FAR* szCopyFileToFTP = OLESTR("CopyFileToFTP");
DISPID dispidCopyFileToFTP;
VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;
dispparamsArgs.rgvarg = rgvArgs;
hresult = pdisp->GetIDsOfNames(IID_NULL, &szCopyFileToFTP, 1,LOCALE_USER_DEFAULT, &dispidCopyFileToFTP);
dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;
VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

// first for loop
OLECHAR pwcsText1[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText1[nloop]=0;
mbstowcs(pwcsText1, szString1, lstrlen(szString1));
BSTR bstrString1=NULL;
bstrString1=SysAllocString(pwcsText1);
rgvArgs[1].bstrVal=bstrString1;

// second for loop
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szString2, lstrlen(szString2));
BSTR bstrString2=NULL;
bstrString2=SysAllocString(pwcsText2);
rgvArgs[0].bstrVal=bstrString2;

hresult = pdisp->Invoke(dispidCopyFileToFTP,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);
SysFreeString(bstrString1);
SysFreeString(bstrString2);
return hresult;
}*/











HRESULT mlsCopyMetaFileToClipboard(void)
{
HRESULT hresult;

OLECHAR FAR* szCopyMetaFileToClipboard = OLESTR("CopyMetaFileToClipboard");

DISPID dispidCopyMetaFileToClipboard;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;
dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szCopyMetaFileToClipboard, 1,LOCALE_USER_DEFAULT, &dispidCopyMetaFileToClipboard);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidCopyMetaFileToClipboard,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

return hresult;
}










HRESULT mlsDeleteCurrentPage(void)
{
HRESULT hresult;

OLECHAR FAR* szDeleteCurrentPage = OLESTR("DeleteCurrentPage");

DISPID dispidDeleteCurrentPage;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;
dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szDeleteCurrentPage, 1,LOCALE_USER_DEFAULT, &dispidDeleteCurrentPage);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidDeleteCurrentPage,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

return hresult;
}







HRESULT mlsDeleteSymbol(int nValue1, int nValue2)
{
HRESULT hresult;

OLECHAR FAR* szDeleteSymbol = OLESTR("DeleteSymbol");

DISPID dispidDeleteSymbol;


VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szDeleteSymbol, 1,LOCALE_USER_DEFAULT, &dispidDeleteSymbol);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue2;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidDeleteSymbol,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

return hresult;
}













HRESULT mlsDeleteTaskLine(int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szDeleteTaskLine = OLESTR("DeleteTaskLine");

DISPID dispidDeleteTaskLine;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szDeleteTaskLine, 1,LOCALE_USER_DEFAULT, &dispidDeleteTaskLine);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidDeleteTaskLine,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

return hresult;
}












HRESULT mlsDisplayMessageBox(LPSTR szString1)
{
HRESULT hresult;

OLECHAR FAR* szDisplayMessageBox = OLESTR("DisplayMessageBox");

DISPID dispidDisplayMessageBox;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szDisplayMessageBox, 1,LOCALE_USER_DEFAULT, &dispidDisplayMessageBox);


dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;


// first for loop
OLECHAR pwcsText1[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText1[nloop]=0;
mbstowcs(pwcsText1, szString1, lstrlen(szString1));
BSTR bstrString1=NULL;
bstrString1=SysAllocString(pwcsText1);
rgvArgs[0].bstrVal=bstrString1;

hresult = pdisp->Invoke(dispidDisplayMessageBox,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString1);

return hresult;
}














HRESULT mlsFilterTaskLines(LPSTR szLineOne, LPSTR szLineTwo, LPSTR szLineThree, LPSTR szLineFour, LPSTR szLineFive, LPSTR szLineSix, LPSTR szLineSeven, LPSTR szLineEight, LPSTR szLineNine, LPSTR szLineTen, LPSTR szLineEleven, LPSTR szLineTwelve, LPSTR szLineThirteen, LPSTR szLineFourteen, LPSTR szLineFifteen, LPSTR szLineSixteen, LPSTR szLineSeventeen)
{
HRESULT hresult;

OLECHAR FAR* szFilterTaskLines = OLESTR("FilterTaskLines");

DISPID dispidFilterTaskLines;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szFilterTaskLines, 1,LOCALE_USER_DEFAULT, &dispidFilterTaskLines);

dispparamsArgs.cArgs = 17;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[16]);
rgvArgs[16].vt = VT_BSTR;

VariantInit(&rgvArgs[15]);
rgvArgs[15].vt = VT_BSTR;

VariantInit(&rgvArgs[14]);
rgvArgs[14].vt = VT_BSTR;

VariantInit(&rgvArgs[13]);
rgvArgs[13].vt = VT_BSTR;

VariantInit(&rgvArgs[12]);
rgvArgs[12].vt = VT_BSTR;

VariantInit(&rgvArgs[11]);
rgvArgs[11].vt = VT_BSTR;

VariantInit(&rgvArgs[10]);
rgvArgs[10].vt = VT_BSTR;

VariantInit(&rgvArgs[9]);
rgvArgs[9].vt = VT_BSTR;

VariantInit(&rgvArgs[8]);
rgvArgs[8].vt = VT_BSTR;

VariantInit(&rgvArgs[7]);
rgvArgs[7].vt = VT_BSTR;

VariantInit(&rgvArgs[6]);
rgvArgs[6].vt = VT_BSTR;

VariantInit(&rgvArgs[5]);
rgvArgs[5].vt = VT_BSTR;

VariantInit(&rgvArgs[4]);
rgvArgs[4].vt = VT_BSTR;

VariantInit(&rgvArgs[3]);
rgvArgs[3].vt = VT_BSTR;

VariantInit(&rgvArgs[2]);
rgvArgs[2].vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

// first for loop
OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrString=NULL;
bstrString=SysAllocString(pwcsText);
rgvArgs[16].bstrVal=bstrString;

// second for loop
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szLineTwo, lstrlen(szLineTwo));
BSTR bstrString2=NULL;
bstrString2=SysAllocString(pwcsText2);
rgvArgs[15].bstrVal=bstrString2;

// third for loop
OLECHAR pwcsText3[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText3[nloop]=0;
mbstowcs(pwcsText3, szLineThree, lstrlen(szLineThree));
BSTR bstrString3=NULL;
bstrString3=SysAllocString(pwcsText3);
rgvArgs[14].bstrVal=bstrString3;

// fourth for loop
OLECHAR pwcsText4[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText4[nloop]=0;
mbstowcs(pwcsText4, szLineFour, lstrlen(szLineFour));
BSTR bstrString4=NULL;
bstrString4=SysAllocString(pwcsText4);
rgvArgs[13].bstrVal=bstrString4;

// fifth for loop
OLECHAR pwcsText5[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText5[nloop]=0;
mbstowcs(pwcsText5, szLineFive, lstrlen(szLineFive));
BSTR bstrString5=NULL;
bstrString5=SysAllocString(pwcsText5);
rgvArgs[12].bstrVal=bstrString5;

// sixth for loop
OLECHAR pwcsText6[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText6[nloop]=0;
mbstowcs(pwcsText6, szLineSix, lstrlen(szLineSix));
BSTR bstrString6=NULL;
bstrString6=SysAllocString(pwcsText6);
rgvArgs[11].bstrVal=bstrString6;

// seventh for loop
OLECHAR pwcsText7[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText7[nloop]=0;
mbstowcs(pwcsText7, szLineSeven, lstrlen(szLineSeven));
BSTR bstrString7=NULL;
bstrString7=SysAllocString(pwcsText7);
rgvArgs[10].bstrVal=bstrString7;

// eighth for loop
OLECHAR pwcsText8[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText8[nloop]=0;
mbstowcs(pwcsText8, szLineEight, lstrlen(szLineEight));
BSTR bstrString8=NULL;
bstrString8=SysAllocString(pwcsText8);
rgvArgs[9].bstrVal=bstrString8;

// ninth for loop
OLECHAR pwcsText9[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText9[nloop]=0;
mbstowcs(pwcsText9, szLineNine, lstrlen(szLineNine));
BSTR bstrString9=NULL;
bstrString9=SysAllocString(pwcsText9);
rgvArgs[8].bstrVal=bstrString9;

// tenth for loop
OLECHAR pwcsText10[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText10[nloop]=0;
mbstowcs(pwcsText10, szLineTen, lstrlen(szLineTen));
BSTR bstrString10=NULL;
bstrString10=SysAllocString(pwcsText10);
rgvArgs[7].bstrVal=bstrString10;

// eleventh for loop
OLECHAR pwcsText11[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText11[nloop]=0;
mbstowcs(pwcsText11, szLineEleven, lstrlen(szLineEleven));
BSTR bstrString11=NULL;
bstrString11=SysAllocString(pwcsText11);
rgvArgs[6].bstrVal=bstrString11;

// twelvth for loop
OLECHAR pwcsText12[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText12[nloop]=0;
mbstowcs(pwcsText12, szLineTwelve, lstrlen(szLineTwelve));
BSTR bstrString12=NULL;
bstrString12=SysAllocString(pwcsText12);
rgvArgs[5].bstrVal=bstrString12;

// thirteenth for loop
OLECHAR pwcsText13[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText13[nloop]=0;
mbstowcs(pwcsText5, szLineThirteen, lstrlen(szLineThirteen));
BSTR bstrString13=NULL;
bstrString13=SysAllocString(pwcsText13);
rgvArgs[4].bstrVal=bstrString13;

// fourteenth for loop
OLECHAR pwcsText14[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText14[nloop]=0;
mbstowcs(pwcsText14, szLineFourteen, lstrlen(szLineFourteen));
BSTR bstrString14=NULL;
bstrString14=SysAllocString(pwcsText14);
rgvArgs[3].bstrVal=bstrString14;

// fifteenth for loop
OLECHAR pwcsText15[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText15[nloop]=0;
mbstowcs(pwcsText15, szLineFifteen, lstrlen(szLineFifteen));
BSTR bstrString15=NULL;
bstrString15=SysAllocString(pwcsText15);
rgvArgs[2].bstrVal=bstrString15;

// sixteenth for loop
OLECHAR pwcsText16[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText16[nloop]=0;
mbstowcs(pwcsText16, szLineSixteen, lstrlen(szLineSixteen));
BSTR bstrString16=NULL;
bstrString16=SysAllocString(pwcsText16);
rgvArgs[1].bstrVal=bstrString16;

// seventeenth for loop
OLECHAR pwcsText17[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText17[nloop]=0;
mbstowcs(pwcsText17, szLineSeventeen, lstrlen(szLineSeventeen));
BSTR bstrString17=NULL;
bstrString17=SysAllocString(pwcsText17);
rgvArgs[0].bstrVal=bstrString17;

hresult = pdisp->Invoke(dispidFilterTaskLines,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, NULL, NULL, NULL);

SysFreeString(bstrString);
SysFreeString(bstrString2);
SysFreeString(bstrString3);
SysFreeString(bstrString4);
SysFreeString(bstrString5);
SysFreeString(bstrString6);
SysFreeString(bstrString7);
SysFreeString(bstrString8);
SysFreeString(bstrString9);
SysFreeString(bstrString10);
SysFreeString(bstrString11);
SysFreeString(bstrString12);
SysFreeString(bstrString13);
SysFreeString(bstrString14);
SysFreeString(bstrString15);
SysFreeString(bstrString16);
SysFreeString(bstrString17);

return hresult;
}















HRESULT mlsGetCellTag(LPSTR szCellText,int nValue1, int nValue2)
{
HRESULT hresult;

OLECHAR FAR* szGetCellTag = OLESTR("GetCellTag");

DISPID dispidGetCellTag;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetCellTag, 1,LOCALE_USER_DEFAULT, &dispidGetCellTag);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue2;

hresult = pdisp->Invoke(dispidGetCellTag,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);


CopyBSTRToString(szCellText,vRetVal.bstrVal,599);

return hresult;
}














HRESULT mlsGetCellText(LPSTR szCellText,int nValue1, int nValue2)
{
HRESULT hresult;

OLECHAR FAR* szGetCellText = OLESTR("GetCellText");

DISPID dispidGetCellText;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetCellText, 1,LOCALE_USER_DEFAULT, &dispidGetCellText);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue2;

hresult = pdisp->Invoke(dispidGetCellText,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);


CopyBSTRToString(szCellText,vRetVal.bstrVal,599);

return hresult;
}












HRESULT mlsGetColumnProperty(LPSTR szLineTwo, int nValue1, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetColumnProperty = OLESTR("GetColumnProperty");

DISPID dispidGetColumnProperty;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetColumnProperty, 1,LOCALE_USER_DEFAULT, &dispidGetColumnProperty);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;

hresult = pdisp->Invoke(dispidGetColumnProperty,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

if((lstrcmpi(szLineOne,"Width")==0) || (lstrcmpi(szLineOne,"IndicatorSymbolSize")==0))
        {
        sprintf(szLineTwo,"%0.2f",vRetVal.dblVal);
        }
else
        {
        CopyBSTRToString(szLineTwo,vRetVal.bstrVal,599);
        }

SysFreeString(bstrLineOne);

return hresult;
}













HRESULT mlsGetCurrencySymbol(LPSTR szReturnString)
{
HRESULT hresult;

OLECHAR FAR* szGetCurrencySymbol = OLESTR("GetCurrencySymbol");

DISPID dispidGetCurrencySymbol;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetCurrencySymbol, 1,LOCALE_USER_DEFAULT, &dispidGetCurrencySymbol);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

hresult = pdisp->Invoke(dispidGetCurrencySymbol,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

CopyBSTRToString(szReturnString,vRetVal.bstrVal,599);

return hresult;
}











HRESULT mlsGetCurrentDate(LPSTR szReturnString)
{
HRESULT hresult;

OLECHAR FAR* szGetCurrentDate = OLESTR("GetCurrentDate");

DISPID dispidGetCurrentDate;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetCurrentDate, 1,LOCALE_USER_DEFAULT, &dispidGetCurrentDate);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

hresult = pdisp->Invoke(dispidGetCurrentDate,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

CopyBSTRToString(szReturnString,vRetVal.bstrVal,599);

return hresult;
}















HRESULT mlsGetCurrentPage(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetCurrentPage = OLESTR("GetCurrentPage");

DISPID dispidGetCurrentPage;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetCurrentPage, 1,LOCALE_USER_DEFAULT, &dispidGetCurrentPage);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetCurrentPage,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}











HRESULT mlsGetDataGraphProperty(LPSTR szLineTwo, int nValue1, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetDataGraphProperty = OLESTR("GetDataGraphProperty");

DISPID dispidGetDataGraphProperty;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetDataGraphProperty, 1,LOCALE_USER_DEFAULT, &dispidGetDataGraphProperty);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;

for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;


if((lstrcmpi(szLineOne,"Height")==0) || (lstrcmpi(szLineOne,"MaxValue")==0) || (lstrcmpi(szLineOne,"MinValue")==0) || (lstrcmpi(szLineOne,"Increment")==0))
        {
        vRetVal.vt = VT_R8;
        }
else
        {
        vRetVal.vt = VT_I4;
        }


hresult = pdisp->Invoke(dispidGetDataGraphProperty,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);


if((lstrcmpi(szLineOne,"Height")==0) || (lstrcmpi(szLineOne,"MaxValue")==0) || (lstrcmpi(szLineOne,"MinValue")==0) || (lstrcmpi(szLineOne,"Increment")==0))
        {
        sprintf(szLineTwo,"%0.2f",vRetVal.dblVal);
        }
else
        {
        sprintf(szLineTwo,"%d",vRetVal.lVal);
        }


SysFreeString(bstrLineOne);

return hresult;
}














HRESULT mlsGetFirstWeeklyValueSetDate(LPSTR szReturnString)
{
HRESULT hresult;

OLECHAR FAR* szGetFirstWeeklyValueSetDate = OLESTR("GetFirstWeeklyValueSetDate");

DISPID dispidGetFirstWeeklyValueSetDate;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetFirstWeeklyValueSetDate, 1,LOCALE_USER_DEFAULT, &dispidGetFirstWeeklyValueSetDate);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

hresult = pdisp->Invoke(dispidGetFirstWeeklyValueSetDate,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

CopyBSTRToString(szReturnString,vRetVal.bstrVal,599);

return hresult;
}













HRESULT mlsGetFontSize(int * nReturnValue, int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szGetFontSize = OLESTR("GetFontSize");

DISPID dispidGetFontSize;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetFontSize, 1,LOCALE_USER_DEFAULT, &dispidGetFontSize);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidGetFontSize,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}













HRESULT mlsGetFreeTextProperty(LPSTR szLineTwo, int nValue1, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetFreeTextProperty = OLESTR("GetFreeTextProperty");

DISPID dispidGetFreeTextProperty;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetFreeTextProperty, 1,LOCALE_USER_DEFAULT, &dispidGetFreeTextProperty);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;

for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;


if((lstrcmpi(szLineOne,"XPos")==0) || (lstrcmpi(szLineOne,"YPos")==0) || (lstrcmpi(szLineOne,"Page")==0) || (lstrcmpi(szLineOne,"Border")==0) || (lstrcmpi(szLineOne,"Transparent")==0) || (lstrcmpi(szLineOne,"Shadow")==0) || (lstrcmpi(szLineOne,"BackgroundColor")==0) || (lstrcmpi(szLineOne,"ShadowColor")==0) || (lstrcmpi(szLineOne,"TextColor")==0) || (lstrcmpi(szLineOne,"TextHeight")==0) || (lstrcmpi(szLineOne,"Underline")==0) || (lstrcmpi(szLineOne,"Bold")==0) || (lstrcmpi(szLineOne,"Italic")==0) || (lstrcmpi(szLineOne,"TextAlign")==0) || (lstrcmpi(szLineOne,"NumberOfBlocks")==0))
        {
        if((lstrcmpi(szLineOne,"XPos")==0) || (lstrcmpi(szLineOne,"YPos")==0))
                {
                vRetVal.vt = VT_R8;
                }
        else
                {
                vRetVal.vt = VT_I4;
                }
        }

hresult = pdisp->Invoke(dispidGetFreeTextProperty,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

if((lstrcmpi(szLineOne,"XPos")==0) || (lstrcmpi(szLineOne,"YPos")==0) || (lstrcmpi(szLineOne,"Page")==0) || (lstrcmpi(szLineOne,"Border")==0) || (lstrcmpi(szLineOne,"Transparent")==0) || (lstrcmpi(szLineOne,"Shadow")==0) || (lstrcmpi(szLineOne,"BackgroundColor")==0) || (lstrcmpi(szLineOne,"ShadowColor")==0) || (lstrcmpi(szLineOne,"TextColor")==0) || (lstrcmpi(szLineOne,"TextHeight")==0) || (lstrcmpi(szLineOne,"Underline")==0) || (lstrcmpi(szLineOne,"Bold")==0) || (lstrcmpi(szLineOne,"Italic")==0) || (lstrcmpi(szLineOne,"TextAlign")==0) || (lstrcmpi(szLineOne,"NumberOfBlocks")==0))
        {
        if((lstrcmpi(szLineOne,"XPos")==0) || (lstrcmpi(szLineOne,"YPos")==0))
                {
                sprintf(szLineTwo,"%0.2f",vRetVal.dblVal);
                }
        else
                {
                sprintf(szLineTwo,"%d",vRetVal.lVal);
                }
        }
else
        {
        CopyBSTRToString(szLineTwo,vRetVal.bstrVal,599);
        }

SysFreeString(bstrLineOne);

return hresult;
}












HRESULT mlsGetGlobalValueSetValue(double * dblReturnValue, LPSTR szLineOne, LPSTR szLineTwo)
{
HRESULT hresult;

OLECHAR FAR* szGetGlobalValueSetValue = OLESTR("GetGlobalValueSetValue");

DISPID dispidGetGlobalValueSetValue;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetGlobalValueSetValue, 1,LOCALE_USER_DEFAULT, &dispidGetGlobalValueSetValue);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

// first for loop
OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrString=NULL;
bstrString=SysAllocString(pwcsText);
rgvArgs[1].bstrVal=bstrString;

// second for loop
OLECHAR pwcsText2[600];
for(nloop=0;nloop<=599;nloop++)
        pwcsText2[nloop]=0;
mbstowcs(pwcsText2, szLineTwo, lstrlen(szLineTwo));
BSTR bstrString2=NULL;
bstrString2=SysAllocString(pwcsText2);
rgvArgs[0].bstrVal=bstrString2;

hresult = pdisp->Invoke(dispidGetGlobalValueSetValue,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*dblReturnValue = vRetVal.dblVal;

SysFreeString(bstrString);
SysFreeString(bstrString2);

return hresult;
}












HRESULT mlsGetLegendProperty(LPSTR szLineTwo, int nValue1, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetLegendProperty = OLESTR("GetLegendProperty");

DISPID dispidGetLegendProperty;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetLegendProperty, 1,LOCALE_USER_DEFAULT, &dispidGetLegendProperty);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;

for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;

if((lstrcmpi(szLineOne,"Height")==0) || (lstrcmpi(szLineOne,"MaxValue")==0) || (lstrcmpi(szLineOne,"MinValue")==0) || (lstrcmpi(szLineOne,"Increment")==0))
        {
        vRetVal.vt = VT_R8;
        }
else
        {
        vRetVal.vt = VT_I4;
        }


hresult = pdisp->Invoke(dispidGetLegendProperty,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);


if((lstrcmpi(szLineOne,"Height")==0))
        {
        sprintf(szLineTwo,"%0.2f",vRetVal.dblVal);
        }
else
        {
        sprintf(szLineTwo,"%d",vRetVal.lVal);
        }


SysFreeString(bstrLineOne);

return hresult;
}













HRESULT mlsGetLineOfSymbolTag(int * nReturnValue, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetLineOfSymbolTag = OLESTR("GetLineOfSymbolTag");

DISPID dispidGetLineOfSymbolTag;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetLineOfSymbolTag, 1,LOCALE_USER_DEFAULT, &dispidGetLineOfSymbolTag);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;

hresult = pdisp->Invoke(dispidGetLineOfSymbolTag,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

SysFreeString(bstrLineOne);

return hresult;
}










HRESULT mlsGetLinesPerPage(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetLinesPerPage = OLESTR("GetLinesPerPage");

DISPID dispidGetLinesPerPage;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetLinesPerPage, 1,LOCALE_USER_DEFAULT, &dispidGetLinesPerPage);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetLinesPerPage,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}









HRESULT mlsGetMiscProperty(LPSTR szLineTwo, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetMiscProperty = OLESTR("GetMiscProperty");

DISPID dispidGetMiscProperty;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetMiscProperty, 1,LOCALE_USER_DEFAULT, &dispidGetMiscProperty);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;

for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;


if((lstrcmpi(szLineOne,"Symbol Size")==0))
        {
        if((lstrcmpi(szLineOne,"Symbol Size")==0))
                {
                vRetVal.vt = VT_R8;
                }
        else
                {
                vRetVal.vt = VT_I4;
                }
        }

hresult = pdisp->Invoke(dispidGetMiscProperty,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

if((lstrcmpi(szLineOne,"Symbol Size")==0))
        {
        if((lstrcmpi(szLineOne,"Symbol Size")==0))
                {
                sprintf(szLineTwo,"%0.2f",vRetVal.dblVal);
                }
        else
                {
                sprintf(szLineTwo,"%d",vRetVal.lVal);
                }
        }
else
        {
        CopyBSTRToString(szLineTwo,vRetVal.bstrVal,599);
        }


SysFreeString(bstrLineOne);

return hresult;
}













HRESULT mlsGetNumberOfFreeTextBlocksUsed(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetNumberOfFreeTextBlocksUsed = OLESTR("GetNumberOfFreeTextBlocksUsed");

DISPID dispidGetNumberOfFreeTextBlocksUsed;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetNumberOfFreeTextBlocksUsed, 1,LOCALE_USER_DEFAULT, &dispidGetNumberOfFreeTextBlocksUsed);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetNumberOfFreeTextBlocksUsed,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}










HRESULT mlsGetNumberOfPages(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetNumberOfPages = OLESTR("GetNumberOfPages");

DISPID dispidGetNumberOfPages;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetNumberOfPages, 1,LOCALE_USER_DEFAULT, &dispidGetNumberOfPages);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetNumberOfPages,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}










HRESULT mlsGetMetric(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetMetric = OLESTR("GetMetric");

DISPID dispidGetMetric;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetMetric, 1,LOCALE_USER_DEFAULT, &dispidGetMetric);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetMetric,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}

















HRESULT mlsGetMilestonesDateFormat(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetMilestonesDateFormat = OLESTR("GetMilestonesDateFormat");

DISPID dispidGetMilestonesDateFormat;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetMilestonesDateFormat, 1,LOCALE_USER_DEFAULT, &dispidGetMilestonesDateFormat);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetMilestonesDateFormat,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}














HRESULT mlsGetMilestonesSystemFolder(LPSTR szReturnString)
{
HRESULT hresult;

OLECHAR FAR* szGetMilestonesSystemFolder = OLESTR("GetMilestonesSystemFolder");

DISPID dispidGetMilestonesSystemFolder;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetMilestonesSystemFolder, 1,LOCALE_USER_DEFAULT, &dispidGetMilestonesSystemFolder);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;
VariantInit(&vRetVal);
vRetVal.vt = VT_BSTR;

hresult = pdisp->Invoke(dispidGetMilestonesSystemFolder,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

CopyBSTRToString(szReturnString,vRetVal.bstrVal,599);

return hresult;
}











HRESULT mlsGetNumberOfLines(int * nReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetNumberOfLines = OLESTR("GetNumberOfLines");

DISPID dispidGetNumberOfLines;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetNumberOfLines, 1,LOCALE_USER_DEFAULT, &dispidGetNumberOfLines);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetNumberOfLines,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}










HRESULT mlsGetNumberOfSymbolsInLine(int * nReturnValue, int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szGetNumberOfSymbolsInLine = OLESTR("GetNumberOfSymbolsInLine");

DISPID dispidGetNumberOfSymbolsInLine;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetNumberOfSymbolsInLine, 1,LOCALE_USER_DEFAULT, &dispidGetNumberOfSymbolsInLine);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidGetNumberOfSymbolsInLine,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}














HRESULT mlsGetOutlineLevel(int * nReturnValue, int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szGetOutlineLevel = OLESTR("GetOutlineLevel");

DISPID dispidGetOutlineLevel;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetOutlineLevel, 1,LOCALE_USER_DEFAULT, &dispidGetOutlineLevel);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidGetOutlineLevel,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}















HRESULT mlsGetOutlineLevelAttribute(int * nReturnValue, int nValue1, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetOutlineLevelAttribute = OLESTR("GetOutlineLevelAttribute");

DISPID dispidGetOutlineLevelAttribute;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetOutlineLevelAttribute, 1,LOCALE_USER_DEFAULT, &dispidGetOutlineLevelAttribute);

dispparamsArgs.cArgs = 2;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[1]);
rgvArgs[1].vt = VT_I4;
rgvArgs[1].lVal=nValue1;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_BSTR;

OLECHAR pwcsText[600];
int nloop;
for(nloop=0;nloop<=599;nloop++)
        pwcsText[nloop]=0;
mbstowcs(pwcsText, szLineOne, lstrlen(szLineOne));
BSTR bstrLineOne=NULL;
bstrLineOne=SysAllocString(pwcsText);
rgvArgs[0].bstrVal=bstrLineOne;

hresult = pdisp->Invoke(dispidGetOutlineLevelAttribute,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

SysFreeString(bstrLineOne);

return hresult;
}

















HRESULT mlsGetPercentComplete(double * dblReturnValue, int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szGetPercentComplete = OLESTR("GetPercentComplete");

DISPID dispidGetPercentComplete;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetPercentComplete, 1,LOCALE_USER_DEFAULT, &dispidGetPercentComplete);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidGetPercentComplete,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*dblReturnValue = vRetVal.dblVal;


return hresult;
}









HRESULT mlsGetScheduleHeight(double * dblReturnValue)
{
HRESULT hresult;

OLECHAR FAR* szGetScheduleHeight = OLESTR("GetScheduleHeight");

DISPID dispidGetScheduleHeight;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetScheduleHeight, 1,LOCALE_USER_DEFAULT, &dispidGetScheduleHeight);

dispparamsArgs.cArgs = 0;
dispparamsArgs.cNamedArgs = 0;

hresult = pdisp->Invoke(dispidGetScheduleHeight,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*dblReturnValue = vRetVal.dblVal;

return hresult;
}














HRESULT mlsGetSelectedSymbolInLine(int * nReturnValue, int nValue1)
{
HRESULT hresult;

OLECHAR FAR* szGetSelectedSymbolInLine = OLESTR("GetSelectedSymbolInLine");

DISPID dispidGetSelectedSymbolInLine;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgvarg = rgvArgs;

hresult = pdisp->GetIDsOfNames(IID_NULL, &szGetSelectedSymbolInLine, 1,LOCALE_USER_DEFAULT, &dispidGetSelectedSymbolInLine);

dispparamsArgs.cArgs = 1;
dispparamsArgs.cNamedArgs = 0;

VariantInit(&rgvArgs[0]);
rgvArgs[0].vt = VT_I4;
rgvArgs[0].lVal=nValue1;

hresult = pdisp->Invoke(dispidGetSelectedSymbolInLine,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsArgs, &vRetVal, NULL, NULL);

*nReturnValue = vRetVal.lVal;

return hresult;
}














HRESULT mlsGetSymbolNumberOfSymbolTag(int * nReturnValue, LPSTR szLineOne)
{
HRESULT hresult;

OLECHAR FAR* szGetSymbolNumberOfSymbolTag = OLESTR("GetSymbolNumberOfSymbolTag");

DISPID dispidGetSymbolNumberOfSymbolTag;
VARIANT vRetVal;

VARIANT rgvArgs[20];
DISPPARAMS dispparamsArgs;

dispparamsArgs.rgva