1*b1cdbd2cSJim JagielskiAttribute VB_Name = "ApplicationSpecific"
2*b1cdbd2cSJim Jagielski'*************************************************************************
3*b1cdbd2cSJim Jagielski'
4*b1cdbd2cSJim Jagielski'  Licensed to the Apache Software Foundation (ASF) under one
5*b1cdbd2cSJim Jagielski'  or more contributor license agreements.  See the NOTICE file
6*b1cdbd2cSJim Jagielski'  distributed with this work for additional information
7*b1cdbd2cSJim Jagielski'  regarding copyright ownership.  The ASF licenses this file
8*b1cdbd2cSJim Jagielski'  to you under the Apache License, Version 2.0 (the
9*b1cdbd2cSJim Jagielski'  "License"); you may not use this file except in compliance
10*b1cdbd2cSJim Jagielski'  with the License.  You may obtain a copy of the License at
11*b1cdbd2cSJim Jagielski'
12*b1cdbd2cSJim Jagielski'    http://www.apache.org/licenses/LICENSE-2.0
13*b1cdbd2cSJim Jagielski'
14*b1cdbd2cSJim Jagielski'  Unless required by applicable law or agreed to in writing,
15*b1cdbd2cSJim Jagielski'  software distributed under the License is distributed on an
16*b1cdbd2cSJim Jagielski'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17*b1cdbd2cSJim Jagielski'  KIND, either express or implied.  See the License for the
18*b1cdbd2cSJim Jagielski'  specific language governing permissions and limitations
19*b1cdbd2cSJim Jagielski'  under the License.
20*b1cdbd2cSJim Jagielski'
21*b1cdbd2cSJim Jagielski'*************************************************************************
22*b1cdbd2cSJim JagielskiOption Explicit
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski'** Issue Categories
25*b1cdbd2cSJim JagielskiPublic Const CID_INFORMATION_REFS = 0
26*b1cdbd2cSJim JagielskiPublic Const CID_CHANGES_AND_REVIEWING = 1
27*b1cdbd2cSJim JagielskiPublic Const CID_CHARTS_TABLES = 2
28*b1cdbd2cSJim JagielskiPublic Const CID_CONTENT_AND_DOCUMENT_PROPERTIES = 3
29*b1cdbd2cSJim JagielskiPublic Const CID_CONTROLS = 4
30*b1cdbd2cSJim JagielskiPublic Const CID_FILTERS = 5
31*b1cdbd2cSJim JagielskiPublic Const CID_FORMAT = 6
32*b1cdbd2cSJim JagielskiPublic Const CID_FUNCTIONS = 7
33*b1cdbd2cSJim JagielskiPublic Const CID_OBJECTS_GRAPHICS = 8
34*b1cdbd2cSJim JagielskiPublic Const CID_PORTABILITY = 9
35*b1cdbd2cSJim JagielskiPublic Const CID_VBA_MACROS = 10
36*b1cdbd2cSJim JagielskiPublic Const CTOTAL_CATEGORIES = 10
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski'** Excel - XML Issue and SubIssue strings
39*b1cdbd2cSJim JagielskiPublic Const CSTR_ISSUE_CHANGES_AND_REVIEWING = "ChangesAndReviewing"
40*b1cdbd2cSJim JagielskiPublic Const CSTR_ISSUE_CHARTS_TABLES = "ChartsAndTables"
41*b1cdbd2cSJim JagielskiPublic Const CSTR_ISSUE_CONTROLS = "Controls"
42*b1cdbd2cSJim JagielskiPublic Const CSTR_ISSUE_FUNCTIONS = "Functions"
43*b1cdbd2cSJim JagielskiPublic Const CSTR_ISSUE_OBJECTS_GRAPHICS = "ObjectsAndGraphics"
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_ATTRIBUTES = "CellAttributes"
46*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_DATEDIF = "DATEDIF"
47*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_EMBEDDED_CHART = "EmbeddedChart"
48*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_ERROR_TYPE = "ERROR.TYPE"
49*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_EXTERNAL = "External"
50*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_INFO = "INFO"
51*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_MAX_ROWS_EXCEEDED = "MaximumRowsExceeded"
52*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_MAX_SHEETS_EXCEEDED = "MaximumSheetsExceeded"
53*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_PAGE_SETUP = "PageSetup"
54*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_PASSWORD_PROTECTION = "PasswordProtection"
55*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_PHONETIC = "PHONETIC"
56*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_SHEET_CHART = "SheetChart"
57*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_WORKBOOK_PROTECTION = "WorkbookProtection"
58*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_ZOOM = "Zoom"
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_CHART_COMPLEX = "ChartIssuesComplex"
61*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_CHART_MINOR = "ChartIssuesMinor"
62*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_CHART_PIVOT = "Pivot"
63*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_INVALID_WORKSHEET_NAME = "InvalidWorksheetName"
64*b1cdbd2cSJim JagielskiPublic Const CSTR_SUBISSUE_DB_QUERY = "DBQuery"
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski'** END Excel - XML Issue and SubIssue strings
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim JagielskiPublic Const CAPPNAME_WORD = "Word"
70*b1cdbd2cSJim Jagielski'Public Const CAPPNAME_WORD_DOC = ".doc"
71*b1cdbd2cSJim Jagielski'Public Const CAPPNAME_WORD_DOT = ".dot"
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim JagielskiPublic Const CAPPNAME_EXCEL = "Excel"
74*b1cdbd2cSJim JagielskiPublic Const CAPPNAME_EXCEL_DOC = ".xls"
75*b1cdbd2cSJim JagielskiPublic Const CAPPNAME_EXCEL_DOT = ".xlt"
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim JagielskiPublic Const CAPPNAME_POWERPOINT = "PowerPoint"
78*b1cdbd2cSJim Jagielski'Public Const CAPPNAME_PP_DOC = ".ppt"
79*b1cdbd2cSJim Jagielski'Public Const CAPPNAME_PP_DOT = ".pot"
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski'Public Const CAPP_DOCPROP_LOCATION = "Document"
82*b1cdbd2cSJim JagielskiPublic CAPP_DOCPROP_LOCATION As String
83*b1cdbd2cSJim Jagielski'Public Const CAPP_DOCPROP_LOCATION = "Presentation"
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski'Public Const CAPP_XMLDOCPROP_LOCATION = "Document"
86*b1cdbd2cSJim JagielskiPublic Const CAPP_XMLDOCPROP_LOCATION = "Workbook"
87*b1cdbd2cSJim Jagielski'Public Const CAPP_XMLDOCPROP_LOCATION = "Presentation"
88*b1cdbd2cSJim Jagielski
89*b1cdbd2cSJim JagielskiPublic Const CTHIS_DOCUMENT = "ThisWorkbook"
90*b1cdbd2cSJim JagielskiPublic Const CTOPLEVEL_PROJECT = "VBAProject"
91*b1cdbd2cSJim Jagielski
92*b1cdbd2cSJim JagielskiPublic Function getAppSpecificDocExt() As String
93*b1cdbd2cSJim Jagielski    getAppSpecificDocExt = CAPPNAME_EXCEL_DOC
94*b1cdbd2cSJim JagielskiEnd Function
95*b1cdbd2cSJim JagielskiPublic Function getAppSpecificTemplateExt() As String
96*b1cdbd2cSJim Jagielski    getAppSpecificTemplateExt = CAPPNAME_EXCEL_DOT
97*b1cdbd2cSJim JagielskiEnd Function
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim JagielskiPublic Function getAppSpecificPath() As String
100*b1cdbd2cSJim Jagielski    getAppSpecificPath = ActiveWorkbook.path
101*b1cdbd2cSJim JagielskiEnd Function
102*b1cdbd2cSJim JagielskiPublic Function getAppSpecificApplicationName() As String
103*b1cdbd2cSJim Jagielski    getAppSpecificApplicationName = CAPPNAME_EXCEL
104*b1cdbd2cSJim JagielskiEnd Function
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim JagielskiPublic Function getAppSpecificCustomDocProperties(currDoc As Workbook) As DocumentProperties
107*b1cdbd2cSJim Jagielski    Set getAppSpecificCustomDocProperties = currDoc.CustomDocumentProperties
108*b1cdbd2cSJim JagielskiEnd Function
109*b1cdbd2cSJim JagielskiPublic Function getAppSpecificCommentBuiltInDocProperty(currDoc As Workbook) As DocumentProperty
110*b1cdbd2cSJim Jagielski    Set getAppSpecificCommentBuiltInDocProperty = currDoc.BuiltinDocumentProperties("Comments")
111*b1cdbd2cSJim JagielskiEnd Function
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim JagielskiPublic Function getAppSpecificVBProject(currDoc As Workbook) As VBProject
114*b1cdbd2cSJim Jagielski    Set getAppSpecificVBProject = currDoc.VBProject
115*b1cdbd2cSJim JagielskiEnd Function
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim JagielskiPublic Function getAppSpecificOLEClassType(aShape As Shape) As String
118*b1cdbd2cSJim Jagielski    Dim objType As String
119*b1cdbd2cSJim Jagielski
120*b1cdbd2cSJim Jagielski    If aShape.OLEFormat.ProgID = "" Then
121*b1cdbd2cSJim Jagielski        objType = aShape.OLEFormat.ClassType
122*b1cdbd2cSJim Jagielski    Else
123*b1cdbd2cSJim Jagielski        objType = aShape.OLEFormat.ProgID
124*b1cdbd2cSJim Jagielski    End If
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski    getAppSpecificOLEClassType = objType
127*b1cdbd2cSJim JagielskiEnd Function
128*b1cdbd2cSJim Jagielski
129*b1cdbd2cSJim JagielskiPublic Sub SetAppToMinimized()
130*b1cdbd2cSJim Jagielski    Application.WindowState = xlMinimized
131*b1cdbd2cSJim Jagielski    Application.Visible = False
132*b1cdbd2cSJim JagielskiEnd Sub
133*b1cdbd2cSJim Jagielski
134*b1cdbd2cSJim JagielskiPublic Sub LocalizeResources()
135*b1cdbd2cSJim Jagielski    Dim xlStrings As StringDataManager
136*b1cdbd2cSJim Jagielski    Set xlStrings = New StringDataManager
137*b1cdbd2cSJim Jagielski
138*b1cdbd2cSJim Jagielski    xlStrings.InitStringData (GetResourceDataFileName(ThisWorkbook.path))
139*b1cdbd2cSJim Jagielski    LoadCommonStrings xlStrings
140*b1cdbd2cSJim Jagielski    LoadExcelStrings xlStrings
141*b1cdbd2cSJim Jagielski    LoadResultsStrings xlStrings
142*b1cdbd2cSJim Jagielski    Set xlStrings = Nothing
143*b1cdbd2cSJim Jagielski
144*b1cdbd2cSJim Jagielski    SetWBDriverText
145*b1cdbd2cSJim JagielskiEnd Sub
146*b1cdbd2cSJim Jagielski
147*b1cdbd2cSJim JagielskiPublic Sub SetWBDriverText()
148*b1cdbd2cSJim Jagielski    On Error Resume Next
149*b1cdbd2cSJim Jagielski    CAPP_DOCPROP_LOCATION = RID_STR_COMMON_RESULTS_LOCATION_TYPE_DOCUMENT
150*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_EXCEL_DRIVER").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_EXCEL_DRIVER
151*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_ISSUES").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_ISSUES
152*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_PURPOSE").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_PURPOSE
153*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_READ_README").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_READ_README
154*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_THE_MACROS").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_THE_MACROS
155*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_THIS_DOC").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_THIS_DOC
156*b1cdbd2cSJim Jagielski    ThisWorkbook.Names("RID_STR_DVR_XL_TITLE").RefersToRange.Cells(1, 1) = RID_STR_DVR_XL_TITLE
157*b1cdbd2cSJim JagielskiEnd Sub
158*b1cdbd2cSJim Jagielski
159