home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 January / pcwk_01_1999.iso / Wtestowe / Vistdstd / Install / Data.Z / Doclist.BAS < prev    next >
BASIC Source File  |  1996-09-04  |  5KB  |  123 lines

  1. Attribute VB_Name = "DOCLIST"
  2. ' -----------------------------------------------------------------------------
  3. ' Copyright (C) 1993-1996 Visio Corporation. All rights reserved.
  4. '
  5. ' You have a royalty-free right to use, modify, reproduce and distribute
  6. ' the Sample Application Files (and/or any modified version) in any way
  7. ' you find useful, provided that you agree that Visio has no warranty,
  8. ' obligations or liability for any Sample Application Files.
  9. ' -----------------------------------------------------------------------------
  10.  
  11. Option Base 0                               '-- 0 Based Arrays
  12. Option Explicit                             '-- All Variables Explicit
  13.  
  14. '--
  15. '--   The array DocList is a global array which contains the most up to date
  16. '-- list of Visio's valid, open documents.  Use UpdateDocList to keep this
  17. '-- list up to date.
  18. '--
  19.  
  20. Dim DocList() As DOCUMENT                       '-- Loaded Document List
  21.  
  22. Dim bEmpty As Integer                           '-- Empty/Full Flag
  23.  
  24. Function DocCount() As Integer
  25. '------------------------------------
  26. '--- DocCount -----------------------
  27. '--
  28. '--   Returns the total number of documents in the document list.
  29. '--
  30.  
  31.   If bEmpty <> True Then
  32.     DocCount = UBound(DocList) + 1              '-- Return Valid Docs
  33.   Else
  34.     DocCount = 0                                '-- No Documents
  35.   End If
  36. End Function
  37.  
  38. Function GetCollIndex(iIndex As Integer) As Integer
  39. '------------------------------------
  40. '--- GetCollIndex -------------------
  41. '--
  42. '--   Returns an integer specifying the index of a document in it's respective
  43. '-- collections.  This separates the valid and invalid document indexes for
  44. '-- any functions that need to deal directly with Visio doc. collections.
  45. '--
  46. '-- Parameters : iIndex   An integer containing the 0 based index of a valid
  47. '--                       document.
  48. '
  49. '--    Returns : An Integer containing the 1 based colleciton index or -1 if
  50. '--              iIndex is invalid.
  51.  
  52.   Dim iCollIndex As Integer                 '-- Return Index
  53.  
  54.   iCollIndex = -1                           '-- Default to -1
  55.  
  56.   If iIsWithin%(iIndex, 0, UBound(DocList)) And (bEmpty <> True) Then
  57.     iCollIndex = DocList(iIndex).iCollIndex
  58.   End If
  59.  
  60.   GetCollIndex = iCollIndex
  61. End Function
  62.  
  63. Function GetDocName(iIndex As Integer) As String
  64. '------------------------------------
  65. '--- GetDocName ---------------------
  66. '--
  67. '--   Retrieves a document name from the valid document list.
  68. '--
  69. '-- Parameters : iIndex   An integer containing the 0 based index of a valid
  70. '--                       document.
  71. '--
  72. '--    Returns : A String containing the name associated with iIndex's document
  73. '--              or "" if iIndex is invalid.
  74.  
  75.   Dim strName As String                     '-- Return Index
  76.  
  77.   strName = ""                              '-- Default To Empty Name
  78.  
  79.   If iIsWithin%(iIndex, 0, UBound(DocList)) And (bEmpty <> True) Then
  80.     strName = DocList(iIndex).strDocName
  81.   End If
  82.  
  83.   GetDocName = strName                      '-- Return Document Name
  84. End Function
  85.  
  86. Sub UpdateValidDocList()
  87. '------------------------------------
  88. '--- UpdateDocList ------------------
  89. '--
  90. '--   Retrieves the valid documents from Visio and updates the document list.
  91. '-- A valid document is defined by containing at least one page.  Documents
  92. '-- which fit this description are drawings.
  93. '--
  94.  
  95.   Dim docDoc As Visio.DOCUMENT
  96.   Dim iDocCount As Integer, I As Integer, iValid As Integer
  97.   
  98.   AppConnect
  99.  
  100.   bEmpty = True                                     '-- Default To Empty
  101.   iValid = 0                                        '-- No Valid Documents
  102.   iDocCount = g_appVisio.Documents.Count            '-- Get Document Count
  103.  
  104.   If iDocCount > 0 Then                             '-- At Least One Doc...
  105.     ReDim DocList(iDocCount - 1)                    '--   Set Array Size
  106.  
  107.     For I = 1 To iDocCount                          '--   Doc Loop...
  108.       Set docDoc = g_appVisio.Documents(I)          '--     Get Next Document
  109.  
  110.       If docDoc.Pages.Count > 0 Then                '--     Valid Document...
  111.         DocList(iValid).strDocName = docDoc.Name    '--       Store Name
  112.         DocList(iValid).iCollIndex = I              '--       Store Index
  113.  
  114.         iValid = iValid + 1                         '--       Inc. Valid Count
  115.       End If
  116.     Next I
  117.  
  118.     ReDim Preserve DocList(iValid - 1)              '--   Clean Up Array
  119.     bEmpty = False                                  '--   Not Empty
  120.   End If
  121. End Sub
  122.  
  123.