The eccoMAGIC Forums
http://forums.eccoMAGIC.com/forum/YaBB.pl Ecco DDE & Add-On Programming tips, tricks, techniques (Learn & Share!) >> DDE Interfacing with Ecco - How to... >> Visual Basic example Code for Ecco DDE API (part1) http://forums.eccoMAGIC.com/forum/YaBB.pl?num=1178007518 Message started by Admin on 05/01/07 at 03:18:38 |
Title: Visual Basic example Code for Ecco DDE API (part1) Post by Admin on 05/01/07 at 03:18:38 Option Explicit 'Constants Global Const TOPIC_NAME = "Ecco|Ecco" 'Link Mode constants Global Const DDE_MODE_NONE = 0 Global Const DDE_MODE_AUTOMATIC = 1 Global Const DDE_MODE_MANUAL = 2 Global Const DDE_MODE_NOTIFY = 3 'getFolderItems constants Global Const DDE_ST_VALUEASCENDING = "va" Global Const DDE_ST_VALUEDESCENDING = "vd" Global Const DDE_ST_ITEMASCENDING = "ia" Global Const DDE_ST_ITEMDESCENDING = "va" Global Const DDE_ST_DEFAULT = "" Global Const DDE_CR_BEGINSWITH = "IB" Global Const DDE_CR_TEXTCONTAINS = "IC" Global Const DDE_CR_NOTTEXTCONTAINS = "IN" Global Const DDE_CR_TXTFLDBEGINS = "TB" Global Const DDE_CR_TXTFLDCONTAINS = "TC" Global Const DDE_CR_TXTFLDNOTCONTAIN = "TN" Global Const DDE_CR_FLDEQUALS = "EQ" Global Const DDE_CR_GREATER = "GR" Global Const DDE_CR_LESS = "LT" Global Const DDE_CR_GREATEREQUAL = "GE" Global Const DDE_CR_LESSEQUAL = "LE" Global Const DDE_CR_NOTEQUAL = "NE" Global Const DDE_CR_NOCRITERIA = "" 'pasteOleItem constants Global Const DDE_FL_LINK = 1 Global Const DDE_FL_OBJECT = 2 'ecco folder types Global Const DDE_FLDR_ALL = 0 Global Const DDE_FLDR_CHECKMARK = 1 Global Const DDE_FLDR_DATE = 2 Global Const DDE_FLDR_NUMBER = 3 Global Const DDE_FLDR_TEXT = 4 Global Const DDE_FLDR_POPUPLIST = 5 'ecco item types Global Const DDE_ITEM_TEXT = 1 Global Const DDE_ITEM_OLELINK = 2 Sub centerForm (x As Form) screen.MousePointer = 11 x.Top = (screen.Height * .85) / 2 - x.Height / 2 x.Left = screen.Width / 2 - x.Width / 2 screen.MousePointer = 0 End Sub Sub centerformLow (x As Form) screen.MousePointer = 11 x.Top = (screen.Height * .95) - x.Height x.Left = screen.Width / 2 - x.Width / 2 screen.MousePointer = 0 End Sub Sub changeFile (sessionID As Long) Dim sCommand As String DDEPoke "ChangeFile", Format$(sessionID) End Sub Sub closeFile () DDEPoke "CloseFile", "" End Sub Sub copyOleItem (itemID As Long) Dim sCommand As String DDEPoke "CopyOleItem", Format$(itemID) End Sub Function countItems (items As String) As Integer Dim tempList As String Dim found As Integer Dim ct As Integer tempList = items found = 1 ct = 1 While found <> 0 found = InStr(tempList, ",") If found <> 0 Then ct = ct + 1 tempList = Mid$(tempList, found + 1) End If Wend countItems = ct End Function Function createFolder (folderType As Integer, folderName As String) As Long Dim srVal As String Dim sCommand As String sCommand = Trim$(Str$(folderType)) + "," + folderName srVal = DDERequest("CreateFolder", sCommand) createFolder = Val(stripQuotes(srVal)) End Function Function CreateItem (sText As String, fldID As Long, sValue As String) As Long Dim srVal As String Dim sCommand As String sCommand = sText If fldID <> 0 Then sCommand = sCommand + "," + Format$(fldID) sCommand = sCommand + "," + sValue End If srVal = DDERequest("CreateItem", sCommand) CreateItem = Val(stripQuotes(srVal)) End Function Sub DDEPoke (szCommand As String, szData As String) screen.ActiveForm.DDE.LinkTopic = TOPIC_NAME screen.ActiveForm.DDE.LinkItem = szCommand screen.ActiveForm.DDE.Text = szData screen.ActiveForm.DDE.LinkMode = DDE_MODE_MANUAL screen.ActiveForm.DDE.LinkPoke screen.ActiveForm.DDE.LinkMode = DDE_MODE_NONE End Sub Function DDERequest (szCommand As String, szData As String) As String Dim sTemp As String On Error Resume Next If szData = "" Then screen.ActiveForm.DDE.LinkTopic = TOPIC_NAME screen.ActiveForm.DDE.LinkMode = DDE_MODE_MANUAL screen.ActiveForm.DDE.LinkItem = szCommand screen.ActiveForm.DDE.Text = "" screen.ActiveForm.DDE.LinkRequest sTemp = screen.ActiveForm.DDE.Text screen.ActiveForm.DDE.LinkMode = DDE_MODE_NONE Else screen.ActiveForm.DDE.LinkTopic = TOPIC_NAME screen.ActiveForm.DDE.LinkMode = DDE_MODE_MANUAL screen.ActiveForm.DDE.LinkItem = szCommand szData = szCommand + "," + szData screen.ActiveForm.DDE.LinkExecute szData 'screen.ActiveForm.DDE.LinkMode = DDE_MODE_NONE 'screen.ActiveForm.DDE.LinkTopic = TOPIC_NAME 'screen.ActiveForm.DDE.LinkMode = DDE_MODE_MANUAL screen.ActiveForm.DDE.LinkItem = "LastResult" screen.ActiveForm.DDE.Text = "" screen.ActiveForm.DDE.LinkRequest sTemp = screen.ActiveForm.DDE.Text screen.ActiveForm.DDE.LinkMode = DDE_MODE_NONE End If DDERequest = sTemp End Function Function eccoIsRunning () As Integer Dim sTemp As String sTemp = DDERequest("GetVersion", "") If sTemp = "_DDE_ERROR_" Then eccoIsRunning = False Else eccoIsRunning = True End If End Function Function getCSVItem (ByVal csv As String, ByVal item As Integer) As String Dim comma As Integer While item > 1 comma = InStr(csv, ",") If comma = 0 Then csv = "" Else csv = Mid$(csv, comma + 1) End If item = item - 1 Wend comma = InStr(csv, ",") If comma > 0 Then csv = Left$(csv, comma - 1) End If getCSVItem = csv End Function |
Title: Re: Visual Basic example Code for Ecco DDE API (2) Post by Admin on 05/01/07 at 03:21:07 Function getEccoVers () As String Dim temp As String Dim srVal As String srVal = DDERequest("GetVersion", "") temp = getCSVItem(srVal, 1) + "." temp = temp + getCSVItem(srVal, 2) + "." temp = temp + getCSVItem(srVal, 3) getEccoVers = temp End Function Function getFolderItems (fldID As Long, sort As String, crtra As String, crVal As String) As String Dim srVal As String Dim sCommand As String '-------------------------- ' Build the command string ' sCommand = Format$(fldID) If sort <> DDE_ST_DEFAULT Then sCommand = sCommand + "," + sort End If If crtra <> DDE_CR_NOCRITERIA Then sCommand = sCommand + "," + crtra + "," + Chr$(34) + crVal + Chr$(34) End If '------------------------- ' Send the DDE Request ' srVal = DDERequest("GetFolderItems", sCommand) getFolderItems = srVal End Function Function getFolderName (folderID As Long) As String Dim srVal As String Dim sCommand As String sCommand = "GetFolderName," + Format$(folderID) srVal = DDERequest(sCommand, "") getFolderName = stripQuotes(srVal) End Function Function getFoldersByName (folderName As String) As String Dim srVal As String Dim sCommand As String sCommand = folderName srVal = DDERequest("GetFoldersByName", sCommand) getFoldersByName = srVal End Function Function getFoldersByType (folderType As Integer) Dim srVal As String Dim sCommand As String sCommand = "GetFoldersByType," + Format$(folderType) srVal = DDERequest(sCommand, "") getFoldersByType = srVal End Function Function getFolderType (folderID As Long) As Integer Dim srVal As String Dim sCommand As String sCommand = "GetFolderType," + Format$(folderID) srVal = DDERequest(sCommand, "") getFolderType = Val(stripQuotes(srVal)) End Function Function getFolderValues (itemID As Long, folderID As Long) As String Dim srVal As String Dim sCommand As String sCommand = "GetFolderValues," + Format$(itemID) sCommand = sCommand + Chr$(13) + Format$(folderID) srVal = DDERequest(sCommand, "") getFolderValues = srVal End Function Function getItemFolders (itemID As Long) As String Dim srVal As String Dim sCommand As String sCommand = "GetItemFolders," + Format$(itemID) srVal = DDERequest(sCommand, "") getItemFolders = srVal End Function Function getItemParents (itemID As Long) As String Dim srVal As String Dim sCommand As String sCommand = "GetItemParents," + Format$(itemID) srVal = DDERequest(sCommand, "") getItemParents = srVal End Function Function getItemSubs (depth%, itemID&) As String Dim srVal As String Dim sCommand As String sCommand = "GetItemSubs," + Format$(depth) sCommand = sCommand + "," + Format$(itemID) srVal = DDERequest(sCommand, "") getItemSubs = srVal End Function Function getItemText (itemID As Long) As String Dim srVal As String Dim sCommand As String sCommand = "GetItemText," + Format$(itemID) srVal = DDERequest(sCommand, "") getItemText = srVal End Function Function getItemType (itemID As Long) As Integer Dim srVal As String Dim sCommand As String sCommand = "GetItemType," + Format$(itemID) srVal = DDERequest(sCommand, "") getItemType = Val(stripQuotes(srVal)) End Function Function getSelection () As String Dim sCommand As String sCommand = "GetSelection" getSelection = DDERequest(sCommand, "") End Function Sub insertItem (itemID As Long, flags As String, itemList As String) Dim sCommand As String sCommand = Format$(itemID) + "," + flags + "," + itemList DDEPoke "InsertItem", sCommand End Sub Function newEccoFile () As Long Dim srVal As String Dim sCommand As String sCommand = "NewFile" srVal = DDERequest(sCommand, "") newEccoFile = Val(srVal) End Function Function openEccoFile (sPath As String) As Long Dim srVal As String srVal = DDERequest("OpenFile", sPath) openEccoFile = Val(srVal) End Function Function pasteOleItem (flags As Integer, fldID As Long, sValue As String) As Long Dim srVal As String Dim sCommand As String sCommand = "PasteOleItem," + Format$(flags) If fldID <> 0 Then sCommand = sCommand + "," + Format$(fldID) sCommand = sCommand + "," + sValue End If srVal = DDERequest(sCommand, "") pasteOleItem = Val(stripQuotes(srVal)) End Function Sub removeItems (itemID&) Dim sCommand As String DDEPoke "RemoveItem", Format$(itemID) End Sub Sub saveFile (Path As String) Dim sCommand As String DDEPoke "SaveFile", Path End Sub Sub setFolderName (folderID As Long, sText As String) Dim sCommand As String sCommand = Format$(folderID) + "," + sText DDEPoke "setFolderName", sCommand End Sub Sub setFolderValues (itemID As Long, fldID As Long, fldValue As String) Dim sCommand As String sCommand = Format$(itemID) + Chr$(13) sCommand = sCommand + Format$(fldID) + Chr$(13) sCommand = sCommand + fldValue DDEPoke "SetFolderValues", sCommand End Sub |
Title: Re: Visual Basic example Code for Ecco DDE API (3) Post by Admin on 05/01/07 at 03:22:10 Sub setItemText (itemID As Long, sText As String) Dim sCommand As String sCommand = Format$(itemID) + "," + sText DDEPoke "SetItemText", sCommand End Sub Function stripQuotes (item As String) As String Dim QUOTE As String Dim temp As String Dim x As Integer QUOTE = Chr$(34) 'remove surrounding quotes If Left$(item, 1) = QUOTE Then item = Right$(item, Len(item) - 1) If Right$(item, 1) = QUOTE Then item = Left$(item, Len(item) - 1) 'change double quotes to single quotes x = InStr(item, QUOTE + QUOTE) While x temp = item item = Left$(temp, x) If x + 2 < Len(temp) Then item = item + Mid$(temp, x + 2) End If x = InStr(item, QUOTE + QUOTE) Wend stripQuotes = item End Function |
The eccoMAGIC Forums » Powered by YaBB 2.1! YaBB © 2000-2005. All Rights Reserved. |