diff options
549 files changed, 13065 insertions, 13064 deletions
diff --git a/hwpfilter/source/hbox.h b/hwpfilter/source/hbox.h index 619a57b2faee..3742ae9fae23 100644 --- a/hwpfilter/source/hbox.h +++ b/hwpfilter/source/hbox.h @@ -443,7 +443,7 @@ struct Columns return; } } - // last postion. + // last position. if( nCount == nTotal ) AddColumnsSize(); data[nCount++] = pos; @@ -504,7 +504,7 @@ struct Rows return; } } - // last postion. + // last position. if( nCount == nTotal ) AddRowsSize(); data[nCount++] = pos; @@ -562,7 +562,7 @@ struct PicDefFile }; /** - * @short Embeded image file + * @short Embedded image file */ struct PicDefEmbed { @@ -610,7 +610,7 @@ typedef union /** * There are four kinds of image. * @li External image - * @li Embeded image + * @li Embedded image * @li Win32 ole object * @li Drawing object of hwp * @@ -639,7 +639,7 @@ struct Picture: public FBox /** * Type of this object - * It is one of external/ole/embeded/drawing picture + * It is one of external/ole/embedded/drawing picture */ uchar pictype; hunit skip[2]; @@ -998,7 +998,7 @@ class Outline: public HBox */ hchar user_shape[MAX_OUTLINE_LEVEL]; /** - * decoration charactor for the level type + * decoration character for the level type */ hchar deco[MAX_OUTLINE_LEVEL][2]; /* 사용자 정의시 앞뒤 문자 */ hchar dummy; diff --git a/hwpfilter/source/hcode.cpp b/hwpfilter/source/hcode.cpp index a08676b7e0af..7fa46864038f 100644 --- a/hwpfilter/source/hcode.cpp +++ b/hwpfilter/source/hcode.cpp @@ -1265,7 +1265,7 @@ hchar_string kstr2hstr(unsigned char const* src) /** - * Transfer interger to string following format + * Transfer integer to string following format */ char* Int2Str(int value, const char *format, char *buf) { diff --git a/hwpfilter/source/hcode.h b/hwpfilter/source/hcode.h index 6af595aca463..3f76f6d2be29 100644 --- a/hwpfilter/source/hcode.h +++ b/hwpfilter/source/hcode.h @@ -64,7 +64,7 @@ DLLEXPORT ::std::string urltounix(const char *src); DLLEXPORT ::std::string urltowin(const char *src); #endif /** - * Transfer interger to string following format + * Transfer integer to string following format */ DLLEXPORT char* Int2Str(int value, const char *format, char *buf); diff --git a/hwpfilter/source/hgzip.cpp b/hwpfilter/source/hgzip.cpp index c706eabc22b8..7c3d3bf0adaa 100644 --- a/hwpfilter/source/hgzip.cpp +++ b/hwpfilter/source/hgzip.cpp @@ -108,7 +108,7 @@ gz_stream *gz_open(HStream & _stream) /* =========================================================================== Read a byte from a gz_stream; update next_in and avail_in. Return EOF for end of file. - IN assertion: the stream s has been sucessfully opened for reading. + IN assertion: the stream s has been successfully opened for reading. */ local int get_byte(gz_stream * s) { diff --git a/hwpfilter/source/hinfo.cpp b/hwpfilter/source/hinfo.cpp index c71704dde52a..dad010d397d3 100644 --- a/hwpfilter/source/hinfo.cpp +++ b/hwpfilter/source/hinfo.cpp @@ -44,7 +44,7 @@ static bool HWPReadInfoBlock(void *ptr, int len, HWPFile & hwpf) } -// Document Infomation +// Document Information HWPInfo::HWPInfo(void) { diff --git a/hwpfilter/source/hinfo.h b/hwpfilter/source/hinfo.h index dd02304ab950..68a969efe00d 100644 --- a/hwpfilter/source/hinfo.h +++ b/hwpfilter/source/hinfo.h @@ -56,7 +56,7 @@ typedef struct /* ?????? ??????, ???????? ???? */ typedef struct { - char type; // 0- background color, 1 - external image, 2- embeded image + char type; // 0- background color, 1 - external image, 2- embedded image char reserved1[8]; int luminance; /* ???? ( -100 ~ 100 ) */ int contrast; /* ???? ( -100 ~ 100 ) */ diff --git a/hwpfilter/source/hpara.cpp b/hwpfilter/source/hpara.cpp index fd8c9fe2756f..6af00852e2a4 100644 --- a/hwpfilter/source/hpara.cpp +++ b/hwpfilter/source/hpara.cpp @@ -95,7 +95,7 @@ int HWPPara::Read(HWPFile & hwpf, unsigned char flag) unsigned char same_cshape; register int ii; scflag = flag; -// Paragraph Infomation +// Paragraph Information hwpf.Read1b(&reuse_shape, 1); hwpf.Read2b(&nch, 1); hwpf.Read2b(&nline, 1); diff --git a/hwpfilter/source/hpara.h b/hwpfilter/source/hpara.h index 630f1b61ac66..862498ac9ac3 100644 --- a/hwpfilter/source/hpara.h +++ b/hwpfilter/source/hpara.h @@ -46,7 +46,7 @@ struct HBox; enum { PA_USER_COLUMN = 1, - PA_USER_PAGE = 2, /* p user_page definiton */ + PA_USER_PAGE = 2, /* p user_page definition */ PA_SECTION_BREAK = 4, PA_BLOCK_BEGIN = 8, PA_IN_BLOCK = 16, @@ -130,11 +130,11 @@ class DLLEXPORT HWPPara /* layout을 위한 함수 */ /** - * Returns the character sytle of paragraph. + * Returns the character style of paragraph. */ CharShape *GetCharShape(int pos); /** - * Returns the sytle of paragraph. + * Returns the style of paragraph. */ ParaShape *GetParaShape(void); diff --git a/hwpfilter/source/htags.h b/hwpfilter/source/htags.h index 106591ff6dbb..ebc7be7b26cd 100644 --- a/hwpfilter/source/htags.h +++ b/hwpfilter/source/htags.h @@ -39,7 +39,7 @@ class HWPFile; /** - * @short Embeded image + * @short Embedded image */ struct EmPicture { diff --git a/hwpfilter/source/hwpeq.cpp b/hwpfilter/source/hwpeq.cpp index 1ad3f3aa9971..e53f47290477 100644 --- a/hwpfilter/source/hwpeq.cpp +++ b/hwpfilter/source/hwpeq.cpp @@ -444,7 +444,7 @@ static char *make_keyword( char *keyword, const char *token) return keyword; } -// token reading funtion +// token reading function struct eq_stack { MzString white; MzString token; @@ -469,7 +469,8 @@ void push_token(MzString &white, MzString &token, istream *strm) stk->strm = strm; } -/* 읽은 토큰의 길이를 반환한다. */ +/* + 읽은 토큰의 길이를 반환한다. */ /* control char, control sequence, binary sequence, alphabet string, sigle character */ static int next_token(MzString &white, MzString &token, istream *strm) @@ -489,7 +490,7 @@ static int next_token(MzString &white, MzString &token, istream *strm) if( !strm->good() || (ch = strm->get()) == EOF ) return 0; - // read preceeding ws + // read preceding ws if( IS_WS(ch) ) { do white << (char) ch; while( IS_WS(ch = strm->get()) ); diff --git a/hwpfilter/source/hwpfile.h b/hwpfilter/source/hwpfile.h index dafcf4ae3707..714de34a2142 100644 --- a/hwpfilter/source/hwpfile.h +++ b/hwpfilter/source/hwpfile.h @@ -194,7 +194,7 @@ class DLLEXPORT HWPFile bool ParaListRead(); /* 그림 등의 추가 정보를 읽는다. */ /** - * Reads additional information like embeded image of hwp file from HIODev + * Reads additional information like embedded image of hwp file from HIODev */ bool TagsRead(void); diff --git a/i18npool/inc/xdictionary.hxx b/i18npool/inc/xdictionary.hxx index 2928d102cbf4..d347feba0683 100644 --- a/i18npool/inc/xdictionary.hxx +++ b/i18npool/inc/xdictionary.hxx @@ -39,7 +39,7 @@ namespace com { namespace sun { namespace star { namespace i18n { // cache structure. struct WordBreakCache { sal_Int32 length; // contents length saved here. - sal_Unicode *contents; // seperated segment contents. + sal_Unicode *contents; // separated segment contents. sal_Int32* wordboundary; // word boundaries in segments. sal_Int32 size; // size of wordboundary diff --git a/icc/README b/icc/README index 672371d411ad..f6a559ed24c8 100644 --- a/icc/README +++ b/icc/README @@ -26,7 +26,7 @@ http://www.color.org Notes for porters ================= -the endianess and other platform specific configuration +the endianness and other platform specific configuration are in: <build>/misc/build/SampleICC-1.3.2/IccProfLib/IccProfLibConf.h diff --git a/icu/createmak.pl b/icu/createmak.pl index a41094aed525..d715eeac677c 100644 --- a/icu/createmak.pl +++ b/icu/createmak.pl @@ -941,7 +941,7 @@ sub create_allinone_all_mak #09.02.2009 09:22 $allinonehelpstring = $prjdir; $allinonehelpstring =~ s/^\.+\\//; # remove ..\ my $backcount = ""; - while ($allinonehelpstring=~ /.+\\/g) # counts the occuring \ + while ($allinonehelpstring=~ /.+\\/g) # counts the occurring \ { $backcount .= "..\\"; } diff --git a/idl/source/objects/object.cxx b/idl/source/objects/object.cxx index 5793387a5b83..2b537abee949 100644 --- a/idl/source/objects/object.cxx +++ b/idl/source/objects/object.cxx @@ -296,7 +296,7 @@ void SvMetaClass::ReadContextSvIdl( SvIdlDataBase & rBase, if( xAutomationInterface.Is() ) { // Fehler setzen - rBase.SetError( "Automation allready set", + rBase.SetError( "Automation already set", rInStm.GetToken() ); rBase.WriteError( rInStm ); } diff --git a/idlc/inc/idlc/errorhandler.hxx b/idlc/inc/idlc/errorhandler.hxx index 202b357f063f..816584ab502f 100644 --- a/idlc/inc/idlc/errorhandler.hxx +++ b/idlc/inc/idlc/errorhandler.hxx @@ -52,7 +52,7 @@ enum ErrorCode EIDL_CONSTANT_EXPECTED, // We got something else.. EIDL_NAME_CASE_ERROR, // Spelling differences found EIDL_ENUM_VAL_EXPECTED, // Expected an enumerator - EIDL_ENUM_VAL_NOT_FOUND, // Didnt find an enumerator with that name + EIDL_ENUM_VAL_NOT_FOUND, // Didn't find an enumerator with that name EIDL_EVAL_ERROR, // Error in evaluating expression EIDL_AMBIGUOUS, // Ambiguous name definition EIDL_DECL_NOT_DEFINED, // Forward declared but never defined @@ -115,7 +115,7 @@ public: // Report a syntax error in IDL input void syntaxError(ParseState state, sal_Int32 lineNumber, const sal_Char* errmsg); - // Report an unsuccesful coercion attempt + // Report an unsuccessful coercion attempt void coercionError(AstExpression *pExpr, ExprType et); // Report a failed name lookup attempt diff --git a/idlc/source/astexpression.cxx b/idlc/source/astexpression.cxx index a2652bfa59ec..8d97bb1742e3 100644 --- a/idlc/source/astexpression.cxx +++ b/idlc/source/astexpression.cxx @@ -1255,5 +1255,5 @@ const sal_Char* SAL_CALL exprTypeToString(ExprType t) return "none"; } - return ("unkown"); + return ("unknown"); } diff --git a/idlc/source/errorhandler.cxx b/idlc/source/errorhandler.cxx index 359bd400422d..c4d95276c2ba 100644 --- a/idlc/source/errorhandler.cxx +++ b/idlc/source/errorhandler.cxx @@ -180,7 +180,7 @@ static const sal_Char* warningCodeToMessage(WarningCode wCode) case WIDL_WRONG_NAMING_CONV: return "type or identifier doesn't fulfill the UNO naming convention: "; } - return "unkown warning"; + return "unknown warning"; } static const sal_Char* parseStateToMessage(ParseState state) diff --git a/idlc/test/struct.idl b/idlc/test/struct.idl index dff641613ff6..cbcfd0c0bd5b 100644 --- a/idlc/test/struct.idl +++ b/idlc/test/struct.idl @@ -38,7 +38,7 @@ typedef sequence< long > Id; //}; /** bla - BaseStruct defines an * intial struct + BaseStruct defines an * initial struct */ struct BaseStruct { diff --git a/idlc/test/typelookup.idl b/idlc/test/typelookup.idl index 46d05a9ed05e..2c70bc9c88b2 100644 --- a/idlc/test/typelookup.idl +++ b/idlc/test/typelookup.idl @@ -38,7 +38,7 @@ module test { /** bla - BaseStruct defines an * intial struct + BaseStruct defines an * initial struct */ struct BaseStruct { diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/_Validat.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/_Validat.idt index 4098f92c3578..887c31c02202 100644 --- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/_Validat.idt +++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/_Validat.idt @@ -112,7 +112,7 @@ CreateFolder Component_ N Component 1 Identifier Foreign key into the Compone CreateFolder Directory_ N Directory 1 Identifier Primary key, could be foreign key into the Directory table. CustomAction Action N Identifier Primary key, name of action, normally appears in sequence table unless private use. CustomAction Source Y CustomSource The table reference of the source of the code. -CustomAction Target Y Formatted Excecution parameter, depends on the type of custom action +CustomAction Target Y Formatted Execution parameter, depends on the type of custom action CustomAction Type N 1 32767 The numeric custom action type, consisting of source location, code type, entry, option flags. Dialog Attributes Y 0 2147483647 A 32-bit word that specifies the attribute flags to be applied to this dialog. Dialog Control_Cancel Y Control 2 Identifier Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button. diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/_Validat.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/_Validat.idt index 4098f92c3578..887c31c02202 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/_Validat.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/_Validat.idt @@ -112,7 +112,7 @@ CreateFolder Component_ N Component 1 Identifier Foreign key into the Compone CreateFolder Directory_ N Directory 1 Identifier Primary key, could be foreign key into the Directory table. CustomAction Action N Identifier Primary key, name of action, normally appears in sequence table unless private use. CustomAction Source Y CustomSource The table reference of the source of the code. -CustomAction Target Y Formatted Excecution parameter, depends on the type of custom action +CustomAction Target Y Formatted Execution parameter, depends on the type of custom action CustomAction Type N 1 32767 The numeric custom action type, consisting of source location, code type, entry, option flags. Dialog Attributes Y 0 2147483647 A 32-bit word that specifies the attribute flags to be applied to this dialog. Dialog Control_Cancel Y Control 2 Identifier Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button. diff --git a/instsetoo_native/inc_sdkoo/windows/msi_templates/_Validat.idt b/instsetoo_native/inc_sdkoo/windows/msi_templates/_Validat.idt index 4098f92c3578..887c31c02202 100644 --- a/instsetoo_native/inc_sdkoo/windows/msi_templates/_Validat.idt +++ b/instsetoo_native/inc_sdkoo/windows/msi_templates/_Validat.idt @@ -112,7 +112,7 @@ CreateFolder Component_ N Component 1 Identifier Foreign key into the Compone CreateFolder Directory_ N Directory 1 Identifier Primary key, could be foreign key into the Directory table. CustomAction Action N Identifier Primary key, name of action, normally appears in sequence table unless private use. CustomAction Source Y CustomSource The table reference of the source of the code. -CustomAction Target Y Formatted Excecution parameter, depends on the type of custom action +CustomAction Target Y Formatted Execution parameter, depends on the type of custom action CustomAction Type N 1 32767 The numeric custom action type, consisting of source location, code type, entry, option flags. Dialog Attributes Y 0 2147483647 A 32-bit word that specifies the attribute flags to be applied to this dialog. Dialog Control_Cancel Y Control 2 Identifier Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button. diff --git a/instsetoo_native/inc_ure/windows/msi_templates/_Validat.idt b/instsetoo_native/inc_ure/windows/msi_templates/_Validat.idt index 4098f92c3578..887c31c02202 100644 --- a/instsetoo_native/inc_ure/windows/msi_templates/_Validat.idt +++ b/instsetoo_native/inc_ure/windows/msi_templates/_Validat.idt @@ -112,7 +112,7 @@ CreateFolder Component_ N Component 1 Identifier Foreign key into the Compone CreateFolder Directory_ N Directory 1 Identifier Primary key, could be foreign key into the Directory table. CustomAction Action N Identifier Primary key, name of action, normally appears in sequence table unless private use. CustomAction Source Y CustomSource The table reference of the source of the code. -CustomAction Target Y Formatted Excecution parameter, depends on the type of custom action +CustomAction Target Y Formatted Execution parameter, depends on the type of custom action CustomAction Type N 1 32767 The numeric custom action type, consisting of source location, code type, entry, option flags. Dialog Attributes Y 0 2147483647 A 32-bit word that specifies the attribute flags to be applied to this dialog. Dialog Control_Cancel Y Control 2 Identifier Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button. diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/PrologueCtrl.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/PrologueCtrl.java index b9e0534454ce..5ec249be5b9b 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/PrologueCtrl.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/PrologueCtrl.java @@ -82,7 +82,7 @@ public class PrologueCtrl extends PanelController { // System.err.println("Number of preselected language packages: " + count); if ( installData.getPreselectedLanguages() == 0 ) { - // Something misterious happened. Setting all languages again. + // Something mysterious happened. Setting all languages again. ModuleCtrl.setLanguagesPackages(packageData); } diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java index 72b4c189c84b..70b6f30c9b8a 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java @@ -281,7 +281,7 @@ public class LinuxInstaller extends Installer { if ( returnValue == 0 ) { log = rpmCommand + "<br><b>Returns: " + returnValue + " Successful installation</b><br>"; LogManager.addCommandsLogfileComment(log); - } else { // an error occured during installation + } else { // an error occurred during installation if ( packageData.installCanFail() ) { log = rpmCommand + "<br><b>Returns: " + returnValue + " Problem during installation. Can be ignored.</b><br>"; LogManager.addCommandsLogfileComment(log); @@ -412,7 +412,7 @@ public class LinuxInstaller extends Installer { if ( returnValue == 0 ) { log = rpmCommand + "<br><b>Returns: " + returnValue + " Successful uninstallation</b><br>"; LogManager.addCommandsLogfileComment(log); - } else { // an error occured during installation + } else { // an error occurred during installation if ( packageData.uninstallCanFail() ) { log = rpmCommand + "<br><b>Returns: " + returnValue + " Problem during uninstallation. Can be ignored.</b><br>"; LogManager.addCommandsLogfileComment(log); diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/SolarisInstaller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/SolarisInstaller.java index 0e89f1b4eac2..b848b917efa0 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/SolarisInstaller.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/SolarisInstaller.java @@ -215,7 +215,7 @@ public class SolarisInstaller extends Installer { if ( returnValue == 0 ) { log = pkgCommand + "<br><b>Returns: " + returnValue + " Successful installation</b><br>"; LogManager.addCommandsLogfileComment(log); - } else { // an error occured during installation + } else { // an error occurred during installation if ( packageData.installCanFail() ) { log = pkgCommand + "<br><b>Returns: " + returnValue + " Problem during installation. Can be ignored.</b><br>"; LogManager.addCommandsLogfileComment(log); @@ -303,7 +303,7 @@ public class SolarisInstaller extends Installer { if ( returnValue == 0 ) { log = pkgCommand + "<br><b>Returns: " + returnValue + " Successful uninstallation</b><br>"; LogManager.addCommandsLogfileComment(log); - } else { // an error occured during installation + } else { // an error occurred during installation if ( packageData.uninstallCanFail() ) { log = pkgCommand + "<br><b>Returns: " + returnValue + " Problem during uninstallation. Can be ignored.</b><br>"; LogManager.addCommandsLogfileComment(log); diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java index b8aebecf7654..e50543423076 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java @@ -489,7 +489,7 @@ import java.util.Vector;public class LinuxHelper { // all packages, whose "real" package name is not defined in xpd files (for example // "openoffice-core01-2.0.3-159.rpm" hat the "real" name "openoffice-core01" that is // used for deinstallation) this can be read in this file. Otherwise it would be - // neccessary to determine the "real" name with a database question. + // necessary to determine the "real" name with a database question. // The version and release that are also stored in file "packageNames" must not be // used for deinstallation because they are probably not up to date. diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/ProductDescription.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/ProductDescription.java index 6e08e0cdaecb..f93349c98609 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/ProductDescription.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/ProductDescription.java @@ -137,7 +137,7 @@ public class ProductDescription { String replace = pair.replacement; result = matcher.replaceAll(replace); - // masquerading backslashes in String replace (important for Windows pathes) + // masquerading backslashes in String replace (important for Windows paths) // String[] arr1 = { replace }; // boolean masked = doMaskBackslash(arr1); // result = matcher.replaceAll(arr1[0]); diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java index 0ebb823ec512..77dcf0952885 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java @@ -120,8 +120,8 @@ public class Controller { // } installData.setSystemLanguages(realVector); - } else { // an error occured - log = pkgCommand + "<br><b>Returns: " + returnValue + " An error occured</b><br>"; + } else { // an error occurred + log = pkgCommand + "<br><b>Returns: " + returnValue + " An error occurred</b><br>"; LogManager.addCommandsLogfileComment(log); System.err.println("Error in command: " + pkgCommand); for (int i = 0; i < returnErrorVector.size(); i++) { diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/ExecuteProcess.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/ExecuteProcess.java index d373c6bc72f5..dd16d89a4e4c 100644 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/ExecuteProcess.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/ExecuteProcess.java @@ -34,7 +34,7 @@ public class ExecuteProcess { } static public int executeProcessReturnValue(String[] command) { - // usage of String arrays because of blanks in pathes + // usage of String arrays because of blanks in paths int returnValue = 0; try { @@ -51,7 +51,7 @@ public class ExecuteProcess { } static public int executeProcessReturnVector(String[] command, Vector returnVector, Vector returnErrorVector) { - // usage of String arrays because of blanks in pathes + // usage of String arrays because of blanks in paths int returnValue = -3; try { @@ -79,7 +79,7 @@ public class ExecuteProcess { } static public int executeProcessReturnVectorEnv(String[] command, String[] envP, Vector returnVector, Vector returnErrorVector) { - // usage of String arrays because of blanks in pathes + // usage of String arrays because of blanks in paths int returnValue = -3; try { diff --git a/javaunohelper/com/sun/star/comp/helper/ComponentContext.java b/javaunohelper/com/sun/star/comp/helper/ComponentContext.java index 0c5535cad260..a5d71dbbc5bd 100644 --- a/javaunohelper/com/sun/star/comp/helper/ComponentContext.java +++ b/javaunohelper/com/sun/star/comp/helper/ComponentContext.java @@ -163,7 +163,7 @@ public class ComponentContext implements XComponentContext, XComponent catch (com.sun.star.uno.Exception exc) { if (DEBUG) - System.err.println( "### exception occured on late init of singleton instance \"" + rName + "\": " + exc.getMessage() ); + System.err.println( "### exception occurred on late init of singleton instance \"" + rName + "\": " + exc.getMessage() ); } if (xInstance != null) diff --git a/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java b/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java index d76160397c0e..623402da5c30 100644 --- a/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java +++ b/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java @@ -44,7 +44,7 @@ public class ComponentContextEntry /** Creating a late-init singleton entry component context entry. The second parameter will be ignored and overwritten during - instanciation of the singleton instance. + instantiation of the singleton instance. @param lateInit object factory or service string diff --git a/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java b/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java index 329a103ff97c..90157249be94 100644 --- a/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java +++ b/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java @@ -113,7 +113,7 @@ public class SharedLibraryLoader { /** * Registers the SharedLibraryLoader under a RegistryKey. * <p> - * @return true if the registration was successfull - otherwise false + * @return true if the registration was successful - otherwise false * @param smgr the ServiceManager * @param regKey the root key under that the component should be registered * @see com.sun.star.loader.SharedLibrary @@ -132,7 +132,7 @@ public class SharedLibraryLoader { /** * Registers the SharedLibraryLoader under a RegistryKey. * <p> - * @return true if the registration was successfull - otherwise false + * @return true if the registration was successful - otherwise false * @param libName name of the shared library * @param smgr the ServiceManager * @param regKey the root key under that the component should be registered diff --git a/javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java b/javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java index 44ce6850bc49..d5cf73a1c744 100644 --- a/javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java +++ b/javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java @@ -77,7 +77,7 @@ import com.sun.star.uno.UnoRuntime; * is removed. * ListIterator.set is not supported. * - * A lot of methods resemble those of the to java.util.List interface, allthough + * A lot of methods resemble those of the to java.util.List interface, although * this class does not implement it. However, the list iterators returned, for example by * the listIterator method implement the java.util.ListIterator interface. * Implementing the List interface would mean to support all none - optional methods as @@ -86,9 +86,9 @@ import com.sun.star.uno.UnoRuntime; * list have to cause changes in the main list. This is a problem, since this class is to be * used in a multi-threaded environment. The sub list could work on a copy as the iterators * do, but all the functions which work on an given index could not be properly supported. - * Unfortunatly, the List interface documentation states that all optional methods implemented + * Unfortunately, the List interface documentation states that all optional methods implemented * by the list have to be implemented in the sub list. That would mean to do without all those - * critical methods, allthough they might work well in the "main list" (as opposed to sub list). + * critical methods, although they might work well in the "main list" (as opposed to sub list). */ public class InterfaceContainer implements Cloneable { @@ -348,7 +348,7 @@ public class InterfaceContainer implements Cloneable } /** - * Searches for the first occurence of the given argument, testing + * Searches for the first occurrence of the given argument, testing * for equality using the <tt>equals</tt> method. * * @param elem an object. diff --git a/javaunohelper/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.java b/javaunohelper/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.java index bfae2711e791..0350e4eccc96 100644 --- a/javaunohelper/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.java +++ b/javaunohelper/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.java @@ -113,7 +113,7 @@ public class MultiTypeInterfaceContainer // equals. For example: // Type a= new Type(XInterface.class); // Type b= new Type(XInterface.class); - // Allthough a != b , the map interprets both as being the same. + // Although a != b , the map interprets both as being the same. InterfaceContainer cont= (InterfaceContainer) map.get(ckey); if (cont != null) { diff --git a/javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java b/javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java index 767f09b17ad5..20e997bc809b 100644 --- a/javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java +++ b/javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java @@ -404,7 +404,7 @@ XMultiPropertySet //XPropertySet ---------------------------------------------------- synchronized public void removePropertyChangeListener(String propName, XPropertyChangeListener listener) throws UnknownPropertyException, WrappedTargetException - { // all listeners are automaticly released in a dispose call + { // all listeners are automatically released in a dispose call if (!bInDispose && !bDisposed) { if (propName.length() > 0) @@ -421,7 +421,7 @@ XMultiPropertySet //XPropertySet ---------------------------------------------------- synchronized public void removeVetoableChangeListener(String propName, XVetoableChangeListener listener) throws UnknownPropertyException, WrappedTargetException - {// all listeners are automaticly released in a dispose call + {// all listeners are automatically released in a dispose call if (!bInDispose && !bDisposed) { if (propName.length() > 0) @@ -613,7 +613,7 @@ XMultiPropertySet * @return true - Conversion was successful. <em>newVal</em> contains a valid value for the property. false - * conversion failed for some reason. * @throws com.sun.star.lang.IllegalArgumentException The value provided is unfit for the property. - * @throws com.sun.star.lang.WrappedTargetException - An exception occured during the conversion, that is to be made known + * @throws com.sun.star.lang.WrappedTargetException - An exception occurred during the conversion, that is to be made known * to the caller. */ protected boolean convertPropertyValue(Property property, Object[] newVal, Object[]curVal, Object setVal) @@ -795,7 +795,7 @@ XMultiPropertySet * @param property the property for which the new value is set * @param value the new value for the property. * @throws com.sun.star.lang.WrappedTargetException An exception, which has to be made known to the caller, - * occured during the setting of the value. + * occurred during the setting of the value. */ protected void setPropertyValueNoBroadcast(Property property, Object newVal) throws WrappedTargetException @@ -866,7 +866,7 @@ XMultiPropertySet * a XVetoableChangeListener is meant. For XPropertyChangeListener and XPropertiesChangeListener * it is to be set to false. * - * @param properties Properties wich will be or have been affected. + * @param properties Properties which will be or have been affected. * @param newValues the new values of the properties. * @param oldValues the old values of the properties. * @param bVetoable true means fire to VetoableChangeListener, false means fire to @@ -1054,7 +1054,7 @@ XMultiPropertySet listenerContainer.removeInterface(XPropertiesChangeListener.class, xPropertiesChangeListener); } // XMultiPropertySet ----------------------------------------------------------------------------------- - /** If the array of property names containes an unknown property then it will be ignored. + /** If the array of property names contains an unknown property then it will be ignored. */ public void setPropertyValues(String[] propNames, Object[] values) throws PropertyVetoException, com.sun.star.lang.IllegalArgumentException, com.sun.star.lang.WrappedTargetException { diff --git a/javaunohelper/test/com/sun/star/comp/helper/SharedLibraryLoader_Test.java b/javaunohelper/test/com/sun/star/comp/helper/SharedLibraryLoader_Test.java index 1aff646c17bd..8f62696378f1 100644 --- a/javaunohelper/test/com/sun/star/comp/helper/SharedLibraryLoader_Test.java +++ b/javaunohelper/test/com/sun/star/comp/helper/SharedLibraryLoader_Test.java @@ -67,7 +67,7 @@ public class SharedLibraryLoader_Test { sharedLibraryLoaderFactory = SharedLibraryLoader.getServiceFactory(null, null); System.out.print("Test - "); - System.out.println(sharedLibraryLoaderFactory == null? "failed" : "successfull"); + System.out.println(sharedLibraryLoaderFactory == null? "failed" : "successful"); System.out.println("*******************************************************************"); System.out.println(); @@ -88,7 +88,7 @@ public class SharedLibraryLoader_Test { XImplementationLoader.class, sharedLibraryLoaderFactory.createInstance() ); System.out.print("Test - "); - System.out.println(sharedLibraryLoader == null? "failed" : "successfull"); + System.out.println(sharedLibraryLoader == null? "failed" : "successful"); System.out.println("*******************************************************************"); System.out.println(); @@ -115,7 +115,7 @@ public class SharedLibraryLoader_Test { nativeServiceManager = UnoRuntime.queryInterface( XMultiServiceFactory.class, aSMgrFac.createInstance() ); System.out.print("Test - "); - System.out.println(nativeServiceManager == null? "failed" : "successfull"); + System.out.println(nativeServiceManager == null? "failed" : "successful"); System.out.println("*******************************************************************"); System.out.println(); @@ -141,7 +141,7 @@ public class SharedLibraryLoader_Test { simpleRegistry = UnoRuntime.queryInterface( XSimpleRegistry.class, aRegFac.createInstance() ); System.out.print("Test - "); - System.out.println(simpleRegistry == null? "failed" : "successfull"); + System.out.println(simpleRegistry == null? "failed" : "successful"); System.out.println("*******************************************************************"); System.err.println(); return true; @@ -162,7 +162,7 @@ public class SharedLibraryLoader_Test { result = SharedLibraryLoader.writeRegistryServiceInfo( null, regKey ); System.out.print("Test - "); - System.out.println( result==false ? "failed" : "successfull"); + System.out.println( result==false ? "failed" : "successful"); System.out.println("*******************************************************************"); System.out.println(); return result; diff --git a/javaunohelper/test/com/sun/star/lib/uno/helper/ComponentBase_Test.java b/javaunohelper/test/com/sun/star/lib/uno/helper/ComponentBase_Test.java index 67b8e39a022f..bb6eeb00af93 100644 --- a/javaunohelper/test/com/sun/star/lib/uno/helper/ComponentBase_Test.java +++ b/javaunohelper/test/com/sun/star/lib/uno/helper/ComponentBase_Test.java @@ -79,7 +79,7 @@ public class ComponentBase_Test obj1.nDisposingCalled= 0; obj2.nDisposingCalled= 0; obj3.nDisposingCalled= 0; - comp.dispose(); // allready disposed; + comp.dispose(); // already disposed; r[i++]= obj1.nDisposingCalled == 0; boolean bOk= true; @@ -139,7 +139,7 @@ public class ComponentBase_Test for (int c= 0; c < i; c++) bOk= bOk && r[c]; if (bOk == false) - System.out.println("Errors occured!"); + System.out.println("Errors occurred!"); else System.out.println("No errors."); diff --git a/javaunohelper/test/com/sun/star/lib/uno/helper/Factory_Test.java b/javaunohelper/test/com/sun/star/lib/uno/helper/Factory_Test.java index e2e9540cec50..f51a1a365ca0 100644 --- a/javaunohelper/test/com/sun/star/lib/uno/helper/Factory_Test.java +++ b/javaunohelper/test/com/sun/star/lib/uno/helper/Factory_Test.java @@ -194,7 +194,7 @@ public class Factory_Test } catch (Exception exc) { - System.err.println( ">>>>>>>>>> exc occured: " + exc.toString() ); + System.err.println( ">>>>>>>>>> exc occurred: " + exc.toString() ); exc.printStackTrace(); } System.exit( 0 ); diff --git a/javaunohelper/test/com/sun/star/lib/uno/helper/InterfaceContainer_Test.java b/javaunohelper/test/com/sun/star/lib/uno/helper/InterfaceContainer_Test.java index 2f3cf1b2b49b..290f069fc940 100644 --- a/javaunohelper/test/com/sun/star/lib/uno/helper/InterfaceContainer_Test.java +++ b/javaunohelper/test/com/sun/star/lib/uno/helper/InterfaceContainer_Test.java @@ -979,7 +979,7 @@ public class InterfaceContainer_Test for (int c= 0; c < i; c++) bOk= bOk && r[c]; if ( ! bOk ) - System.out.println("Test finished.\nErrors occured!!!"); + System.out.println("Test finished.\nErrors occurred!!!"); else System.out.println("Test finished. \nNo errors."); diff --git a/javaunohelper/test/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer_Test.java b/javaunohelper/test/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer_Test.java index 85f3ff831d26..17934ecccec1 100644 --- a/javaunohelper/test/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer_Test.java +++ b/javaunohelper/test/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer_Test.java @@ -357,7 +357,7 @@ public class MultiTypeInterfaceContainer_Test for (int c= 0; c < i; c++) bOk= bOk && r[c]; if ( ! bOk ) - System.out.println("Test finished.\nErrors occured!!!"); + System.out.println("Test finished.\nErrors occurred!!!"); else System.out.println("Test finished. \nNo errors."); diff --git a/javaunohelper/test/com/sun/star/lib/uno/helper/PropertySet_Test.java b/javaunohelper/test/com/sun/star/lib/uno/helper/PropertySet_Test.java index 83f3de5a995d..69c092035a6a 100644 --- a/javaunohelper/test/com/sun/star/lib/uno/helper/PropertySet_Test.java +++ b/javaunohelper/test/com/sun/star/lib/uno/helper/PropertySet_Test.java @@ -1075,7 +1075,7 @@ public class PropertySet_Test for (int c= 0; c < i; c++) bOk= bOk && r[c]; if (bOk == false) - System.out.println("Errors occured!"); + System.out.println("Errors occurred!"); else System.out.println("No errors."); return bOk; @@ -1121,7 +1121,7 @@ class TestClass extends PropertySet public Property propEnum = new Property("PropEnum", 14, new Type("com.sun.star.beans.PropertyState", TypeClass.ENUM), (short)0); public com.sun.star.beans.PropertyState enumPropertyState = com.sun.star.beans.PropertyState.DEFAULT_VALUE; - // Test private, protected, package access, Anys as arguments and members, members whith a value + // Test private, protected, package access, Anys as arguments and members, members with a value public Property propBoolB= new Property("PropBoolB", 101, new Type(Boolean.TYPE), (short) 0); protected boolean boolPropB; diff --git a/javaunohelper/test/com/sun/star/lib/uno/helper/WeakBase_Test.java b/javaunohelper/test/com/sun/star/lib/uno/helper/WeakBase_Test.java index 944f8552c190..89685a285d74 100644 --- a/javaunohelper/test/com/sun/star/lib/uno/helper/WeakBase_Test.java +++ b/javaunohelper/test/com/sun/star/lib/uno/helper/WeakBase_Test.java @@ -195,7 +195,7 @@ public class WeakBase_Test for (int c= 0; c < i; c++) bOk= bOk && r[c]; if (bOk == false) - System.out.println("Errors occured!"); + System.out.println("Errors occurred!"); else System.out.println("No errors."); diff --git a/jurt/com/sun/star/comp/servicemanager/ServiceManager.java b/jurt/com/sun/star/comp/servicemanager/ServiceManager.java index 3c233f70f272..d25f2930a7c0 100644 --- a/jurt/com/sun/star/comp/servicemanager/ServiceManager.java +++ b/jurt/com/sun/star/comp/servicemanager/ServiceManager.java @@ -119,7 +119,7 @@ public class ServiceManager implements XMultiServiceFactory, * @return the factory for the <code>ServiceManager</code>. * @param implName the implementation name of the of the service. * Must be equal to <code>com.sun.star.comp.servicemanager.ServicManager</code> - * @param multiFactory refernce of the <code>MultiServiceFactory</code>. This parameter will be ignored. + * @param multiFactory references of the <code>MultiServiceFactory</code>. This parameter will be ignored. * @param regKey the root key of the registry. This parameter will be ignored. */ public static XSingleServiceFactory getServiceFactory( String implName, @@ -158,7 +158,7 @@ public class ServiceManager implements XMultiServiceFactory, * Registers a list of components given by their class names. * <p> * @param newImpls list of the components that should be registered, given by their class names. - * If any exception occured during the registration, the process will be canceled. + * If any exception occurred during the registration, the process will be canceled. * @see com.sun.star.container.XSet */ private void xaddFactories( String[] newImpls ) diff --git a/jurt/com/sun/star/lib/uno/environments/remote/IThreadPool.java b/jurt/com/sun/star/lib/uno/environments/remote/IThreadPool.java index 268d1d48ac75..09438c845557 100644 --- a/jurt/com/sun/star/lib/uno/environments/remote/IThreadPool.java +++ b/jurt/com/sun/star/lib/uno/environments/remote/IThreadPool.java @@ -116,7 +116,7 @@ public interface IThreadPool { /** * Destroys the thread pool and tries - * to join all created threads immediatly. + * to join all created threads immediately. */ public void destroy(); } diff --git a/jurt/com/sun/star/lib/util/UrlToFileMapper.java b/jurt/com/sun/star/lib/util/UrlToFileMapper.java index c72ed91145e2..35b65694de76 100644 --- a/jurt/com/sun/star/lib/util/UrlToFileMapper.java +++ b/jurt/com/sun/star/lib/util/UrlToFileMapper.java @@ -79,7 +79,7 @@ public final class UrlToFileMapper { StringHelper.replace(url.getPath(), '+', "%2B"))) : null; } else { - // If java.net.URI is avaliable, do + // If java.net.URI is available, do // URI uri = new URI(encodedUrl); // try { // return new File(uri); diff --git a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c index 326f9584a5a0..fae40f97bf01 100644 --- a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c +++ b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c @@ -342,7 +342,7 @@ JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI enum { START = 0, INMONITOR, - AQUIRED, + ACQUIRED, GOTBUFFER }; @@ -374,9 +374,9 @@ JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI goto error; } - /* aquire pipe */ + /* acquire pipe */ osl_acquirePipe( npipe ); - state = AQUIRED; + state = ACQUIRED; /* allocate a buffer */ if ((nbuff = malloc(len)) == NULL) @@ -424,7 +424,7 @@ JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI /* done */ free(nbuff); - if ( state >= AQUIRED ) + if ( state >= ACQUIRED ) osl_releasePipe( npipe ); /* exit monitor */ diff --git a/jvmfwk/inc/jvmfwk/framework.h b/jvmfwk/inc/jvmfwk/framework.h index 89bd7bbacb5e..cb3a0a0f8c07 100644 --- a/jvmfwk/inc/jvmfwk/framework.h +++ b/jvmfwk/inc/jvmfwk/framework.h @@ -140,7 +140,7 @@ extern "C" { -env:UNO_JAVA_JFW_PLUGIN=file:\\solver\\bin\\sunjavaplugin.dll -register .... </p> <p>Additionall parameters for the Java VM can be provided. For every parameter - a seperate bootstrap parameter must be specified. The names are + a separate bootstrap parameter must be specified. The names are <code>UNO_JAVA_JFW_PARAMETER_X</code>, where X is 1,2, .. n. For example:</p> <p> regcomp -env:UNO_JAVA_JFW_PARAMETER_1=-Xdebug @@ -311,7 +311,7 @@ void SAL_CALL jfw_freeJavaInfo(JavaInfo *pInfo); <code>rtl_uString</code> members is determined by the respective comparison function (see <code>rtl::OUString::equals</code>). - Similiarly the equality of the <code>sal_Sequence</code> is + Similarly the equality of the <code>sal_Sequence</code> is also determined by a comparison function (see <code>rtl::ByteSequence::operator ==</code>). </p> <p> @@ -330,8 +330,8 @@ sal_Bool SAL_CALL jfw_areEqualJavaInfo( /** determines if a Java Virtual Machine is already running. <p>As long as the the office and the JREs only support one - Virtual Machine per process the Java settings, particulary the - selected Java, are not effective immediatly after changing when + Virtual Machine per process the Java settings, particularly the + selected Java, are not effective immediately after changing when a VM has already been running. That is, if a JRE A was used to start a VM and then a JRE B is selected, then JRE B will only be used after a restart of the office.</p> @@ -415,7 +415,7 @@ javaFrameworkError SAL_CALL jfw_isVMRunning(sal_Bool *bRunning); */ javaFrameworkError SAL_CALL jfw_findAndSelectJRE(JavaInfo **pInfo); -/** provides information about all availabe JRE installations. +/** provides information about all available JRE installations. <p>The function determines dynamically what JREs are available. It uses the plug-in libraries to provide lists of available <code>JavaInfo</code> diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx index f1bcabecfd11..c92231e14de6 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx @@ -71,12 +71,12 @@ bool SunVersion::init(const char *szVersion) if ( ! szVersion || strlen(szVersion) == 0) return false; - //first get the major,minor,maintainance + //first get the major,minor,maintenance const char * pLast = szVersion; const char * pCur = szVersion; //pEnd point to the position after the last character const char * pEnd = szVersion + strlen(szVersion); - // 0 = major, 1 = minor, 2 = maintainance, 3 = update + // 0 = major, 1 = minor, 2 = maintenance, 3 = update int nPart = 0; // position within part beginning with 0 int nPartPos = 0; @@ -95,7 +95,7 @@ bool SunVersion::init(const char *szVersion) else if ( ! (nPartPos == 0) // prevents: ".4.1", "..1", part must start with digit && ( - //seperators after maintainance (1.4.1_01, 1.4.1-beta, or1.4.1 + //seperators after maintenance (1.4.1_01, 1.4.1-beta, or1.4.1 ((pCur == pEnd || *pCur == '_' || *pCur == '-') && (nPart == 2 )) || //separators between major-minor and minor-maintainance @@ -268,7 +268,7 @@ bool SunVersion::operator > (const SunVersion& ver) const if( &ver == this) return false; - //compare major.minor.maintainance + //compare major.minor.maintenance for( int i= 0; i < 4; i ++) { // 1.4 > 1.3 diff --git a/jvmfwk/plugins/sunmajor/pluginlib/util.cxx b/jvmfwk/plugins/sunmajor/pluginlib/util.cxx index 6520d3e8a0c5..e8f048df8c27 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/util.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/util.cxx @@ -572,7 +572,7 @@ bool getJavaInfoFromRegistry(const wchar_t* szRegKey, // Get the path for the runtime lib if(RegQueryValueExW(hKey, L"JavaHome", 0, &dwType, (unsigned char*) szTmpPath, &dwTmpPathLen) == ERROR_SUCCESS) { - // There can be several version entries refering with the same JavaHome,e.g 1.4 and 1.4.1 + // There can be several version entries referring with the same JavaHome,e.g 1.4 and 1.4.1 OUString usHome((sal_Unicode*) szTmpPath); // check if there is already an entry with the same JavaHomeruntime lib // if so, we use the one with the more accurate version diff --git a/jvmfwk/source/elements.cxx b/jvmfwk/source/elements.cxx index 675b52d7579a..4113cf00b920 100644 --- a/jvmfwk/source/elements.cxx +++ b/jvmfwk/source/elements.cxx @@ -756,7 +756,7 @@ jfw::FileStatus NodeJava::checkSettingsFileStatus() const { // This //function may be called multiple times when a java is started. - //If the expiretime is too small then we may loop because everytime + //If the expiretime is too small then we may loop because every time //the file is deleted and we need to search for a java again. if (INSTALL == m_layer) { diff --git a/jvmfwk/source/elements.hxx b/jvmfwk/source/elements.hxx index 0176b3f877ab..cbbc278d9c48 100644 --- a/jvmfwk/source/elements.hxx +++ b/jvmfwk/source/elements.hxx @@ -128,7 +128,7 @@ private: /** creates settings file and fills it with default values. When this function is called then it creates the - settings file at the possition determined by the bootstrap parameters + settings file at the position determined by the bootstrap parameters (UNO_JAVA_JFW_USER_DATA, UNO_JAVA_JFW_SHARED_DATA, UNO_JAVA_JFW_INSTALL_DATA) and m_layer, unless the file already exists (see createSettingsDocument). @@ -144,7 +144,7 @@ private: /** returns the system path to the data file which is to be used. The value depends on - the the member m_layer and the bootstrap paramters UNO_JAVA_JFW_USER_DATA, + the the member m_layer and the bootstrap parameters UNO_JAVA_JFW_USER_DATA, UNO_JAVA_JFW_SHARED_DATA and UNO_JAVA_JFW_INSTALL_DATA which this may be. */ ::rtl::OString getSettingsPath() const; diff --git a/jvmfwk/source/fwkutil.hxx b/jvmfwk/source/fwkutil.hxx index 2758db7142b2..4d13464fb390 100644 --- a/jvmfwk/source/fwkutil.hxx +++ b/jvmfwk/source/fwkutil.hxx @@ -116,7 +116,7 @@ enum FileStatus one of the values of FileStatus. @exception - Errors occured during determining if the file exists + Errors occurred during determining if the file exists */ FileStatus checkFileURL(const rtl::OUString & path); diff --git a/l10ntools/inc/wtranode.hxx b/l10ntools/inc/wtranode.hxx index d1f2267820e0..b7f1f8571799 100644 --- a/l10ntools/inc/wtranode.hxx +++ b/l10ntools/inc/wtranode.hxx @@ -45,7 +45,7 @@ const BRANCH_T C_NR_OF_BRANCHES = 34; /** @task This is a node of the parsing-tree which implements the fuctionality of class WordTransTree. - WordTransTree is dependant of this class, but NOT the other way! + WordTransTree is dependent of this class, but NOT the other way! **/ class WTT_Node // WordTransTree-Node { diff --git a/l10ntools/inc/wtratree.hxx b/l10ntools/inc/wtratree.hxx index 03309a9dbe4d..2aa7de715502 100644 --- a/l10ntools/inc/wtratree.hxx +++ b/l10ntools/inc/wtratree.hxx @@ -45,7 +45,7 @@ class WTT_Node; /** @task This class implements the functionality, that class WordTransformer offers. - WordTransformer is dependant of this class, but NOT the other way! + WordTransformer is dependent of this class, but NOT the other way! **/ class WordTransTree { @@ -118,7 +118,7 @@ class WordTransTree // Data which are valid only after a completed call to TransformNextToken() E_Result eCurResult; - u_char cCurHotkey; // Letter wich is used as hotkey + u_char cCurHotkey; // Letter which is used as hotkey u_char cCurHotkeySign; // Letter which is used to assign hotkey ('~'or '&') . }; diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Convert.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Convert.java index 37f6b879395a..cdc28d5926cb 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Convert.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Convert.java @@ -173,10 +173,10 @@ public class Convert { OutputHandler.closeAll(); } catch(Exception e){ - System.out.print("An EXCEPTION occured, please check your commad line settings \n"+e.getMessage()); + System.out.print("An EXCEPTION occurred, please check your commad line settings \n"+e.getMessage()); System.exit(-1); }catch(Throwable t){ - System.out.print("A FATAL ERROR occured, please check your commad line settings \n"+t.getMessage()); + System.out.print("A FATAL ERROR occurred, please check your commad line settings \n"+t.getMessage()); System.exit(-1); } @@ -451,7 +451,7 @@ public class Convert { OutputHandler.out("ERROR: "+e.getMessage()); System.exit(-1); } catch (Throwable t){ - System.out.print("An Error occured while parsing the command line,\n please check your commad line settings.\n "+t.getMessage()); + System.out.print("An Error occurred while parsing the command line,\n please check your commad line settings.\n "+t.getMessage()); System.exit(-1); } diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ConverterException.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ConverterException.java index 8fde3cd874c1..5c1e5a5336a1 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ConverterException.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ConverterException.java @@ -22,7 +22,7 @@ /* * a simple exception - * just to seperate + * just to separate * it from other * exceptions */ diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/FileMaker.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/FileMaker.java index e3991f7c6cb5..859c8f1f0f77 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/FileMaker.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/FileMaker.java @@ -41,7 +41,7 @@ import java.io.IOException; public final class FileMaker { /** - * Create a new file if overwriting is not alowed + * Create a new file if overwriting is not allowed * ask if existing files should be overwritten * * @param fileName the files name to overwrite diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIWriter.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIWriter.java index acf0ce473c73..269cc99c76eb 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIWriter.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIWriter.java @@ -33,7 +33,7 @@ import com.sun.star.tooling.languageResolver.LanguageResolver.LanguageResolvingE */ public class GSIWriter extends DataWriter { /** - * The seperator used to seperate GSI columns + * The seperator used to separate GSI columns */ final String seperator=new String("($$)"); @@ -155,16 +155,16 @@ public class GSIWriter extends DataWriter { else { // put them together for output buffer.append(this.blockNr); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append(ResTypeResolver.getExternKey(resType)); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append(this.sourceLanguage); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append("int"); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append(outData.get(resString)); @@ -189,16 +189,16 @@ public class GSIWriter extends DataWriter { else { // put them together for output buffer.append(this.blockNr); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append(ResTypeResolver.getExternKey(resType)); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append(this.targetLanguage); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append("ext"); - // seperate the fields with ($$) + // separate the fields with ($$) buffer.append(this.seperator); buffer.append(outData.get(resString)); diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIandSDFMerger.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIandSDFMerger.java index b6a8b055d542..b98cdd49edad 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIandSDFMerger.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIandSDFMerger.java @@ -137,7 +137,7 @@ public class GSIandSDFMerger extends SDFReader { }else{ // skip=true; // -// // we cant match this gsi block to the current sdf block +// // we can't match this gsi block to the current sdf block // try matching the next sdf block with this gsi line dontLoadGSI=true; } diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFReader.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFReader.java index ab27e894450d..94ee4ad03ee2 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFReader.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFReader.java @@ -581,7 +581,7 @@ public class SDFReader extends DataReader { if ((splitLine = line.split("\t")).length == 15) return splitLine; else - //an error occured + //an error occurred return null; } diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFWriter.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFWriter.java index a49b2cbf06de..f7fb5643df2c 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFWriter.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFWriter.java @@ -38,7 +38,7 @@ import java.util.Map; */ public class SDFWriter extends DataWriter { /** - * the seperator the seperate columns + * the seperator the separate columns */ final String seperator=new String("\t"); /** @@ -109,7 +109,7 @@ public class SDFWriter extends DataWriter { // put them together for output buffer.append(outData.get(sourceLineNames[i])); if(i!=sourceLineNames.length-1) { - // seperate the fields with tab + // separate the fields with tab buffer.append(seperator); }else{ // this line is full @@ -125,7 +125,7 @@ public class SDFWriter extends DataWriter { // put them together for output buffer.append(outData.get(targetLineNames[i])); if(i!=targetLineNames.length-1) { - // seperate the fields with tab + // separate the fields with tab buffer.append(seperator); }else{ // this line is full diff --git a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFWriter.java b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFWriter.java index be1e87d22307..5de18104d0a5 100644 --- a/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFWriter.java +++ b/l10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFWriter.java @@ -492,9 +492,9 @@ public class XLIFFWriter extends DataWriter { return "<header></header>\n"; } /** - * Create the begining of the line holding the body tag of this XIFFFile + * Create the beginning of the line holding the body tag of this XIFFFile * - * @return a string with the begining of the body tag of this XIFFFile + * @return a string with the beginning of the body tag of this XIFFFile */ private String openBodyTag() { return "\t\t<body>\n"; diff --git a/l10ntools/scripts/localize.pl b/l10ntools/scripts/localize.pl index 811ea6eae0a8..9e0db396c1b0 100755 --- a/l10ntools/scripts/localize.pl +++ b/l10ntools/scripts/localize.pl @@ -1036,7 +1036,7 @@ sub usage{ print STDERR " -f <sdffile> To split a big SDF file into particles\n"; print STDERR " <outputfile> To collect and join all particles to one big file\n"; print STDERR " -s <sourceroot> Path to the modules, if no \$SRC_ROOT is set\n"; - print STDERR " -l ( all | <isocode> | <isocode>=fallback ) comma seperated languages\n"; + print STDERR " -l ( all | <isocode> | <isocode>=fallback ) comma separated languages\n"; print STDERR " -d Use default date in extracted sdf file\n"; print STDERR " -c Create needed directories\n"; print STDERR " -g Sort sdf file before mergeing\n"; diff --git a/l10ntools/scripts/localize_old.pl b/l10ntools/scripts/localize_old.pl index 17c63272d048..8de7f5877adf 100755 --- a/l10ntools/scripts/localize_old.pl +++ b/l10ntools/scripts/localize_old.pl @@ -1031,7 +1031,7 @@ sub usage{ print STDERR " -f <sdffile> To split a big SDF file into particles\n"; print STDERR " <outputfile> To collect and join all particles to one big file\n"; print STDERR " -s <sourceroot> Path to the modules, if no \$SRC_ROOT is set\n"; - print STDERR " -l ( all | <isocode> | <isocode>=fallback ) comma seperated languages\n"; + print STDERR " -l ( all | <isocode> | <isocode>=fallback ) comma separated languages\n"; print STDERR " -d Use default date in extracted sdf file\n"; print STDERR " -v Verbose\n"; print STDERR "\nExample:\n"; diff --git a/l10ntools/source/cfgmerge.cxx b/l10ntools/source/cfgmerge.cxx index bab8d714ae8e..0f796b1f920e 100644 --- a/l10ntools/source/cfgmerge.cxx +++ b/l10ntools/source/cfgmerge.cxx @@ -246,7 +246,7 @@ extern FILE *GetCfgFile() aEntry += DirEntry( sPrjRoot ); ByteString sPrjEntry( aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US ); - // create file name, beginnig with project root + // create file name, beginning with project root // (e.g.: source\ui\src\menue.src) // printf("sFullEntry = %s\n",sFullEntry.GetBuffer()); sActFileName = sFullEntry.Copy( sPrjEntry.Len() + 1 ); diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx index 04b23959d646..0ecca7d9231d 100644 --- a/l10ntools/source/export.cxx +++ b/l10ntools/source/export.cxx @@ -263,7 +263,7 @@ extern FILE *GetNextFile() aEntry += DirEntry( sPrjRoot ); ByteString sPrjEntry( aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US ); - // create file name, beginnig with project root + // create file name, beginning with project root // (e.g.: source\ui\src\menue.src) sActFileName = sFullEntry.Copy( sPrjEntry.Len() + 1 ); diff --git a/l10ntools/source/filter/merge/FCFGMerge.cfg b/l10ntools/source/filter/merge/FCFGMerge.cfg index eaba83610bd7..c7f4e5b7231e 100644 --- a/l10ntools/source/filter/merge/FCFGMerge.cfg +++ b/l10ntools/source/filter/merge/FCFGMerge.cfg @@ -32,7 +32,7 @@ loglevel = 2 #************************************************ -# This extension is used for all XML files. It doesnt +# This extension is used for all XML files. It doesn't # matter if its used for reading fragments or writing # XML packages. # Must be given without any additional signes like "." @@ -44,7 +44,7 @@ loglevel = 2 extension_xcu=xcu #************************************************ -# This extension is used for all Package files. It doesnt +# This extension is used for all Package files. It doesn't # matter if its used for reading such files or writing # it. # Must be given without any additional signes like "." @@ -91,7 +91,7 @@ subdir_contenthandlers = contenthandlers #************************************************ # This delimiter is used to split every # item list of the package configuration files -# (which are temp. created by the make proccess) +# (which are temp. created by the make process) # into its tokens. # # [REQUIRED] diff --git a/l10ntools/source/filter/merge/FCFGMerge.java b/l10ntools/source/filter/merge/FCFGMerge.java index 6600733d6635..9804181bb11f 100644 --- a/l10ntools/source/filter/merge/FCFGMerge.java +++ b/l10ntools/source/filter/merge/FCFGMerge.java @@ -115,7 +115,7 @@ public class FCFGMerge sOut.append("parameters:\n" ); sOut.append("\tcfg=<file name>\n" ); sOut.append("\t\tmust point to a system file, which contains\n" ); - sOut.append("\t\tall neccessary configuration data for the merge process.\n"); + sOut.append("\t\tall necessary configuration data for the merge process.\n"); sOut.append("\n\tFurther cou can specify every parameter allowed in the\n" ); sOut.append("\n\tconfig file as command line parameter too, to overwrite\n" ); sOut.append("\n\tthe value from the file.\n" ); diff --git a/l10ntools/source/filter/merge/Merger.java b/l10ntools/source/filter/merge/Merger.java index 5cb2b40f2e75..8f3e47cdc08c 100644 --- a/l10ntools/source/filter/merge/Merger.java +++ b/l10ntools/source/filter/merge/Merger.java @@ -199,7 +199,7 @@ public class Merger m_aCfg.getString (PROP_XMLPACKAGE ), m_aCfg.getBoolean(PROP_LANGUAGEPACK, false))); - // counts all transfered fragments + // counts all transferred fragments // Can be used later to decide, if a generated package file // contains "nothing"! int nItemCount = 0; @@ -307,7 +307,7 @@ public class Merger // special mode for generating language packs. // In such case we must live with some missing fragment files. - // Reason behind; Not all filters are realy localized. + // Reason behind; Not all filters are really localized. // But we dont use a different fragment list. We try to locate // any fragment file in its language-pack version ... boolean bHandleLanguagePacks = m_aCfg.getBoolean(PROP_LANGUAGEPACK, false); @@ -340,7 +340,7 @@ public class Merger } // copy file content of original fragment - // Note: A FileNotFoundException will be thrown automaticly by the + // Note: A FileNotFoundException will be thrown automatically by the // used reader objects. Let it break this method too. Our calli is interested // on such errors :-) m_aLog.setDetailedInfo("merge fragment \""+aFragment.getPath()+"\" ..."); diff --git a/l10ntools/source/filter/utils/Cache.java b/l10ntools/source/filter/utils/Cache.java index be1b56f0ddb7..9e6feff30a4c 100644 --- a/l10ntools/source/filter/utils/Cache.java +++ b/l10ntools/source/filter/utils/Cache.java @@ -67,7 +67,7 @@ public class Cache public static final int FORMAT_60 = 0; /** identify the configuration format of an office 6.y. - * Properties are realy xml tags again. */ + * Properties are really xml tags again. */ public static final int FORMAT_6Y = 1; /** identify the configuration format which is used inside @@ -336,7 +336,7 @@ public class Cache * * @param aXML * must be a system file of a suitable XML file, which - * include all neccessary type/filter items. + * include all necessary type/filter items. * * @param nFormat * identifies the format of the specified xml file, @@ -605,7 +605,7 @@ public class Cache * specify the file encoding for the generated xml file. * * @throws [java.lang.Exception] - * if something fail during convertion. + * if something fail during conversion. */ public synchronized void toXML(java.io.File aXML , int nFormat , @@ -700,7 +700,7 @@ public class Cache * contains the properties in the requested format. * * @throws [java.lang.Exception - * if something fail during convertion. + * if something fail during conversion. */ private static java.util.HashMap convertTypePropsToExternal(java.util.HashMap aMap , int nFormat) @@ -800,7 +800,7 @@ public class Cache * contains the properties in the requested format. * * @throws [java.lang.Exception - * if something fail during convertion. + * if something fail during conversion. */ private static java.util.HashMap convertFilterPropsToExternal(java.util.HashMap aMap , int nFormat) @@ -855,10 +855,10 @@ public class Cache //----------------------------------- case FORMAT_6Y : { - // supress "Order" property. + // suppress "Order" property. // Will be moved to type entries in 6.y version! - // supress "UIName" property. + // suppress "UIName" property. // Only type entries will be localized in 6.y version! /* TODO make it configurable :-) */ aResultMap.put(PROPNAME_UINAME , aMap.get(PROPNAME_UINAME )); @@ -903,7 +903,7 @@ public class Cache * contains the properties in the requested format. * * @throws [java.lang.Exception - * if something fail during convertion. + * if something fail during conversion. */ private static java.util.HashMap convertDetectServicePropsToExternal(java.util.HashMap aMap , int nFormat) @@ -1009,7 +1009,7 @@ public class Cache /** converts a type property set (using an external format) to * our internal cache format. * - * Especialy the data format string will be expanded + * Especially the data format string will be expanded * to its real properties. * * Schema: @@ -1051,7 +1051,7 @@ public class Cache // generate new property "DetectService" // Every type know its detector diretcly from now. No search - // will be neccessary any longer. + // will be necessary any longer. aResultMap.put(PROPNAME_DETECTSERVICE, new java.lang.String()); // analyze the Data property of the original map @@ -1132,7 +1132,7 @@ public class Cache /** converts a filter property set (using an external format) to * our internal cache format. * - * Especialy the data format string will be expanded + * Especially the data format string will be expanded * to its real properties. * * Schema: @@ -1783,7 +1783,7 @@ public class Cache { // last token was not a delimiter - new one is such delim // => ignore this delimiter - but save the information, that - // it occured + // it occurred bLastWasDelim = true; } } @@ -1939,7 +1939,7 @@ public class Cache java.lang.String sType = (java.lang.String)aIt1.next(); java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sType); if (aType == null) - throw new java.lang.Exception("type ["+sType+"] dos not exist realy?!"); + throw new java.lang.Exception("type ["+sType+"] dos not exist really?!"); if ( (!aType.containsKey(PROPNAME_MEDIATYPE )) || @@ -1951,7 +1951,7 @@ public class Cache (!aType.containsKey(PROPNAME_UINAME )) ) { - throw new java.lang.Exception("Type \""+sType+"\" does not contain all neccessary properties for a 6.0/6.Y format."); + throw new java.lang.Exception("Type \""+sType+"\" does not contain all necessary properties for a 6.0/6.Y format."); } if ( @@ -1973,7 +1973,7 @@ public class Cache (!aType.containsKey(PROPNAME_DETECTSERVICE )) ) { - throw new java.lang.Exception("Type \""+sType+"\" does not contain all neccessary properties for a 6.Y format."); + throw new java.lang.Exception("Type \""+sType+"\" does not contain all necessary properties for a 6.Y format."); } if (((java.lang.Integer)aType.get(PROPNAME_UIORDER)).intValue() < 0) @@ -2023,7 +2023,7 @@ public class Cache java.lang.String sFilter = (java.lang.String)aIt1.next(); java.util.HashMap aFilter = (java.util.HashMap)m_lFilters.get(sFilter); if (aFilter == null) - throw new java.lang.Exception("filter ["+sFilter+"] dos not exist realy?!"); + throw new java.lang.Exception("filter ["+sFilter+"] dos not exist really?!"); if ( (!aFilter.containsKey(PROPNAME_DOCUMENTSERVICE )) || @@ -2036,7 +2036,7 @@ public class Cache (!aFilter.containsKey(PROPNAME_USERDATA )) ) { - throw new java.lang.Exception("Filter \""+sFilter+"\" does not contain all neccessary properties for a 6.0/6.Y format."); + throw new java.lang.Exception("Filter \""+sFilter+"\" does not contain all necessary properties for a 6.0/6.Y format."); } if (((java.lang.Integer)aFilter.get(PROPNAME_FLAGS)).intValue() < 1) @@ -2052,7 +2052,7 @@ public class Cache (!aFilter.containsKey(PROPNAME_UINAME)) ) { - throw new java.lang.Exception("Filter \""+sFilter+"\" does not contain all neccessary properties for a 6.0 format."); + throw new java.lang.Exception("Filter \""+sFilter+"\" does not contain all necessary properties for a 6.0 format."); } if (((java.lang.Integer)aFilter.get(PROPNAME_ORDER)).intValue() < 0) @@ -2112,7 +2112,7 @@ public class Cache java.util.HashMap aFilter = (java.util.HashMap)m_lFilters.get(sFilter); // remove the "graphic helper filters" used by draw and impress - // They dont have any valid document service name set and cant be handled + // They dont have any valid document service name set and can't be handled // by our generic FrameLoader! // They must be moved to her own configuration ... diff --git a/l10ntools/source/filter/utils/ConfigHelper.java b/l10ntools/source/filter/utils/ConfigHelper.java index 9a35201c4417..855eb52ff8a9 100644 --- a/l10ntools/source/filter/utils/ConfigHelper.java +++ b/l10ntools/source/filter/utils/ConfigHelper.java @@ -66,7 +66,7 @@ public class ConfigHelper extends java.util.Properties * * @throws [Exception] * in case the command line contains an unknown - * schema for specifiying parameters or the + * schema for specifying parameters or the * specified property file does not exists * or seem to be corrupted. */ @@ -245,7 +245,7 @@ public class ConfigHelper extends java.util.Properties * * @param bTrim * if its set to true, trailing and leading whitespace - * characters will be ommited. + * characters will be omitted. * * @param bDecode * if its set to TRUE all liste items will be diff --git a/l10ntools/source/filter/utils/FileHelper.java b/l10ntools/source/filter/utils/FileHelper.java index 21c65c4b0b99..64dc5d71b954 100644 --- a/l10ntools/source/filter/utils/FileHelper.java +++ b/l10ntools/source/filter/utils/FileHelper.java @@ -34,7 +34,7 @@ import java.util.*; /** * It collects some static helper functons to handle file system specific problems. - * Sometimes it's neccessary to convert URL from/to system pathes; + * Sometimes it's necessary to convert URL from/to system paths; * or from string notation to structural versions (e.g. com.sun.star.util.URL). * And sometimes java had another notation then the office it has. * Further it provides functionality to work easiear with the java.io.File class of java. @@ -47,7 +47,7 @@ public class FileHelper /** * Because the office need URLs for loading/saving documents - * we must convert used system pathes. + * we must convert used system paths. * And java use another notation for file URLs ... correct it. * * @param aSystemPath @@ -92,7 +92,7 @@ public class FileHelper /** * The same as getFileURLFromSystemPath() before but uses string parameter instead - * of a java.io.File type. It exist to supress converting of neccessary parameters in the + * of a java.io.File type. It exist to suppress converting of necessary parameters in the * outside code. But of course getFileURLFromSystemPath(File) will be a little bit faster * then this method ... * @@ -160,7 +160,7 @@ public class FileHelper /** * The same as getURLWithProtocolFromSystemPath() before but uses string parameter instead - * of a java.io.File types. It exist to supress converting of neccessary parameters in the + * of a java.io.File types. It exist to suppress converting of necessary parameters in the * outside code. But of course getURLWithProtocolFromSystemPath(File,File,String) will be * a little bit faster then this method ... * diff --git a/l10ntools/source/filter/utils/XMLHelper.java b/l10ntools/source/filter/utils/XMLHelper.java index 3074ed182923..9b877f35fd94 100644 --- a/l10ntools/source/filter/utils/XMLHelper.java +++ b/l10ntools/source/filter/utils/XMLHelper.java @@ -33,7 +33,7 @@ import java.io.*; /** * It provides some constant values and some static helper routines - * which are neccessary to work with a xml file - especialy + * which are necessary to work with a xml file - especially * the filter configuration. * * @@ -92,8 +92,8 @@ public class XMLHelper private static final java.lang.String[] DELIMS = {" ", ",", ";", ".", ":", "-", "_", "#", "'", "+", "*", "~", "=", "?"}; /** index of the default separator inside list DELIMS. - * Its neccessary to know such default separator; because it can - * be supressed as xml attribute of the corresponding value tag. */ + * Its necessary to know such default separator; because it can + * be suppressed as xml attribute of the corresponding value tag. */ private static final int DEFAULT_SEPARATOR = 0; //___________________________________________ @@ -102,7 +102,7 @@ public class XMLHelper * return a property set of all found sub nodes. * * Such properties are organized as [name, value] pairs. - * The type of a xml node will be detected automaticly. + * The type of a xml node will be detected automatically. * Following types are supported: * xs:int => java.lang.Integer * xs:bool => java.lang.Boolean @@ -291,7 +291,7 @@ public class XMLHelper * the xml string representation. * * @throws [java.lang.Exception] - * if anything during convertion fill fail. + * if anything during conversion fill fail. */ public static java.lang.String convertPropSetToXML(java.util.HashMap aPropSet , int nPrettyTabs) @@ -386,7 +386,7 @@ public class XMLHelper * the xml string representation. * * @throws [java.lang.Exception] - * if anything during convertion fill fail. + * if anything during conversion fill fail. */ private static java.lang.String convertSimpleObjectToXML(java.lang.String sName , java.lang.Object aValue , @@ -454,7 +454,7 @@ public class XMLHelper * the xml string representation. * * @throws [java.lang.Exception] - * if anything during convertion fill fail. + * if anything during conversion fill fail. */ private static java.lang.String convertListToXML(java.lang.String sName , java.util.Vector aValue , @@ -498,7 +498,7 @@ public class XMLHelper sValue = encodeHTMLSigns(sValue); // append item with default separator, which isn a valid separator at all - // But supress adding of the separator if last element is reached. + // But suppress adding of the separator if last element is reached. sValBuff.append(sValue); if (i<(c-1)) sValBuff.append("\n"); @@ -559,7 +559,7 @@ public class XMLHelper * the xml string representation. * * @throws [java.lang.Exception] - * if anything during convertion fill fail. + * if anything during conversion fill fail. */ private static java.lang.String convertLocalizedValueToXML(java.lang.String sName , java.util.HashMap aValue , @@ -570,7 +570,7 @@ public class XMLHelper int c = aValue.size(); if (c < 1) - throw new java.lang.Exception("Cant detect type of localized values. Because the given list is empty."); + throw new java.lang.Exception("Can't detect type of localized values. Because the given list is empty."); for (int t=0; t<nPrettyTabs; ++t) sXML.append("\t"); @@ -644,7 +644,7 @@ public class XMLHelper return null; } - // may it supports attributes in general ... but doesn't have anyone realy. + // may it supports attributes in general ... but doesn't have anyone really. org.w3c.dom.NamedNodeMap lAttribs = aNode.getAttributes(); if (lAttribs==null) { diff --git a/l10ntools/source/help/HelpLinker.cxx b/l10ntools/source/help/HelpLinker.cxx index ea28f111116d..a68e1fd52fc1 100644 --- a/l10ntools/source/help/HelpLinker.cxx +++ b/l10ntools/source/help/HelpLinker.cxx @@ -865,7 +865,7 @@ void HelpLinker::main( std::vector<std::string> &args, { //No extension mode and extension mode using commandline //!extsource.empty indicates extension mode using commandline - // -idxcaption paramter is required + // -idxcaption parameter is required std::stringstream aStrStream; aStrStream << "no index caption stylesheet given" << std::endl; throw HelpProcessingException( HELPPROCESSING_GENERAL_ERROR, aStrStream.str() ); @@ -889,7 +889,7 @@ void HelpLinker::main( std::vector<std::string> &args, { //No extension mode and extension mode using commandline //!extsource.empty indicates extension mode using commandline - // -idxcontent paramter is required + // -idxcontent parameter is required std::stringstream aStrStream; aStrStream << "no index content stylesheet given" << std::endl; throw HelpProcessingException( HELPPROCESSING_GENERAL_ERROR, aStrStream.str() ); diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx index ac63bff7aa05..b72ab28e387c 100644 --- a/l10ntools/source/merge.cxx +++ b/l10ntools/source/merge.cxx @@ -361,7 +361,7 @@ void MergeDataFile::InsertEntry( pData->Insert( rPFO , pFEntrys ); } - // finaly insert the cur string + // finally insert the cur string pFEntrys->InsertEntry( nLANG , rTEXT, rQHTEXT, rTITLE ); } diff --git a/l10ntools/source/tagtest.cxx b/l10ntools/source/tagtest.cxx index 572f330bcd3b..a246bf544869 100644 --- a/l10ntools/source/tagtest.cxx +++ b/l10ntools/source/tagtest.cxx @@ -1246,7 +1246,7 @@ void TokenParser::TagRef() match( aTag, TAG_ENDGRAPHIC ); else match( aTag, TAG_VERSIONEND ); - // don't reset since alowed only once per paragraph + // don't reset since allowed only once per paragraph // RESET_FLAG( nActiveRefTypes, TAG_NOGROUP( aThisToken ) ); } else diff --git a/l10ntools/source/xmlparse.cxx b/l10ntools/source/xmlparse.cxx index a843eda1ffaf..1ee33cfb4b27 100644 --- a/l10ntools/source/xmlparse.cxx +++ b/l10ntools/source/xmlparse.cxx @@ -1246,7 +1246,7 @@ XMLFile *SimpleXMLParser::Execute( SvMemoryStream *pStream ) if ( pXMLFile->GetName().Len()) { aErrorInformation.sMessage = String::CreateFromAscii( "File " ); aErrorInformation.sMessage += pXMLFile->GetName(); - aErrorInformation.sMessage += String::CreateFromAscii( " parsed succesfully" ); + aErrorInformation.sMessage += String::CreateFromAscii( " parsed successfully" ); } else aErrorInformation.sMessage = String::CreateFromAscii( "XML-File parsed successfully" ); diff --git a/l10ntools/source/xrmmerge.cxx b/l10ntools/source/xrmmerge.cxx index 79982afd8b05..222058446eb0 100644 --- a/l10ntools/source/xrmmerge.cxx +++ b/l10ntools/source/xrmmerge.cxx @@ -235,7 +235,7 @@ extern FILE *GetXrmFile() aEntry += DirEntry( sPrjRoot ); ByteString sPrjEntry( aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US ); - // create file name, beginnig with project root + // create file name, beginning with project root // (e.g.: source\ui\src\menue.src) sActFileName = sFullEntry.Copy( sPrjEntry.Len() + 1 ); diff --git a/libtextcat/libtextcat-2.2.patch b/libtextcat/libtextcat-2.2.patch index cae6bf7319ba..c5cf405d864f 100644 --- a/libtextcat/libtextcat-2.2.patch +++ b/libtextcat/libtextcat-2.2.patch @@ -726,7 +726,7 @@ + while(1) { - const char *q = p; -+ const char *q = &p[pointer]; /*[modified] previously p++ above (for(;;p++)) now, it's pointer wich is increased so we have to get the new pointer on the buffer*/ ++ const char *q = &p[pointer]; /*[modified] previously p++ above (for(;;p++)) now, it's pointer which is increased so we have to get the new pointer on the buffer*/ char *m = n; /*** First char may be an underscore ***/ @@ -759,7 +759,7 @@ } } + -+ pointer = nextcharstart(p,pointer); /*[modified] p[pointer] must point on the next start of symbol, but whith utf next start is not surely next char*/ ++ pointer = nextcharstart(p,pointer); /*[modified] p[pointer] must point on the next start of symbol, but with utf next start is not surely next char*/ } return; } @@ -1088,8 +1088,8 @@ +} + +/** -+ * Originaly this function had only one parameter (conffile) it has been modified since OOo use -+ * Basicaly prefix is the directory path where fingerprints are stored ++ * Originally this function had only one parameter (conffile) it has been modified since OOo use ++ * Basically prefix is the directory path where fingerprints are stored + */ +extern void *special_textcat_Init( const char *conffile, const char *prefix ) { @@ -1208,8 +1208,8 @@ extern void *textcat_Init( const char *conffile ); /** -+ * Originaly this function had only one parameter (conffile) it has been modified since OOo must be able to load alternativ DB -+ * Basicaly prefix is the directory path where fingerprints are stored ++ * Originally this function had only one parameter (conffile) it has been modified since OOo must be able to load alternativ DB ++ * Basically prefix is the directory path where fingerprints are stored + */ +extern void *special_textcat_Init( const char *conffile, const char *prefix ); + @@ -1284,7 +1284,7 @@ + ++pointer; + } + } -+ if(str[pointer]){ /*finaly, if we are not on the \0 character, we jump to the next character*/ ++ if(str[pointer]){ /*finally, if we are not on the \0 character, we jump to the next character*/ + ++pointer; + } + return pointer; @@ -1419,14 +1419,14 @@ + +/* + * Is used to jump to the next start of char -+ * of course it's only usefull when encoding is utf-8 ++ * of course it's only useful when encoding is utf-8 + * This function have been added by Jocelyn Merand to use libtextcat in OOo + */ +int nextcharstart(const char *str, int position); + + +/*Copy the char in str to dest -+ * of course it's only usefull when encoding is utf8 and the symbol is encoded with more than 1 char ++ * of course it's only useful when encoding is utf8 and the symbol is encoded with more than 1 char + * return the number of char jumped + * This function have been added by Jocelyn Merand to use libtextcat in OOo + */ @@ -1434,14 +1434,14 @@ + + +/* checks if n-gram lex is a prefix of key and of length len -+* if _UTF8_ is defined, it uses escap characters and len is not realy the length of lex ++* if _UTF8_ is defined, it uses escap characters and len is not really the length of lex +* in this case, len is the number of utf-8 char strlen("€") == 3 but len == 1 +*/ +int issame( char *lex, char *key, int len ); + + +/* Counts the number of characters -+* if _UTF8_ is defined, it uses escap characters and the result is not realy the length of str ++* if _UTF8_ is defined, it uses escap characters and the result is not really the length of str +* in this case, the result is the number of utf-8 char strlen("€") == 3 but utfstrlen("€") == 1 +*/ +#ifdef __cplusplus diff --git a/libxml2/libxml2-long-path.patch b/libxml2/libxml2-long-path.patch index 43bc3eca6714..88afed8426ec 100644 --- a/libxml2/libxml2-long-path.patch +++ b/libxml2/libxml2-long-path.patch @@ -8,7 +8,7 @@ +#if defined(_WIN32) + //We must not change the backslashes to slashes if the the path starts with + // \\?\ -+ //Those pathes can be up to 32k characters long. ++ //Those paths can be up to 32k characters long. + len = xmlStrlen(path); + if ((len > 3) && (path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && (path[3] == '\\') ) + return xmlStrdup((const xmlChar *) path); diff --git a/libxmlsec/xmlsec1-customkeymanage.patch b/libxmlsec/xmlsec1-customkeymanage.patch index 8bc97c474d56..72861a2f50d0 100644 --- a/libxmlsec/xmlsec1-customkeymanage.patch +++ b/libxmlsec/xmlsec1-customkeymanage.patch @@ -796,7 +796,7 @@ + +/** + * xmlSecNssAppliedKeysMngrCreate: -+ * @slot: array of pointers to NSS PKCS#11 slot infomation. ++ * @slot: array of pointers to NSS PKCS#11 slot information. + * @cSlots: number of slots in the array + * @handler: the pointer to NSS certificate database. + * @@ -4386,7 +4386,7 @@ + * every eligibl slot in the list. + * + * When try to find a slot for a particular mechanism, the slot bound with -+ * avaliable mechanism will be looked up firstly. ++ * available mechanism will be looked up firstly. + */ +#include "globals.h" +#include <string.h> diff --git a/libxmlsec/xmlsec1-noverify.patch b/libxmlsec/xmlsec1-noverify.patch index c51540caa2aa..d483cb85bbc7 100644 --- a/libxmlsec/xmlsec1-noverify.patch +++ b/libxmlsec/xmlsec1-noverify.patch @@ -8,7 +8,7 @@ - return(cert); - } + /* JL: OpenOffice.org implements its own certificate verification routine. -+ The goal is to seperate validation of the signature ++ The goal is to separate validation of the signature + and the certificate. For example, OOo could show that the document signature is valid, + but the certificate could not be verified. If we do not prevent the verification of + the certificate by libxmlsec and the verification fails, then the XML signature will not be @@ -36,7 +36,7 @@ + + /* + JL: OpenOffice.org implements its own certificate verification routine. -+ The goal is to seperate validation of the signature ++ The goal is to separate validation of the signature + and the certificate. For example, OOo could show that the document signature is valid, + but the certificate could not be verified. If we do not prevent the verification of + the certificate by libxmlsec and the verification fails, then the XML signature may not be diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx index 0f6f08d77bea..3f39a1037a49 100644 --- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx +++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx @@ -191,7 +191,7 @@ Sequence< Locale > SAL_CALL Hyphenator::getLocales() aSuppLocales[k++] = aTmp; } - //! For each dictionary and each locale we need a seperate entry. + //! For each dictionary and each locale we need a separate entry. //! If this results in more than one dictionary per locale than (for now) //! it is undefined which dictionary gets used. //! In the future the implementation should support using several dictionaries diff --git a/lingucomponent/source/languageguessing/simpleguesser.cxx b/lingucomponent/source/languageguessing/simpleguesser.cxx index bbe4c739020e..9308a109c5f9 100644 --- a/lingucomponent/source/languageguessing/simpleguesser.cxx +++ b/lingucomponent/source/languageguessing/simpleguesser.cxx @@ -158,7 +158,7 @@ Guess SimpleGuesser::GuessPrimaryLanguage(char* text) } } /** - * Is used to know wich language is available, unavailable or both + * Is used to know which language is available, unavailable or both * when mask = 0xF0, return only Available * when mask = 0x0F, return only Unavailable * when mask = 0xFF, return both Available and Unavailable diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx b/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx index 41131de15e09..2b5597b37edc 100644 --- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx +++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx @@ -311,7 +311,7 @@ sal_Bool SAL_CALL // These are be the default values set in the SN_LINGU_PROPERTIES // PropertySet which are overridden by the supplied ones from the // last argument. - // You'll probably like to use a simplier solution than the provided + // You'll probably like to use a simpler solution than the provided // one using the PropertyHelper_Spell. PropertyHelper_Spell &rHelper = GetPropHelper(); diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx index edfdfa9b8644..7449b6a12270 100644 --- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx +++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx @@ -184,7 +184,7 @@ Sequence< Locale > SAL_CALL SpellChecker::getLocales() aSuppLocales[k++] = aTmp; } - //! For each dictionary and each locale we need a seperate entry. + //! For each dictionary and each locale we need a separate entry. //! If this results in more than one dictionary per locale than (for now) //! it is undefined which dictionary gets used. //! In the future the implementation should support using several dictionaries @@ -379,7 +379,7 @@ sal_Bool SAL_CALL SpellChecker::isValid( const OUString& rWord, const Locale& rL // These are be the default values set in the SN_LINGU_PROPERTIES // PropertySet which are overridden by the supplied ones from the // last argument. - // You'll probably like to use a simplier solution than the provided + // You'll probably like to use a simpler solution than the provided // one using the PropertyHelper_Spell. PropertyHelper_Spell &rHelper = GetPropHelper(); diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx index d73090c2e35a..47700d5c710b 100644 --- a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx +++ b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx @@ -212,7 +212,7 @@ Sequence< Locale > SAL_CALL Thesaurus::getLocales() aSuppLocales[k++] = aTmp; } - //! For each dictionary and each locale we need a seperate entry. + //! For each dictionary and each locale we need a separate entry. //! If this results in more than one dictionary per locale than (for now) //! it is undefined which dictionary gets used. //! In the future the implementation should support using several dictionaries diff --git a/linguistic/inc/linguistic/misc.hxx b/linguistic/inc/linguistic/misc.hxx index 105a0573f707..4abd62364318 100644 --- a/linguistic/inc/linguistic/misc.hxx +++ b/linguistic/inc/linguistic/misc.hxx @@ -161,7 +161,7 @@ String GetModulePath( SvtPathOptions::Pathes ePath, sal_Bool bAddAccessDelim = String GetWritableDictionaryURL( const String &rDicName ); // looks for the specified file in the list of paths. -// In case of multiple occurences only the first found is returned. +// In case of multiple occurrences only the first found is returned. String SearchFileInPaths( const String &rFile, const ::com::sun::star::uno::Sequence< ::rtl::OUString > &rPaths ); diff --git a/linguistic/qa/complex/linguistic/HangulHanjaConversion.java b/linguistic/qa/complex/linguistic/HangulHanjaConversion.java index 69b7a4d79a55..6a1cd690e97b 100644 --- a/linguistic/qa/complex/linguistic/HangulHanjaConversion.java +++ b/linguistic/qa/complex/linguistic/HangulHanjaConversion.java @@ -84,7 +84,7 @@ public class HangulHanjaConversion { boolean bList = checkXConversionDictionaryList( ConversionDictionaryList); - assertTrue("XConversionDictionaryList doesnt work as expected", bList); + assertTrue("XConversionDictionaryList doesn't work as expected", bList); } private boolean checkXConversionDictionaryList(Object list) { diff --git a/linguistic/source/convdicxml.cxx b/linguistic/source/convdicxml.cxx index 05e5e9e51b7e..536c98daf142 100644 --- a/linguistic/source/convdicxml.cxx +++ b/linguistic/source/convdicxml.cxx @@ -373,7 +373,7 @@ sal_uInt32 ConvDicXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum /*eCl void ConvDicXMLExport::_ExportContent() { - // aquire sorted list of all keys + // acquire sorted list of all keys ConvMapKeySet aKeySet; ConvMap::iterator aIt; for (aIt = rDic.aFromLeft.begin(); aIt != rDic.aFromLeft.end(); ++aIt) diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx index aa37391727be..828f81128a06 100644 --- a/linguistic/source/lngsvcmgr.cxx +++ b/linguistic/source/lngsvcmgr.cxx @@ -357,7 +357,7 @@ LngSvcMgrListenerHelper::LngSvcMgrListenerHelper( //! number of events forwarded. //! (This may happen already if a property was changed that has several //! listeners, and each of them is launching an event of it's own!) - //! Thus this behaviour is necessary to avoid unecessary actions of + //! Thus this behaviour is necessary to avoid unnecessary actions of //! this objects listeners! // aLaunchTimer.SetTimeout( 2000 ); // aLaunchTimer.SetTimeoutHdl( LINK( this, LngSvcMgrListenerHelper, TimeOut ) ); @@ -1414,7 +1414,7 @@ uno::Sequence< OUString > SAL_CALL } else if (0 == rServiceName.compareToAscii( SN_GRAMMARCHECKER )) { - // don't clear cache as it makes start with some extentions so slow it looks + // don't clear cache as it makes start with some extensions so slow it looks // like a freeze (a restart is needed anyway after grammar checker installation), // see https://issues.apache.org/ooo/show_bug.cgi?id=116409 //clearSvcInfoArray(pAvailGrammarSvcs); pAvailGrammarSvcs = 0; diff --git a/linguistic/workben/sspellimp.cxx b/linguistic/workben/sspellimp.cxx index 9a1696d479a3..8131d667eed4 100644 --- a/linguistic/workben/sspellimp.cxx +++ b/linguistic/workben/sspellimp.cxx @@ -188,7 +188,7 @@ sal_Bool SAL_CALL // These are be the default values set in the SN_LINGU_PROPERTIES // PropertySet which are overridden by the supplied ones from the // last argument. - // You'll probably like to use a simplier solution than the provided + // You'll probably like to use a simpler solution than the provided // one using the PropertyHelper_Spell. PropertyHelper_Spell &rHelper = GetPropHelper(); rHelper.SetTmpPropVals( rProperties ); diff --git a/migrationanalysis/src/driver_docs/allstrings.ulf b/migrationanalysis/src/driver_docs/allstrings.ulf index 1185b6ec99b5..c3544bd46193 100644 --- a/migrationanalysis/src/driver_docs/allstrings.ulf +++ b/migrationanalysis/src/driver_docs/allstrings.ulf @@ -19,2374 +19,2374 @@ * *************************************************************/ -[RID_STR_COMMON_PRODUCTNAME]
-en-US = "OpenOffice.org"
-
-[RID_STR_COMMON_PRODUCTVERSION]
-en-US = "3.0"
-
-[RID_STR_COMMON_NEXTPRODUCTVERSION]
-en-US = "3.1"
-
-[RID_STR_COMMON_OLE_CONTROL]
-en-US = "OLE Control"
-
-[RID_STR_COMMON_OLE_FIELD_LINK]
-en-US = "OLE Field Link"
-
-[RID_STR_COMMON_OLE_UNKNOWN]
-en-US = "Unknown Type"
-
-[RID_STR_COMMON_VB_COMPONENT_MODULE]
-en-US = "Module"
-
-[RID_STR_COMMON_VB_COMPONENT_STANDARD]
-en-US = "Standard Module"
-
-[RID_STR_COMMON_VB_COMPONENT_CLASS]
-en-US = "Class Module"
-
-[RID_STR_COMMON_VB_COMPONENT_USER_FORM]
-en-US = "User Form"
-
-[RID_STR_COMMON_VB_COMPONENT_DOCUMENT]
-en-US = "Document"
-
-[RID_STR_COMMON_VB_COMPONENT_ACTIVEX_DESIGNER]
-en-US = "ActiveX Designer"
-
-[RID_STR_COMMON_VB_COMPONENT_UNKNOWN]
-en-US = "Unknown"
-
-[RID_STR_COMMON_YES_OR_NO]
-en-US = "Yes or No"
-
-[RID_STR_COMMON_DATE]
-en-US = "Date"
-
-[RID_STR_COMMON_NUMBER]
-en-US = "Number"
-
-[RID_STR_COMMON_TEXT]
-en-US = "Text"
-
-[RID_STR_COMMON_UNKNOWN]
-en-US = "Unknown"
-
-[RID_STR_COMMON_DEC_TO_EXTERNAL_LIBRARY]
-en-US = "Declaration to external library"
-
-[RID_STR_COMMON_RESULTS_LOCATION_TYPE_DOCUMENT]
-en-US = "Document"
-
-[RID_STR_COMMON_RESULTS_LOCATION_TYPE_PAGE]
-en-US = "Page"
-
-[RID_STR_COMMON_RESULTS_LOCATION_TYPE_WORKBOOK]
-en-US = "WorkBook"
-
-[RID_STR_COMMON_RESULTS_LOCATION_TYPE_SHEET]
-en-US = "Sheet"
-
-[RID_STR_COMMON_RESULTS_LOCATION_TYPE_PRESENTATION]
-en-US = "Presentation"
-
-[RID_STR_COMMON_RESULTS_LOCATION_TYPE_SLIDE]
-en-US = "Slide"
-
-[RID_STR_COMMON_INVALID_PASSWORD]
-en-US = "Invalid Password"
-
-[RID_STR_COMMON_PASSWORD_SKIPDOC]
-en-US = "Skip Password Protected"
-
-[RID_STR_COMMON_NA]
-en-US = "na"
-
-[RID_STR_COMMON_ATTRIBUTE_BROKEN]
-en-US = "Broken!"
-
-[RID_STR_COMMON_ATTRIBUTE_BUILTIN]
-en-US = "BuiltIn"
-
-[RID_STR_COMMON_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES]
-en-US = "Check document VB-IDE/Tools/References"
-
-[RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT]
-en-US = "Class refs to Me"
-
-[RID_STR_COMMON_ATTRIBUTE_COMPONENT]
-en-US = "Component"
-
-[RID_STR_COMMON_ATTRIBUTE_CONTROLS]
-en-US = "Controls"
-
-[RID_STR_COMMON_ATTRIBUTE_CUSTOM]
-en-US = "Custom"
-
-[RID_STR_COMMON_ATTRIBUTE_DESCRIPTION]
-en-US = "Description"
-
-[RID_STR_COMMON_ATTRIBUTE_GUID]
-en-US = "GUID"
-
-[RID_STR_COMMON_ATTRIBUTE_FILE]
-en-US = "File"
-
-[RID_STR_COMMON_ATTRIBUTE_PROPERTIES]
-en-US = "Properties"
-
-[RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE]
-en-US = "Further macro analysis not possible"
-
-[RID_STR_COMMON_ATTRIBUTE_INCLUDING]
-en-US = "including:"
-
-[RID_STR_COMMON_ATTRIBUTE_INTACT]
-en-US = "Intact"
-
-[RID_STR_COMMON_ATTRIBUTE_ISBROKEN]
-en-US = "IsBroken"
-
-[RID_STR_COMMON_ATTRIBUTE_MAJOR]
-en-US = "Major"
-
-[RID_STR_COMMON_ATTRIBUTE_MINOR]
-en-US = "Minor"
-
-[RID_STR_COMMON_ATTRIBUTE_MISSING]
-en-US = "MISSING"
-
-[RID_STR_COMMON_ATTRIBUTE_NAME]
-en-US = "Name"
-
-[RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES]
-en-US = "Non Portable External References"
-
-[RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT]
-en-US = "External Reference Count"
-
-[RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES]
-en-US = "Number of Lines"
-
-[RID_STR_COMMON_ATTRIBUTE_SIGNATURE]
-en-US = "MD5 Hash"
-
-[RID_STR_COMMON_ATTRIBUTE_PASSWORD]
-en-US = "Password"
-
-[RID_STR_COMMON_ATTRIBUTE_PATH]
-en-US = "Path"
-
-[RID_STR_COMMON_ATTRIBUTE_PROCEDURES]
-en-US = "Procedures"
-
-[RID_STR_COMMON_ATTRIBUTE_PROJECT]
-en-US = "Project"
-
-[RID_STR_COMMON_ATTRIBUTE_TYPE]
-en-US = "Type"
-
-[RID_STR_COMMON_ATTRIBUTE_TYPELIB]
-en-US = "Type Library"
-
-[RID_STR_COMMON_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT]
-en-US = "Unable to access VBProject"
-
-[RID_STR_COMMON_ATTRIBUTE_UNKNOWN]
-en-US = "Unknown"
-
-[RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE]
-en-US = "Control Types"
-
-[RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT]
-en-US = "Control Types Count"
-
-[RID_STR_COMMON_ATTRIBUTE_VALUE]
-en-US = "Value"
-
-[RID_STR_COMMON_ATTRIBUTE_VBPROJECT_PASSWORD]
-en-US = "VBProject Password set"
-
-[RID_STR_COMMON_ISSUE_INFORMATION]
-en-US = "Information"
-
-[RID_STR_COMMON_ISSUE_FORMAT]
-en-US = "Format"
-
-[RID_STR_COMMON_ISSUE_PORTABILITY]
-en-US = "Portability"
-
-[RID_STR_COMMON_ISSUE_VBA_MACROS]
-en-US = "VBA Macros"
-
-[RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES]
-en-US = "Content and Document Properties"
-
-[RID_STR_COMMON_NOTE_DOCUMENT_PROPERTIES_LOST]
-en-US = "this summary property is lost"
-
-[RID_STR_COMMON_SUBISSUE_PROPERTIES]
-en-US = "Properties"
-
-[RID_STR_COMMON_SUBISSUE_REFERENCES]
-en-US = "References"
-
-[RID_STR_COMMON_SUBISSUE_EXTERNAL_REFERENCES_IN_MACROS]
-en-US = "External References in Macro"
-
-[RID_STR_COMMON_SUBISSUE_INVALID_PASSWORD_ENTERED]
-en-US = "Invalid Password Entered"
-
-[RID_STR_COMMON_SUBISSUE_DOCUMENT_PARTS_PROTECTION]
-en-US = "Document Parts Protection"
-
-[RID_STR_COMMON_SUBISSUE_MACRO_PASSWORD_PROTECTION]
-en-US = "Password Protected"
-
-[RID_STR_COMMON_SUBISSUE_PASSWORDS_PROTECTION]
-en-US = "Password Protection"
-
-[RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME]
-en-US = "Object Name"
-
-[RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE]
-en-US = "Object Type"
-
-[RID_STR_COMMON_ATTRIBUTE_SOURCE]
-en-US = "Source"
-
-[RID_STR_COMMON_NOTE_HF_PREPARABLE]
-en-US = "will add additional returns to the header/footer"
-
-[RID_STR_COMMON_PREPARATION_FOLDER]
-en-US = "prepared"
-
-[RID_STR_COMMON_SUBISSUE_DOCUMENT_CUSTOM_PROPERTY]
-en-US = "Document Custom Property"
-
-[RID_STR_COMMON_MACRO_CLASS_COMPLEX]
-en-US = "Complex"
-
-[RID_STR_COMMON_MACRO_CLASS_MEDIUM]
-en-US = "Medium"
-
-[RID_STR_COMMON_MACRO_CLASS_SIMPLE]
-en-US = "Simple"
-
-[RID_STR_COMMON_MACRO_CLASS_NONE]
-en-US = "No Macros"
-
-[RID_STR_COMMON_ISSUE_CLASS_COMPLEX]
-en-US = "Complex"
-
-[RID_STR_COMMON_ISSUE_CLASS_MINOR]
-en-US = "Minor"
-
-[RID_STR_COMMON_ISSUE_CLASS_NONE]
-en-US = "No Issues"
-
-[RID_STR_COMMON_OV_VERSION_STR]
-en-US = "Created by"
-
-[RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_TITLE]
-en-US = "Which documents do you need to migrate?"
-
-[RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_BODY]
-en-US = "<CR>The last modified date is an indicator of the importance of a document. It helps you decide which documents should just be archived to a read only format such as Adobe PDF and which actually need to be migrated to <PRODUCTNAME> where they can continue to be updated and modified."
-
-[RID_STR_COMMON_OV_LEGEND_TITLE]
-en-US = "Legend"
-
-[RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY]
-en-US = "< 3 months: Migrate to <PRODUCTNAME>.<CR>3 - 6 Months: Careful review to see if they should be archived or migrated to <PRODUCTNAME>.<CR>6 - 12 Months: Quick review, either archive or migrate to the read/write <PRODUCTNAME> XML file format.<CR>> 1 Year: Older than 1 year, archive to read-only format such as PDF"
-
-[RID_STR_COMMON_OV_DOC_MACRO_COMMENT_TITLE]
-en-US = "How many documents contain macros?"
-
-[RID_STR_COMMON_OV_DOC_MACRO_COMMENT_BODY]
-en-US = "<CR><PRODUCTNAME> includes <PRODUCTNAME> BASIC, a Basic dialect that is similar to Microsoft's Visual Basic for Application (VBA), but <PRODUCTNAME> uses a different sets of objects to access the underlying Office.<CR>This makes it necessary to migrate the VBA macros into the platform independent <PRODUCTNAME> BASIC. Your local <PRODUCTNAME> Migration partner can help you with these VBA macro migrations."
-
-[RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY]
-en-US = "Complex: Macros using Forms, Controls and external references<CR>Medium: Macros with more than 50 lines of code<CR>Simple: Macros with less than 50 lines of code<CR>None: No macros in the document"
-
-[RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_DAW]
-en-US = "Analysis of document migration issues for documents modified within the last <TOPIC> months"
-
-[RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT]
-en-US = "High level analysis of document migration issues"
-
-[RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_TITLE]
-en-US = "Which documents may have migration issues?"
-
-[RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_BODY]
-en-US = "<CR>Some Microsoft Office documents may not migrate perfectly into <PRODUCTNAME>. These issues are outlined in the <PRODUCTNAME> Migration Guide. <PRODUCTNAME> engineering is working continously to resolve these issues by improving the Microsoft Office filters.<CR>The Document Analysis Wizard has been provided by <PRODUCTNAME> engineering to detect the most important of these migration issues in any Microsoft Office document you wish to specify. These findings are summarised below [refer to the 'List of documents' sheet to see the list of all analyzed documents]."
-
-[RID_STR_COMMON_OV_DOC_ANALYSIS_DAW_LEGEND_BODY]
-en-US = "Complex: More complex migration issues.<CR>Minor: Minor migration issues easily fixed by any user.<CR>None: No issues Migrate to <PRODUCTNAME> without any issues.<CR><CR>Your <PRODUCTNAME> Migration Partners can help you with these more complex migration issues [refer to link above]. For instance they can migrate these documents to custom templates that achieve the same functionality but work well in both Office environments allowing the documents to be freely exchanged."
-
-[RID_STR_COMMON_OV_DOC_ANALYSIS_PAW_LEGEND_BODY]
-en-US = "Complex: More complex migration issues.<CR>Minor: Minor migration issues easily fixed by any user.<CR>None: No issues Migrate to <PRODUCTNAME> without any issues."
-
-[RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE]
-en-US = "Document modification dates"
-
-[RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE]
-en-US = "Document with Macro Migration Issues"
-
-[RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE]
-en-US = "Documents with Document Migration Issues"
-
-[RID_STR_COMMON_PREPARATION_NOTE]
-en-US = "Preparation"
-
-[RID_STR_COMMON_CANNOT_OPEN]
-en-US = "Cannot open - no analysis possible"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW]
-en-US = "Overview"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_COSTS]
-en-US = "Issues Analyzed"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD]
-en-US = "Word Issues"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL]
-en-US = "Excel Issues"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT]
-en-US = "PowerPoint Issues"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS]
-en-US = "Issue Details"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS]
-en-US = "Reference Details"
-
-[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP]
-en-US = "List of documents"
-
-[RID_STR_COMMON_ANALYSIS_STR]
-en-US = "Analysis"
-
-[RID_STR_COMMON_NOTE_PRE]
-en-US = "Note"
-
-[RID_STR_COMMON_NOTE_POST]
-en-US = " on migration"
-
-[RID_STR_COMMON_OLE_EMBEDDED]
-en-US = "Embedded OLE Object"
-
-[RID_STR_COMMON_OLE_LINKED]
-en-US = "Linked OLE Object"
-
-[RID_STR_EXCEL_ISSUE_CHARTS_AND_TABLES]
-en-US = "Charts and Tables"
-
-[RID_STR_EXCEL_ISSUE_FORMAT]
-en-US = "Format"
-
-[RID_STR_EXCEL_ISSUE_FUNCTIONS]
-en-US = "Functions"
-
-[RID_STR_EXCEL_ISSUE_PORTABILITY]
-en-US = "Portability"
-
-[RID_STR_EXCEL_ISSUE_VBA_MACROS]
-en-US = "VBA Macros"
-
-[RID_STR_EXCEL_ISSUE_INFORMATION]
-en-US = "Information"
-
-[RID_STR_EXCEL_SUBISSUE_PIVOT]
-en-US = "Pivot"
-
-[RID_STR_EXCEL_SUBISSUE_ZOOM]
-en-US = "Zoom"
-
-[RID_STR_EXCEL_TRUE]
-en-US = "True"
-
-[RID_STR_EXCEL_FALSE]
-en-US = "False"
-
-[RID_STR_EXCEL_SUBISSUE_MAX_SHEETS_EXCEEDED]
-en-US = "Maximum Sheets Exceeded"
-
-[RID_STR_EXCEL_SUBISSUE_ATTRIBUTES]
-en-US = "Cell Attributes"
-
-[RID_STR_EXCEL_SUBISSUE_EXTERNAL]
-en-US = "External"
-
-[RID_STR_EXCEL_SUBISSUE_SHEET_CHART]
-en-US = "Sheet Chart"
-
-[RID_STR_EXCEL_SUBISSUE_EMBEDDED_CHART]
-en-US = "Embedded Chart"
-
-[RID_STR_EXCEL_SUBISSUE_INVALID_WORKSHEET_NAME]
-en-US = "Invalid Worksheet Name"
-
-[RID_STR_EXCEL_ATTRIBUTE_BADCHARACTER]
-en-US = "'<TOKEN1>' at pos <TOKEN2>"
-
-[RID_STR_EXCEL_ATTRIBUTE_DB_QUERY]
-en-US = "Connection string"
-
-[RID_STR_EXCEL_ATTRIBUTE_NAME]
-en-US = "Name"
-
-[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_PIVOTFIELDS]
-en-US = "Number of PivotFields"
-
-[RID_STR_EXCEL_ATTRIBUTE_TITLE]
-en-US = "Title"
-
-[RID_STR_EXCEL_ATTRIBUTE_TYPE]
-en-US = "Type"
-
-[RID_STR_EXCEL_ATTRIBUTE_PIE]
-en-US = "Pie"
-
-[RID_STR_EXCEL_ATTRIBUTE_SLICES_IN_DIFFERENT_DIRECTION]
-en-US = "Slices in diff. direction"
-
-[RID_STR_EXCEL_ATTRIBUTE_LEGEND_NAME]
-en-US = "Legend Name"
-
-[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_LEGEND_ENTRIES]
-en-US = "Number of Legend Entries"
-
-[RID_STR_EXCEL_ATTRIBUTE_PIVOT_TABLE_NAME]
-en-US = "PivotTable Name"
-
-[RID_STR_EXCEL_ATTRIBUTE_PIVOT_FIELDS_VISIBLE]
-en-US = "PivotFields Visible"
-
-[RID_STR_EXCEL_ATTRIBUTE_PIVOT_FIELDS_NUM]
-en-US = "Number of PivotFields"
-
-[RID_STR_EXCEL_ATTRIBUTE_PRINT_RANGE]
-en-US = "Print Range"
-
-[RID_STR_EXCEL_ATTRIBUTE_DISPLAY_ZOOM]
-en-US = "Display Zoom"
-
-[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_SHEETS]
-en-US = "Number of Sheets"
-
-[RID_STR_EXCEL_ATTRIBUTE_LIST_SOURCE]
-en-US = "ListSource"
-
-[RID_STR_EXCEL_ATTRIBUTE_CUSTOM_FORMULA]
-en-US = "Custom Formula"
-
-[RID_STR_EXCEL_ATTRIBUTE_SET]
-en-US = "Set"
-
-[RID_STR_EXCEL_ATTRIBUTE_LINE_STYLE]
-en-US = "Line Style"
-
-[RID_STR_EXCEL_ATTRIBUTE_DASHED_DOT]
-en-US = "Dashed/Dot"
-
-[RID_STR_EXCEL_ATTRIBUTE_FILL_PATTERN]
-en-US = "Fill Pattern"
-
-[RID_STR_EXCEL_ATTRIBUTE_PATTERNED]
-en-US = "Patterned"
-
-[RID_STR_EXCEL_ATTRIBUTE_FUNCTION_STRING]
-en-US = "Function String"
-
-[RID_STR_EXCEL_ATTRIBUTE_PASSWORD_TO_OPEN]
-en-US = "Password to Open"
-
-[RID_STR_EXCEL_ATTRIBUTE_PASSWORD_TO_MODIFY]
-en-US = "Password to Modify"
-
-[RID_STR_EXCEL_ATTRIBUTE_OBJECT_TYPE]
-en-US = "Object Type"
-
-[RID_STR_EXCEL_ATTRIBUTE_OBJECT_NAME]
-en-US = "Object Name"
-
-[RID_STR_EXCEL_ATTRIBUTE_SOURCE]
-en-US = "Source"
-
-[RID_STR_EXCEL_ATTRIBUTE_VALUE]
-en-US = "Value"
-
-[RID_STR_EXCEL_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT]
-en-US = "Unable to access VBProject"
-
-[RID_STR_EXCEL_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE]
-en-US = "Further macro analysis not possible"
-
-[RID_STR_EXCEL_ATTRIBUTE_VBPROJECT_PASSWORD_SET]
-en-US = "VBProject Password Set"
-
-[RID_STR_EXCEL_ATTRIBUTE_PROJECT]
-en-US = "Project"
-
-[RID_STR_EXCEL_ATTRIBUTE_COMPONENT]
-en-US = "Component"
-
-[RID_STR_EXCEL_ATTRIBUTE_PROCEDURES]
-en-US = "Procedures"
-
-[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_LINES]
-en-US = "Number of Lines"
-
-[RID_STR_EXCEL_ATTRIBUTE_CONTROLS]
-en-US = "Controls"
-
-[RID_STR_EXCEL_ATTRIBUTE_TYPES]
-en-US = "Types"
-
-[RID_STR_EXCEL_ATTRIBUTE_DESCRIPTION]
-en-US = "Description"
-
-[RID_STR_EXCEL_ATTRIBUTE_FILE]
-en-US = "File"
-
-[RID_STR_EXCEL_ATTRIBUTE_PATH]
-en-US = "Path"
-
-[RID_STR_EXCEL_ATTRIBUTE_MISSING]
-en-US = "MISSING"
-
-[RID_STR_EXCEL_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES]
-en-US = "Check document VB-IDE/Tools/References"
-
-[RID_STR_EXCEL_ATTRIBUTE_MAJOR]
-en-US = "Major"
-
-[RID_STR_EXCEL_ATTRIBUTE_MINOR]
-en-US = "Minor"
-
-[RID_STR_EXCEL_ATTRIBUTE_BUILT_IN]
-en-US = "Built In"
-
-[RID_STR_EXCEL_ATTRIBUTE_INTACT]
-en-US = "Intact"
-
-[RID_STR_EXCEL_ATTRIBUTE_TYPELIB]
-en-US = "TypeLib"
-
-[RID_STR_EXCEL_ATTRIBUTE_GUID]
-en-US = "GUID"
-
-[RID_STR_EXCEL_ATTRIBUTE_CUSTOM]
-en-US = "Custom"
-
-[RID_STR_EXCEL_ATTRIBUTE_IS_BROKEN]
-en-US = "Is Broken"
-
-[RID_STR_EXCEL_ATTRIBUTE_BROKEN]
-en-US = "Broken!"
-
-[RID_STR_EXCEL_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES]
-en-US = "Non Portable External References"
-
-[RID_STR_EXCEL_ATTRIBUTE_INCLUDING]
-en-US = "including:"
-
-[RID_STR_EXCEL_ATTRIBUTE_PASSWORD]
-en-US = "Password"
-
-[RID_STR_EXCEL_ENUMERATION_CUSTOM]
-en-US = "Custom"
-
-[RID_STR_EXCEL_ENUMERATION_LIST]
-en-US = "List"
-
-[RID_STR_EXCEL_ENUMERATION_UNKNOWN]
-en-US = "Unknown"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_CONTINUOUS]
-en-US = "Continuous"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DASH]
-en-US = "Dash"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DASHDOT]
-en-US = "DashDot"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DOT]
-en-US = "Dot"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DOUBLE]
-en-US = "Double"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_SLANTDASHDOT]
-en-US = "SlantDashDot"
-
-[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_LINESTYLENONE]
-en-US = "LineStyleNone"
-
-[RID_STR_EXCEL_NOTE_DB_QUERY]
-en-US = "The connection to the database in <PRODUCTNAME> will be lost . The data will appear correctly but can not be updated."
-
-[RID_STR_EXCEL_NOTE_INVALIDWORKSHEETNAME]
-en-US = "The worksheet name contains characters that are not supported by <PRODUCTNAME>. Please rename your sheet and exclude these characters."
-
-[RID_STR_EXCEL_NOTE_ZOOM]
-en-US = "all sheets will have the same zoom irrespective of their Excel View/Zoom setting after migration to <PRODUCTNAME>"
-
-[RID_STR_EXCEL_NOTE_CELL_ATTRIBUTES_3]
-en-US = "this line style is imported as a solid line. Only solid line syles are supported in <PRODUCTNAME>"
-
-[RID_STR_EXCEL_NOTE_CELL_ATTRIBUTES_4]
-en-US = "this fill pattern is imported as a solid gray. Only solid fill patterns are supported in <PRODUCTNAME>"
-
-[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_1]
-en-US = "this function returns platform dependent information specific to Windows and is not imported to <PRODUCTNAME>"
-
-[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_2]
-en-US = "this function returns error codes specific to Excel and is imported in <PRODUCTNAME> as the stub function ErrorType() always returning Err.520"
-
-[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_3]
-en-US = "this is an external function referenced from an Excel spreadsheet. It does not import correctly to <PRODUCTNAME>. The external reference is stripped and the resulting formula always returns #ADDIN?"
-
-[RID_STR_EXCEL_NOTE_DOCUMENT_PROPERTIES_1]
-en-US = "this summary property is lost"
-
-[RID_STR_EXCEL_NOTE_DOCUMENT_PROPERTIES_2]
-en-US = "this custom property is lost"
-
-[RID_STR_EXCEL_NOTE_SHEET_LIMITS_1]
-en-US = "all sheets will be lost in <PRODUCTNAME> that are greater than "
-
-[RID_STR_EXCEL_NOTE_SHEET_LIMITS_2]
-en-US = "all sheets must be moved to a new workbook before migration that are greater than "
-
-[RID_STR_EXCEL_SUBLOCATION_NA]
-en-US = "na"
-
-[RID_STR_EXCEL_SUBISSUE_WORKBOOK_PROTECTION]
-en-US = "Workbook Protection"
-
-[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_SHARING]
-en-US = "Protection Sharing"
-
-[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_STRUCTURE]
-en-US = "Protection Structure"
-
-[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_WINDOWS]
-en-US = "Protection Windows"
-
-[RID_STR_EXCEL_NOTE_PASSWORD_TO_OPEN]
-en-US = "workbook is protected"
-
-[RID_STR_EXCEL_NOTE_DATATABLE]
-en-US = "no simple workaround, could copy the data table and paste below the chart"
-
-[RID_STR_EXCEL_NOTE_XAXISCATEGORY]
-en-US = "only category option supported. Setup your category labels you need on the sheet"
-
-[RID_STR_EXCEL_NOTE_UNSUPPORTEDTYPE1]
-en-US = "following chart types not supported"
-
-[RID_STR_EXCEL_NOTE_UNSUPPORTEDTYPE2]
-en-US = "pie of pie,exploded 3D pie,bar of pie,bubble,filled radar,exploded doughnut"
-
-[RID_STR_EXCEL_NOTE_TRENDLINE]
-en-US = "replace the trend line by drawing a line on the chart. You must click outside the chart when adding the line and drag it onto the chart. Objects created by clicking on the chart will not import"
-
-[RID_STR_EXCEL_NOTE_DATALABELWITHLEGEND]
-en-US = "after import into <PRODUCTNAME>, select Insert->Data Labels->show legend icon with label and the legend key will appear"
-
-[RID_STR_EXCEL_NOTE_LEGENDPOSITION]
-en-US = "only legend to the right is supported on import. Change legend position in <PRODUCTNAME> after import"
-
-[RID_STR_EXCEL_NOTE_TITLEFONT]
-en-US = "title font with different font size is not supported on import, set a sub-title in <PRODUCTNAME>, then change the font size"
-
-[RID_STR_EXCEL_NOTE_SERIESCHARTTYPE]
-en-US = "multiple series with different chart types. SO only supports one chart type for all series. Adjust the chart type to best display the series"
-
-[RID_STR_EXCEL_NOTE_DATASOURCENOTLINKEDTOCELL]
-en-US = "data sources to catalogue or other external sources not supported. Data source must be set to cell or range on the sheet"
-
-[RID_STR_EXCEL_NOTE_CATEGORYANDDATA]
-en-US = "category names must be located above or to the left of the value ranges"
-
-[RID_STR_EXCEL_NOTE_DATASOURCEONDIFFERENTSHEET]
-en-US = "data sources must be located on the same sheet. Paste the data sources onto the same sheet"
-
-[RID_STR_EXCEL_NOTE_CATEGORYLABELMORETHANONECELL]
-en-US = "category labels spanning multiple cells are not supported. Copy all the text to one cell"
-
-[RID_STR_EXCEL_NOTE_COLUMNBAR]
-en-US = "chart 'series in' must match the data source. For data source in single row, set 'series in' = row. For data source in single column, set 'series in' = column"
-
-[RID_STR_EXCEL_NOTE_BORDER]
-en-US = "chart border will not appear in <PRODUCTNAME>, before import,set border to none, draw a rectangle around the border of the chart"
-
-[RID_STR_EXCEL_NOTE_AXISINTERVAL]
-en-US = " y axis interval setting will be changed in <PRODUCTNAME>. Modify axes interval setting in <PRODUCTNAME>, re-set major interval scale"
-
-[RID_STR_EXCEL_ATTRIBUTE_DATATABLE]
-en-US = "Data Table"
-
-[RID_STR_EXCEL_ATTRIBUTE_INVALIDCHARACTER]
-en-US = "Invalid Characters"
-
-[RID_STR_EXCEL_ATTRIBUTE_XAXISCATEGORY]
-en-US = "Chart Axes"
-
-[RID_STR_EXCEL_ATTRIBUTE_TIMESCALE]
-en-US = "time scale/auto"
-
-[RID_STR_EXCEL_ATTRIBUTE_UNSUPPORTEDTYPE]
-en-US = "Unsupported Chart Type"
-
-[RID_STR_EXCEL_ATTRIBUTE_TRENDLINE]
-en-US = "Trendline"
-
-[RID_STR_EXCEL_ATTRIBUTE_DATALABELWITHLEGEND]
-en-US = "Data Label With Legend"
-
-[RID_STR_EXCEL_ATTRIBUTE_LEGENDPOSITION]
-en-US = "Legend Position"
-
-[RID_STR_EXCEL_ATTRIBUTE_TITLEFONT]
-en-US = "Title Font"
-
-[RID_STR_EXCEL_ATTRIBUTE_DIFFERENT]
-en-US = "Different"
-
-[RID_STR_EXCEL_ATTRIBUTE_SERIESCHARTTYPE]
-en-US = "Multiple series chart type"
-
-[RID_STR_EXCEL_ATTRIBUTE_CHANGED]
-en-US = "changed"
-
-[RID_STR_EXCEL_ATTRIBUTE_DATASOURCE]
-en-US = "Data Source"
-
-[RID_STR_EXCEL_ATTRIBUTE_DATASOURCENOTLINKEDTOCELL]
-en-US = "Not Linked To A Cell"
-
-[RID_STR_EXCEL_ATTRIBUTE_CATEGORYANDDATA]
-en-US = "Category And Data"
-
-[RID_STR_EXCEL_ATTRIBUTE_SEPARATE]
-en-US = "Separate"
-
-[RID_STR_EXCEL_ATTRIBUTE_DATASOURCEONDIFFERENTSHEET]
-en-US = "On Different Sheet"
-
-[RID_STR_EXCEL_ATTRIBUTE_CATEGORYLABEL]
-en-US = "Category Label"
-
-[RID_STR_EXCEL_ATTRIBUTE_CATEGORYLABELMORETHANONECELL]
-en-US = "More Than One Cell"
-
-[RID_STR_EXCEL_ATTRIBUTE_COLUMNBAR]
-en-US = "Column/Bar Chart"
-
-[RID_STR_EXCEL_ATTRIBUTE_ONECOLUMNROW]
-en-US = "Data Source With Single Column/ Chart Series In Row"
-
-[RID_STR_EXCEL_ATTRIBUTE_BORDER]
-en-US = "Border"
-
-[RID_STR_EXCEL_ATTRIBUTE_AXISINTERVAL]
-en-US = "Y Axis Interval"
-
-[RID_STR_EXCEL_ATTRIBUTE_AUTO]
-en-US = "Auto"
-
-[RID_STR_EXCEL_ATTRIBUTE_CHARTNAME]
-en-US = "Chart Name"
-
-[RID_STR_EXCEL_SUBISSUE_CHART_COMPLEX]
-en-US = "Chart Issues Complex"
-
-[RID_STR_EXCEL_SUBISSUE_CHART_MINOR]
-en-US = "Chart Issues Minor"
-
-[RID_STR_EXCEL_ATTRIBUTE_NOTRIGHT]
-en-US = "not at right hand side"
-
-[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_CELLS]
-en-US = "number cells effected"
-
-[RID_STR_PP_TRUE]
-en-US = "True"
-
-[RID_STR_PP_FALSE]
-en-US = "False"
-
-[RID_STR_PP_ISSUE_OBJECTS_GRAPHICS_AND_TEXTBOXES]
-en-US = "Objects, Graphics and Textboxes"
-
-[RID_STR_PP_SUBISSUE_COMMENT]
-en-US = "Comment"
-
-[RID_STR_PP_SUBISSUE_MOVIE]
-en-US = "Movie"
-
-[RID_STR_PP_ATTRIBUTE_CONTENT]
-en-US = "Content"
-
-[RID_STR_PP_ATTRIBUTE_LOOP]
-en-US = "Loop"
-
-[RID_STR_PP_ATTRIBUTE_PLAYONENTRY]
-en-US = "PlayOnEntry"
-
-[RID_STR_PP_ATTRIBUTE_REWIND]
-en-US = "Rewind"
-
-[RID_STR_PP_ATTRIBUTE_TYPES]
-en-US = "Types"
-
-[RID_STR_PP_ENUMERATION_VIEW_HANDOUT_MASTER]
-en-US = "View Handout Master"
-
-[RID_STR_PP_ENUMERATION_VIEW_NORMAL]
-en-US = "View Normal"
-
-[RID_STR_PP_ENUMERATION_VIEW_NOTES_MASTER]
-en-US = "View Notes Master"
-
-[RID_STR_PP_ENUMERATION_VIEW_NOTES_PAGE]
-en-US = "View Notes Page"
-
-[RID_STR_PP_ENUMERATION_VIEW_OUTLINE]
-en-US = "View Outline"
-
-[RID_STR_PP_ENUMERATION_VIEW_SLIDE]
-en-US = "View Slide"
-
-[RID_STR_PP_ENUMERATION_VIEW_SLIDE_MASTER]
-en-US = "View Slide Master"
-
-[RID_STR_PP_ENUMERATION_VIEW_SLIDE_SORTER]
-en-US = "View Slide Sorter"
-
-[RID_STR_PP_ENUMERATION_VIEW_TITLE_MASTER]
-en-US = "View Title Master"
-
-[RID_STR_PP_ENUMERATION_UNKNOWN]
-en-US = "Unknown"
-
-[RID_RESXLS_COST_Action_Settings]
-en-US = "Action Settings"
-
-[RID_RESXLS_COST_Add_custom_properties_to_document_Properties_Summary_Comments_field]
-en-US = "Add custom properties to document Properties Summary Comments field."
-
-[RID_RESXLS_COST_Additional_Weighting_Factors]
-en-US = "Additional Weighting Factors"
-
-[RID_RESXLS_COST_All_sheets__256_will_need_to_be_moved_to_a_new_workbook]
-en-US = "All sheets >256 will need to be moved to a new workbook"
-
-[RID_RESXLS_COST_Appearance]
-en-US = "Appearance"
-
-[RID_RESXLS_COST_Application]
-en-US = "Application"
-
-[RID_RESXLS_COST_AutoFilter]
-en-US = "AutoFilter"
-
-[RID_RESXLS_COST_Border_Styles]
-en-US = "Border Styles"
-
-[RID_RESXLS_COST_Cell_Attributes]
-en-US = "Cell Attributes"
-
-[RID_RESXLS_COST_CELL_SPAN_WORKAROUND]
-en-US = "Add extra row below cell. Cut and paste contents running onto 2nd page into new cell."
-
-[RID_RESXLS_COST_Cell_Spanning_Page]
-en-US = "Cell Spanning Page"
-
-[RID_RESXLS_COST_ChangesAndReviewing]
-en-US = "Changes And Reviewing"
-
-[RID_RESXLS_COST_Charts_And_Tables]
-en-US = "Charts And Tables"
-
-[RID_RESXLS_COST_Comment]
-en-US = "Comment"
-
-[RID_RESXLS_COST_Content_And_Document_Properties]
-en-US = "Content And Document Properties"
-
-[RID_RESXLS_COST_ContentAndDocumentProperties]
-en-US = "Content And Document Properties"
-
-[RID_RESXLS_COST_Controls]
-en-US = "Controls"
-
-[RID_RESXLS_COST_Cost]
-en-US = "Cost Comment"
-
-[RID_RESXLS_COST_Cost__In_simple_cases_cut_and_paste_to_new_sheet_3___5_min]
-en-US = "Cost: In simple cases cut and paste to new sheet. 3 - 5 min. May exist functions that refer to these cells. 10+"
-
-[RID_RESXLS_COST_COST_0]
-en-US = "Cost = 0. No work around."
-
-[RID_RESXLS_COST_COST_EMBED_CHART]
-en-US = "Variations in cost can range from 0 - 30 mins. Cost caused by uneven data souce, external data source, unsupported chart types, floating legend position."
-
-[RID_RESXLS_COST_COST_ERROR_TYPE]
-en-US = "Fix up cost can vary depending on the context in which this is used. Cost 3 - 5"
-
-[RID_RESXLS_COST_COST_INFO]
-en-US = "Fix up cost can vary depending on the context in which this is used. Cost 2 - 4"
-
-[RID_RESXLS_COST_COST_INVAL_PASS]
-en-US = "Cost = 0. Rerun analysis with correct password."
-
-[RID_RESXLS_COST_COST_INVALID_WORKSHEET_NAME]
-en-US = "Aufewand: Vergewissern Sie sich nach der Umbenennung, dass alle Makros mit Verweisen auf dieses Arbeitsblatt ebenfalls angepaßt werden. Der Aufwand hängt von der Zahl der Codezeilen ab, die auf den Arbeitsblattnamen verweisen."
-en-US = "Cost: When the worksheet has been renamed, ensure that all macros with a reference to the worksheet are also renamed accordingly. Cost depends on how many lines of code there are that refer to the worksheet name."
-
-[RID_RESXLS_COST_Cost_of_4_min_per_line__takes_no_account_of_complexity_of_code__number_of_comment_lines_and_so_on]
-en-US = "Cost of 4 min per line, takes no account of complexity of code, number of comment lines and so on"
-
-[RID_RESXLS_COST_Cost_per_Issue_or_Factor__min]
-en-US = "Cost per Issue or Factor (min)"
-
-[RID_RESXLS_COST_COST_PIVOT]
-en-US = "Cost = 0. Calc does not support dynamically created charts. No workaround."
-
-[RID_RESXLS_COST_COST_SHEET_CHART]
-en-US = "Variations in cost can range from 0 - 30 mins. Cost caused by uneven data souce, external data source, unsupported chart types, floating legend position."
-
-[RID_RESXLS_COST_Cost_variations_occur_because_of_the_use_of_macros_with_controls]
-en-US = "Cost variations occur because of the use of macros with controls."
-
-[RID_RESXLS_COST_COST_VBA_CONT_TYPE]
-en-US = "Cost = 0. Total number of controls better estimate - this information is useful as an indication of complexity of the Forms."
-
-[RID_RESXLS_COST_COST_VBA_CONTROLS]
-en-US = "Cost = 3 minute per control, this does not take account of issues with Frame controls or the number of these controls that have event handlers that need manually linked to migrated code."
-
-[RID_RESXLS_COST_COST_VBA_FORMS]
-en-US = "Cost = 0. Using total number of controls on forms as better estimate"
-
-[RID_RESXLS_COST_COST_VBA_LOC]
-en-US = "Cost of 4 min per line, takes no account of complexity of code, number of comment lines and so on"
-
-[RID_RESXLS_COST_COST_VBA_PROPS]
-en-US = "Cost = 0 using lines of code as better cost estimate."
-
-[RID_RESXLS_COST_Costs__min]
-en-US = "Costs (min)"
-
-[RID_RESXLS_COST_Custom_Bullet_List]
-en-US = "Custom Bullet List"
-
-[RID_RESXLS_COST_Document_Custom_Properties]
-en-US = "Document Custom Properties"
-
-[RID_RESXLS_COST_Document_Parts_Protection]
-en-US = "Document Parts Protection"
-
-[RID_RESXLS_COST_Embedded_Chart]
-en-US = "Chart Issues Minor"
-
-[RID_RESXLS_COST_embedded_objects]
-en-US = "Cost = 0. Most embedded objects come across. If one does not then this may require some reenginering and is not in the scope of an automated cost calculation."
-
-[RID_RESXLS_COST_Embedded_OLE_Object]
-en-US = "Embedded OLE Object"
-
-[RID_RESXLS_COST_Excel]
-en-US = "Excel"
-
-[RID_RESXLS_COST_Excel_Totals]
-en-US = "Excel Totals"
-
-[RID_RESXLS_COST_External]
-en-US = "External"
-
-[RID_RESXLS_COST_External_References_In_Macro___Module__Class_or_UserForm]
-en-US = "External References In Macro - Module, Class or UserForm"
-
-[RID_RESXLS_COST_Factor_Count]
-en-US = "Factor Count"
-
-[RID_RESXLS_COST_Fields]
-en-US = "Fields"
-
-[RID_RESXLS_COST_Filters]
-en-US = "Filters"
-
-[RID_RESXLS_COST_Fixed_SO7]
-en-US = "Fixed <PRODUCTNAME> <PRODUCTVERSION>"
-
-[RID_RESXLS_COST_Form_Field]
-en-US = "Form Field"
-
-[RID_RESXLS_COST_Format]
-en-US = "Format"
-
-[RID_RESXLS_COST_Functions]
-en-US = "Functions"
-
-[RID_RESXLS_COST_Zoom]
-en-US = "Zoom"
-
-[RID_RESXLS_COST_HEADERFOOTER_WORKAROUND]
-en-US = "Insert carriage returns to resize header/ footer to the size of the graphic."
-
-[RID_RESXLS_COST_Hours_Per_MD]
-en-US = "Hours Per MD ="
-
-[RID_RESXLS_COST_Indexes_And_References]
-en-US = "Indexes And References"
-
-[RID_RESXLS_COST_Invalid_Password_Entered]
-en-US = "Invalid Password Entered"
-
-[RID_RESXLS_COST_Invalid_Worksheet_Name]
-en-US = "Invalid Worksheet Name"
-
-[RID_RESXLS_COST_Issue__18_of_the_24_table_border_styles_do_not_display_correctly]
-en-US = "Issue: 18 of the 24 table border styles do not display correctly."
-
-[RID_RESXLS_COST_Issue__256_sheet_limit_exceeded]
-en-US = "Issue: 256 sheet limit exceeded."
-
-[RID_RESXLS_COST_Issue__32000_row_limit_exceeded]
-en-US = "Issue: 32000 row limit exceeded."
-
-[RID_RESXLS_COST_Issue__A_worksheet_in_the_workbook_has_a_name_with_invalid_characters]
-en-US = "Issue: A worksheet in the workbook has a name with invalid characters."
-
-[RID_RESXLS_COST_Issue__AutoFilter_does_not_function_properly]
-en-US = "Issue: AutoFilter does not function properly."
-
-[RID_RESXLS_COST_Issue__Calls_to_windows_API_functions_are_windows_specific]
-en-US = "Issue: Calls to windows API functions are windows specific."
-
-[RID_RESXLS_COST_Issue__Chart_support_is_limited_in_SO7]
-en-US = "Issue: Chart support is limited in <PRODUCTNAME>."
-
-[RID_RESXLS_COST_Issue__Comments_are_lost_on_migration_to_SO7]
-en-US = "Issue: Comments are lost on migration to <PRODUCTNAME>."
-
-[RID_RESXLS_COST_Issue__Custom_Properties_are_lost_on_migration]
-en-US = "Issue: Custom Properties are lost on migration"
-
-[RID_RESXLS_COST_Issue__Document_is_password_protected_and_cannot_be_opened_by_SO]
-en-US = "Issue: Document is password protected and cannot be opened by SO."
-
-[RID_RESXLS_COST_Issue__External_functions_not_supported_by_SO7]
-en-US = "Issue: External functions not supported by <PRODUCTNAME>"
-
-[RID_RESXLS_COST_Issue__External_references_are_windows_specific]
-en-US = "Issue: External references are windows specific."
-
-[RID_RESXLS_COST_Issue__Fields_are_imported_but_need_to_have_the_link_to_datasource_reset]
-en-US = "Issue: Fields are imported but need to have the link to data source reset."
-
-[RID_RESXLS_COST_Issue__Graphics___frames_in_header_footer_tend_to_be_misplaced]
-en-US = "Issue: Graphics & frames in header footer tend to be misplaced."
-
-[RID_RESXLS_COST_Issue__Incorrect_password_entered]
-en-US = "Issue: Incorrect password entered. "
-
-[RID_RESXLS_COST_Issue__Information_relating_to_the_data_source_is_lost_in_migration]
-en-US = "Issue: Information relating to the data source is lost in migration."
-
-[RID_RESXLS_COST_Issue__Invalid_password_entered_Rerun_analysis]
-en-US = "Issue: Invalid password entered. Rerun analysis."
-
-[RID_RESXLS_COST_Issue__Lost_during_migration_No_StarOffice_equivalent]
-en-US = "Issue: Lost during migration. No <PRODUCTNAME> equivalent."
-
-[RID_RESXLS_COST_Issue__Macros_from_old_workbook_versions_do_not_import_into_SO7]
-en-US = "Issue: Macros from old workbook versions do not import into SO9."
-
-[RID_RESXLS_COST_Issue__Modules_will_need_porting_to_StarOffice_Basic]
-en-US = "Issue: Modules will need porting to <PRODUCTNAME> Basic."
-
-[RID_RESXLS_COST_Issue__Most_migrate_ok_but_do_not_roundtrip]
-en-US = "Issue: Most migrate ok but do not roundtrip."
-
-[RID_RESXLS_COST_Issue__Movies_are_not_supported_by_SO7]
-en-US = "Issue: Movies are not supported by <PRODUCTNAME>."
-
-[RID_RESXLS_COST_Issue__Need_to_set_these_to_be_included_in_TOC_in_SO7]
-en-US = "Issue: Need to set these to be included in TOC in <PRODUCTNAME>"
-
-[RID_RESXLS_COST_Issue__Password_protection_of_comments__tracked_changes_and_forms_is_lost]
-en-US = "Issue: Password protection of comments, tracked changes and forms is lost."
-
-[RID_RESXLS_COST_Issue__Pivot_charts_are_not_supported_by_SO7]
-en-US = "Issue: Pivot charts are not supported by <PRODUCTNAME>."
-
-[RID_RESXLS_COST_Issue__Presents_a_cross_platform_interoperability_issue]
-en-US = "Issue: Presents a cross platform interoperability issue."
-
-[RID_RESXLS_COST_Issue__Print_wide_pages_not_supported]
-en-US = "Issue: Print wide pages not supported."
-
-[RID_RESXLS_COST_Issue__Shading_can_be_applied_to_fields_and_to_controls_separately_in_Word]
-en-US = "Issue: Shading can be applied to fields and to controls separately in Word. <PRODUCTNAME> does not differentiate between controls and fields so shading can look different in Writer."
-
-[RID_RESXLS_COST_Issue__Table_imported_as_text_as_no_StarOffice_equivalent]
-en-US = "Issue: Table imported as text as no <PRODUCTNAME> equivalent."
-
-[RID_RESXLS_COST_Issue__Tables_nested_in_tables_are_not_supported_by_SO7]
-en-US = "Issue: Tables nested in tables are not supported by <PRODUCTNAME>."
-
-[RID_RESXLS_COST_Issue__Tabs_are_incorrect_after_migration]
-en-US = "Issue: Tabs are incorrect after migration. Certain format types do not migrate to <PRODUCTNAME>."
-
-[RID_RESXLS_COST_Issue__Text_form_fields_roundtrip_as_Fill_In_field]
-en-US = "Issue: Text form fields roundtrip as Fill In field. Field attributes are lost."
-
-[RID_RESXLS_COST_Issue__Unsupported_formatting_set]
-en-US = "Issue: Unsupported formatting set."
-
-[RID_RESXLS_COST_Issue__Unsupported_function_type]
-en-US = "Issue: Unsupported function type. "
-
-[RID_RESXLS_COST_Issue__Userform_controls_will_need_porting_to_StarOffice_Basic]
-en-US = "Issue: Userform controls will need porting to <PRODUCTNAME> Basic."
-
-[RID_RESXLS_COST_Issue__Userforms_controls_will_need_porting_to_StarOffice_Basic]
-en-US = "Issue: Userform controls will need porting to <PRODUCTNAME> Basic."
-
-[RID_RESXLS_COST_Issue__Userforms_will_need_porting_to_StarOffice_Basic]
-en-US = "Issue: Userforms will need porting to <PRODUCTNAME> Basic."
-
-[RID_RESXLS_COST_Issue__VBProject_is_password_protected_Remove_password__rerun_analysis]
-en-US = "Issue: VBProject is password protected. Remove password, rerun analysis."
-
-[RID_RESXLS_COST_Issue__Will_need_refreshing_in_SO7_External_datasources_and_functions_are_not_supported]
-en-US = "Issue: Will need refreshing in <PRODUCTNAME>. External data sources and functions are not supported"
-
-[RID_RESXLS_COST_Issue__Workbook_protection_is_not_supported]
-en-US = "Issue: Workbook protection is not supported"
-
-[RID_RESXLS_COST_Issue__Writer_cannot_correctly_display_cells_spanning_more_than_1_page]
-en-US = "Issue: Writer cannot correctly display cells spanning more than 1 page."
-
-[RID_RESXLS_COST_Issue_Category]
-en-US = "Issue Category"
-
-[RID_RESXLS_COST_Issue_Count]
-en-US = " Issue Count"
-
-[RID_RESXLS_COST_Issue_Type]
-en-US = "Issue Type"
-
-[RID_RESXLS_COST_Linked_OLE_Object]
-en-US = "Linked OLE Object"
-
-[RID_RESXLS_COST_Mail_Merge_Datasource]
-en-US = "Mail Merge Data Source"
-
-[RID_RESXLS_COST_Mail_Merge_Field]
-en-US = "Mail Merge Field"
-
-[RID_RESXLS_COST_Major_Issue]
-en-US = "Complex Issue"
-
-[RID_RESXLS_COST_MAX_SHEETS_WORKAROUND]
-en-US = "Need to move sheets to new workbook. "
-
-[RID_RESXLS_COST_Maximum_Rows_Exceeded]
-en-US = "Maximum Rows Exceeded"
-
-[RID_RESXLS_COST_Maximum_Sheets_Exceeded]
-en-US = "Maximum Sheets Exceeded"
-
-[RID_RESXLS_COST_Migration_Issues_Costs]
-en-US = "Migration Issues Analyzed"
-
-[RID_RESXLS_COST_Movie]
-en-US = "Movie"
-
-[RID_RESXLS_COST_NESTED_TABLE_WORKAROUND]
-en-US = "In word use split cell to create similar layout."
-
-[RID_RESXLS_COST_Nested_Tables]
-en-US = "Nested Tables"
-
-[RID_RESXLS_COST_Not_Planned]
-en-US = "Not Planned"
-
-[RID_RESXLS_COST_Notes_And_Handouts]
-en-US = "Notes And Handouts"
-
-[RID_RESXLS_COST_Number_Of_External_References]
-en-US = "Number Of External References"
-
-[RID_RESXLS_COST_Number_Of_Lines]
-en-US = "Number Of Lines"
-
-[RID_RESXLS_COST_Number_of_Lines_in_Unique_Modules]
-en-US = "Number of Lines in Unique Code Modules"
-
-[RID_RESXLS_COST_Number_of_Modules]
-en-US = "Number of Modules"
-
-[RID_RESXLS_COST_Number_of_Unique_Modules]
-en-US = "Number of Unique Code Modules"
-
-[RID_RESXLS_COST_Numbering_Reference]
-en-US = "Numbering Reference"
-
-[RID_RESXLS_COST_Numbering_Reference_Comment]
-en-US = "Issue: <PRODUCTNAME> can not import references that refer in a numbered list."
-
-[RID_RESXLS_COST_Object_In_Header_Footer]
-en-US = "Object In Header Footer"
-
-[RID_RESXLS_COST_Objects_And_Graphics]
-en-US = "Objects And Graphics"
-
-[RID_RESXLS_COST_Objects_Graphics_And_Frames]
-en-US = "Objects Graphics And Frames"
-
-[RID_RESXLS_COST_Objects_Graphics_And_Textboxes]
-en-US = "Objects Graphics And Textboxes"
-
-[RID_RESXLS_COST_Old_Workbook_Version]
-en-US = "Old Workbook Version"
-
-[RID_RESXLS_COST_OLE_Control]
-en-US = "OLE Control"
-
-[RID_RESXLS_COST_OLECONTR_COST]
-en-US = "Cost variations occur because of the use of macros with controls."
-
-[RID_RESXLS_COST_Page_Setup]
-en-US = "Page Setup"
-
-[RID_RESXLS_COST_Password_Protected]
-en-US = "Password Protected"
-
-[RID_RESXLS_COST_Password_Protection]
-en-US = "Password Protection"
-
-[RID_RESXLS_COST_Pivot]
-en-US = "Pivot Chart"
-
-[RID_RESXLS_COST_Planned_SO8]
-en-US = "Planned"
-
-[RID_RESXLS_COST_Portability]
-en-US = "Portability"
-
-[RID_RESXLS_COST_PowerPoint]
-en-US = "PowerPoint"
-
-[RID_RESXLS_COST_PowerPoint_Totals]
-en-US = "PowerPoint Totals"
-
-[RID_RESXLS_COST_Prepared_Issue_Count]
-en-US = "Prepared Issue Count"
-
-[RID_RESXLS_COST_Prepared_Savings__min]
-en-US = "Prepared Savings (min)"
-
-[RID_RESXLS_COST_Properties___Module__Class_or_UserForm]
-en-US = "Properties - Module, Class or UserForm"
-
-[RID_RESXLS_COST_Remove_password_to_open]
-en-US = "Remove password to open."
-
-[RID_RESXLS_COST_Remove_the_invalid_characters_from_the_worksheet_name]
-en-US = "Remove the invalid characters from the worksheet name."
-
-[RID_RESXLS_COST_Rerun_analysis_with_correct_password]
-en-US = "Rerun analysis with correct password."
-
-[RID_RESXLS_COST_Reset_link_to_Data_Base_having_setup_a_Datasource_in_SO7]
-en-US = "Reset link to database having setup a data source in <PRODUCTNAME>."
-
-[RID_RESXLS_COST_set_cost_factor_if_the_macro_has_to_be_ported_off_Windows]
-en-US = "Cost = 0. Set a cost factor if the macro has to be ported off Windows. "
-
-[RID_RESXLS_COST_Save_workbook_as_a_new_workbook_version]
-en-US = "Save workbook as a new workbook version."
-
-[RID_RESXLS_COST_Setup_Datasource_in_SO7_using_Tools__Datasource]
-en-US = "Setup data source in <PRODUCTNAME> using Tools/Data source"
-
-[RID_RESXLS_COST_Sheet_Chart]
-en-US = "Chart Issues Complex"
-
-[RID_RESXLS_COST_Status]
-en-US = "Status"
-
-[RID_RESXLS_COST_Table_Of_Authorities]
-en-US = "Table Of Authorities"
-
-[RID_RESXLS_COST_Table_Of_Authorities_Field]
-en-US = "Table Of Authorities Field"
-
-[RID_RESXLS_COST_Table_Of_Contents]
-en-US = "Table Of Contents"
-
-[RID_RESXLS_COST_Tables]
-en-US = "Tables"
-
-[RID_RESXLS_COST_TOC_ISSUE_WORKAROUND]
-en-US = "Tab Issues: use fancy format. Numbering incorrect: remove blank lines with heading style used by TOC. Numbering abuts Header: replace leading tabs in Header style used in TOC with spaces."
-
-[RID_RESXLS_COST_Total_Cost___MD]
-en-US = "Total Cost (MD) = "
-
-[RID_RESXLS_COST_User_Error]
-en-US = "User Error"
-
-[RID_RESXLS_COST_User_Forms_Control_Count]
-en-US = "User Forms Control Count"
-
-[RID_RESXLS_COST_User_Forms_Control_Type_Count]
-en-US = "User Forms Control Type Count"
-
-[RID_RESXLS_COST_User_Forms_Count]
-en-US = "User Forms Count"
-
-[RID_RESXLS_COST_VBA_Macros]
-en-US = "VBA Macros"
-
-[RID_RESXLS_COST_Word]
-en-US = "Word"
-
-[RID_RESXLS_COST_Word_Totals]
-en-US = "Word Totals"
-
-[RID_RESXLS_COST_Work_Around]
-en-US = "Work Around"
-
-[RID_RESXLS_COST_Workaround_Remove_protection_before_importing]
-en-US = "Remove protection before importing"
-
-[RID_RESXLS_COST_WorkbookProtection]
-en-US = "WorkbookProtection "
-
-[RID_RESXLS_DP_Accessed]
-en-US = "Accessed"
-
-[RID_RESXLS_DP_All_Analysed_Documents___Properties]
-en-US = "All Analysed Documents - properties"
-
-[RID_RESXLS_DP_Application]
-en-US = "Application"
-
-[RID_RESXLS_DP_Based_on_Template]
-en-US = "Based on Template"
-
-[RID_RESXLS_DP_Costs]
-en-US = "Costs"
-
-[RID_RESXLS_DP_Created]
-en-US = "Created"
-
-[RID_RESXLS_DP_Document_Details]
-en-US = "Document Details"
-
-[RID_RESXLS_DP_Document_Issue_Costs]
-en-US = "Document Migration Costs (min)"
-
-[RID_RESXLS_DP_Document_Migration_Issues]
-en-US = "Document Migration Issues"
-
-[RID_RESXLS_DP_Document_Name]
-en-US = "Document Name"
-
-[RID_RESXLS_DP_Document_Name_and_Path]
-en-US = "Document Name and Path"
-
-[RID_RESXLS_DP_Issues_Complex_count]
-en-US = "Issues Complex Count"
-
-[RID_RESXLS_DP_Last_Saved_By]
-en-US = "Last Saved By"
-
-[RID_RESXLS_DP_Lines_of_Macro_Code]
-en-US = "Lines of Macro Code"
-
-[RID_RESXLS_DP_Macro_Issues]
-en-US = "Macro Migration Issues"
-
-[RID_RESXLS_DP_Macro_Migration_Costs]
-en-US = "Macro Migration Costs (min)"
-
-[RID_RESXLS_DP_Macro_Migration_Issues]
-en-US = "Macro Migration Issues"
-
-[RID_RESXLS_DP_Migration_Issues]
-en-US = "Document Migration Issues"
-
-[RID_RESXLS_DP_Minor_Issues]
-en-US = "Issues Minor Count"
-
-[RID_RESXLS_DP_Modified]
-en-US = "Modified"
-
-[RID_RESXLS_DP_Pages_Sheets_Slides]
-en-US = "Pages, Sheets or Slides Count"
-
-[RID_RESXLS_DP_Prepareable_Issues_Costs]
-en-US = "Prepareable Issues Savings (min)"
-
-[RID_RESXLS_DP_Prepared_Issues]
-en-US = "Prepareable Document Issues"
-
-[RID_RESXLS_DP_Printed]
-en-US = "Printed"
-
-[RID_RESXLS_DP_Revision]
-en-US = "Revision"
-
-[RID_RESXLS_DP_User_Form_Count]
-en-US = "User Form Count"
-
-[RID_RESXLS_ID_All_Documents_with_Issues___Issue_Details]
-en-US = "All Documents with Issues - Issue Details"
-
-[RID_RESXLS_ID_Application]
-en-US = "Application"
-
-[RID_RESXLS_ID_Column__Left]
-en-US = "Column/ Left"
-
-[RID_RESXLS_ID_Document_Name]
-en-US = "Document Name"
-
-[RID_RESXLS_ID_Document_Name_and_Path]
-en-US = "Document Name and Path"
-
-[RID_RESXLS_ID_Issue_Category]
-en-US = "Issue Category"
-
-[RID_RESXLS_ID_Issue_Details]
-en-US = "Issue Details"
-
-[RID_RESXLS_ID_Issue_Type]
-en-US = "Issue Type"
-
-[RID_RESXLS_ID_Line__Row__Top]
-en-US = "Line/ Row/ Top"
-
-[RID_RESXLS_ID_Location]
-en-US = "Location"
-
-[RID_RESXLS_ID_Location_Type]
-en-US = "Location Type"
-
-[RID_RESXLS_OV_3_to_6_months]
-en-US = "3 - 6 months"
-
-[RID_RESXLS_OV_6_to_12_months]
-en-US = "6 - 12 months"
-
-[RID_RESXLS_OV_Complex]
-en-US = "Complex"
-
-[RID_RESXLS_OV_Cost_estimates_for_migration]
-en-US = "Cost estimates for migration of all analyzed documents"
-
-[RID_RESXLS_OV_Costs]
-en-US = "Costs (MD)"
-
-[RID_RESXLS_OV_Docs_with_DocumentMigrationIssues]
-en-US = "Documents with Document Migration Issues (excludes macro issues)"
-
-[RID_RESXLS_OV_Document_Migration_Costs]
-en-US = "Document Migration Costs<CR>( costs based on: issues listed in Issues Analyzed, excludes macros issues )"
-
-[RID_RESXLS_OV_Document_Modification_Dates]
-en-US = "Document Modification Dates"
-
-[RID_RESXLS_OV_Document_Type]
-en-US = "Type"
-
-[RID_RESXLS_OV_Documents_with_Macro_Migration_Issues]
-en-US = "Documents with Macro Migration Issues"
-
-[RID_RESXLS_OV_Excel]
-en-US = "Excel"
-
-[RID_RESXLS_OV_Excel_Costs]
-en-US = "Excel "
-
-[RID_RESXLS_OV_Excel_Spreadsheet]
-en-US = " Spreadsheets (.xls)"
-
-[RID_RESXLS_OV_Excel_Template]
-en-US = " Templates (.xlt)"
-
-[RID_RESXLS_OV_GREATER_THAN_1_year]
-en-US = "> 1 year"
-
-[RID_RESXLS_OV_Last_Modified]
-en-US = "Last Modified"
-
-[RID_RESXLS_OV_LESS_3_months]
-en-US = "< 3 months"
-
-[RID_RESXLS_OV_LESS_THAN3MONTHS]
-en-US = "Templates (.dot)"
-
-[RID_RESXLS_OV_Macro_Migration_Costs]
-en-US = "Manual Macro Migration Costs<CR>( costs based on: number of lines in unique code modules and number of user form controls )"
-
-[RID_RESXLS_OV_Medium]
-en-US = "Medium"
-
-[RID_RESXLS_OV_Minor]
-en-US = "Minor"
-
-[RID_RESXLS_OV_None]
-en-US = "None"
-
-[RID_RESXLS_OV_Number]
-en-US = "Number"
-
-[RID_RESXLS_OV_Number_of_Documents_Analyzed]
-en-US = "Number of Documents Analyzed"
-
-[RID_RESXLS_OV_NumberOfDocs]
-en-US = "Number of docs"
-
-[RID_RESXLS_OV_Potential_savings_macro_conversion]
-en-US = "Potential Savings with Automated Macro Migration of 20 to 60%"
-
-[RID_RESXLS_OV_Potential_savings_prepared_docs]
-en-US = "Potential Savings with Automated Preparation"
-
-[RID_RESXLS_OV_PowerPoint]
-en-US = "PowerPoint"
-
-[RID_RESXLS_OV_PowerPoint_Costs]
-en-US = "PowerPoint "
-
-[RID_RESXLS_OV_PowerPoint_Document]
-en-US = " Presentations (.ppt)"
-
-[RID_RESXLS_OV_PowerPoint_Template]
-en-US = " Templates (.pot)"
-
-[RID_RESXLS_OV_Simple]
-en-US = "Simple"
-
-[RID_RESXLS_OV_Total]
-en-US = "Total"
-
-[RID_RESXLS_OV_Totals]
-en-US = "Totals"
-
-[RID_RESXLS_OV_Word]
-en-US = "Word"
-
-[RID_RESXLS_OV_Word_Costs]
-en-US = "Word "
-
-[RID_RESXLS_OV_Word_Document]
-en-US = "Documents (.doc)"
-
-[RID_RESXLS_OV_Word_Template]
-en-US = "Templates (.dot)"
-
-[RID_RESXLS_PP_Action_Settings]
-en-US = "Action Settings"
-
-[RID_RESXLS_PP_Application]
-en-US = "Application"
-
-[RID_RESXLS_PP_Content___Document_Properties]
-en-US = "Content & Document Properties"
-
-[RID_RESXLS_PP_Document_Name_and_Path]
-en-US = "Document Name and Path"
-
-[RID_RESXLS_PP_Fields]
-en-US = "Fields"
-
-[RID_RESXLS_PP_Format]
-en-US = "Format"
-
-[RID_RESXLS_PP_Notes___Handouts]
-en-US = "Notes & Handouts"
-
-[RID_RESXLS_PP_Objects__Graphics___Textboxes]
-en-US = "Objects, Graphics & Textboxes"
-
-[RID_RESXLS_PP_Portability]
-en-US = "Portability"
-
-[RID_RESXLS_PP_PowerPoint_Documents_with_Issues___Issue_Summary]
-en-US = "PowerPoint Documents with Issues - Issue Summary"
-
-[RID_RESXLS_PP_PowerPoint_Presentation_Name]
-en-US = "PowerPoint Presentation Name"
-
-[RID_RESXLS_PP_VBA_Macros]
-en-US = "VBA Macros"
-
-[RID_RESXLS_RD_All_Documents_with_Macros___Reference_Details]
-en-US = "All Documents with Macros - Reference Details"
-
-[RID_RESXLS_RD_Application]
-en-US = "Application"
-
-[RID_RESXLS_RD_Description]
-en-US = "Description"
-
-[RID_RESXLS_RD_Document_Name]
-en-US = "Document Name"
-
-[RID_RESXLS_RD_Document_Name_and_Path]
-en-US = "Document Name and Path"
-
-[RID_RESXLS_RD_Location]
-en-US = "Location"
-
-[RID_RESXLS_RD_Reference]
-en-US = "Reference"
-
-[RID_RESXLS_RD_Reference_Details]
-en-US = "Reference Details"
-
-[RID_RESXLS_WI_Application]
-en-US = "Application"
-
-[RID_RESXLS_WI_Changes_and_Reviewing]
-en-US = "Changes and Reviewing"
-
-[RID_RESXLS_WI_Content___Document_Properties]
-en-US = "Content & Document Properties"
-
-[RID_RESXLS_WI_Controls]
-en-US = "Controls"
-
-[RID_RESXLS_WI_Document_Name_and_Path]
-en-US = "Document Name and Path"
-
-[RID_RESXLS_WI_Fields]
-en-US = "Fields"
-
-[RID_RESXLS_WI_Format]
-en-US = "Format"
-
-[RID_RESXLS_WI_Index_and_References]
-en-US = "Index and References"
-
-[RID_RESXLS_WI_Objects__Graphics____Frames]
-en-US = "Objects, Graphics & Frames"
-
-[RID_RESXLS_WI_Portability]
-en-US = "Portability"
-
-[RID_RESXLS_WI_Tables]
-en-US = "Tables"
-
-[RID_RESXLS_WI_VBA_Macros]
-en-US = "VBA Macros"
-
-[RID_RESXLS_WI_Word_Document_Name]
-en-US = "Word Document Name"
-
-[RID_RESXLS_WI_Word_Documents_with_Issues___Issue_Summary]
-en-US = "Word Documents with Issues - Issue Summary"
-
-[RID_RESXLS_XL_Application]
-en-US = "Application"
-
-[RID_RESXLS_XL_Changes___Reviewing]
-en-US = "Changes & Reviewing"
-
-[RID_RESXLS_XL_Charts___Tables]
-en-US = "Charts & Tables"
-
-[RID_RESXLS_XL_Excel_Documents_with_Issues___Issue_Summary]
-en-US = "Excel Documents with Issues - Issue Summary"
-
-[RID_RESXLS_XL_Excel_Spreadsheet_Name]
-en-US = "Excel Spreadsheet Name"
-
-[RID_RESXLS_XL_Filters]
-en-US = "Filters"
-
-[RID_RESXLS_XL_Format]
-en-US = "Format"
-
-[RID_RESXLS_XL_Functions]
-en-US = "Functions"
-
-[RID_RESXLS_XL_Objects___Graphics]
-en-US = "Objects & Graphics"
-
-[RID_STR_DVR_XL_EXCEL_DRIVER]
-en-US = "Excel Driver"
-
-[RID_STR_DVR_XL_ISSUES]
-en-US = "2. Issues"
-
-[RID_STR_DVR_XL_PURPOSE]
-en-US = "1. Purpose"
-
-[RID_STR_DVR_XL_READ_README]
-en-US = "If there are any problems running the Wizard please refer to the Readme.doc"
-
-[RID_STR_DVR_XL_THE_MACROS]
-en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of Excel documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool."
-
-[RID_STR_DVR_XL_THIS_DOC]
-en-US = "This document contains VBA macros which collect and analyse Excel documents for known issues when importing into <PRODUCTNAME>"
-
-[RID_STR_DVR_XL_TITLE]
-en-US = "<PRODUCTNAME> Migration Analysis - Excel Driver"
-
-[RID_STR_DVR_PP_TXT2]
-en-US = "This document contains VBA macros which collect and analyse PowerPoint documents for known issues when importing into <PRODUCTNAME>"
-
-[RID_STR_DVR_PP_TXT3]
-en-US = "<PRODUCTNAME> Migration Analysis - PowerPoint Driver"
-
-[RID_STR_DVR_PP_TXT4]
-en-US = "PowerPoint Driver"
-
-[RID_STR_DVR_PP_TXT5]
-en-US = "Purpose"
-
-[RID_STR_DVR_PP_TXT6]
-en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of PowerPoint documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool."
-
-[RID_STR_DVR_PP_TXT7]
-en-US = "Issues"
-
-[RID_STR_DVR_PP_TXT8]
-en-US = "If there are any problems running the Wizard please refer to the Readme.doc"
-
-[RID_STR_WDVR_SOANA]
-en-US = "<PRODUCTNAME> MIGRATION ANALYSIS - WORD DRIVER"
-
-[RID_STR_WDVR_INTRO]
-en-US = "This document contains VBA macros, which collect and analyse Word documents for known issues when importing into <PRODUCTNAME>"
-
-[RID_STR_WDVR_TITLE]
-en-US = "Word Driver"
-
-[RID_STR_WDVR_PURPO]
-en-US = "Purpose"
-
-[RID_STR_WDVR_PARA1]
-en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of Word documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool."
-
-[RID_STR_WDVR_ISSUE]
-en-US = "Issues"
-
-[RID_STR_WDVR_PARA2]
-en-US = "If there are any problems running the Wizard please refer to the Readme.doc"
-
-[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_COMMENTS]
-en-US = "Allow Only Comments"
-
-[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_FORM_FIELDS]
-en-US = "Allow Only FormFields"
-
-[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_REVISIONS]
-en-US = "Allow Only Revisions"
-
-[RID_STR_WORD_ATTRIBUTE_AUTHOR]
-en-US = "Author"
-
-[RID_STR_WORD_ATTRIBUTE_DATASOURCE]
-en-US = "Datasource"
-
-[RID_STR_WORD_ATTRIBUTE_FIELD_TEXT]
-en-US = "Field Text"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_AUTOSIZE]
-en-US = "Autosize"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_ENTRY_MACRO]
-en-US = "Entry macro"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_EXIT_MACRO]
-en-US = "Exit macro"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_FILLIN_ENABLED]
-en-US = "Fill-in enabled"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_GREYED]
-en-US = "FormFields Greyed"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_AUTO_TEXT]
-en-US = "Help Key(F1) [Auto Text]"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_OWN_TEXT]
-en-US = "Help Key(F1) [Own Text]"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_LOCKED]
-en-US = "Locked"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_MAX_LENGTH]
-en-US = "Maximum Length"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_AUTO_TEXT]
-en-US = "Status Bar Help [Auto Text]"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_OWN_TEXT]
-en-US = "Status Bar Help [Own Text]"
-
-[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_TEXT_FORM_FIELD_TYPE]
-en-US = "Text Form Field Type"
-
-[RID_STR_WORD_ATTRIBUTE_FOOTER]
-en-US = "Footer"
-
-[RID_STR_WORD_ATTRIBUTE_HEADER]
-en-US = "Header"
-
-[RID_STR_WORD_ATTRIBUTE_FRAME]
-en-US = "Frame"
-
-[RID_STR_WORD_ATTRIBUTE_GRAPHIC]
-en-US = "Graphic"
-
-[RID_STR_WORD_ATTRIBUTE_OBJECT_HEIGHT_GT_H]
-en-US = "Height Greater Than Header Height"
-
-[RID_STR_WORD_ATTRIBUTE_OBJECT_HEIGHT_GT_F]
-en-US = "Height Greater Than Footer Height"
-
-[RID_STR_WORD_ATTRIBUTE_NUM_OF_GRAPHIC]
-en-US = "Number of Graphics"
-
-[RID_STR_WORD_ATTRIBUTE_OBJECT_LOCATED_BELOW_HEADER]
-en-US = "Located Below Header"
-
-[RID_STR_WORD_ATTRIBUTE_NUM_OF_FRAME]
-en-US = "Number of Frames"
-
-[RID_STR_WORD_ATTRIBUTE_HEADER_EVEN_PAGES]
-en-US = "Even Page(s)"
-
-[RID_STR_WORD_ATTRIBUTE_HEADER_FIRST_PAGE]
-en-US = "First Page"
-
-[RID_STR_WORD_ATTRIBUTE_HEADER_ODD_PAGES]
-en-US = "Odd Page(s)"
-
-[RID_STR_WORD_ATTRIBUTE_HEADER_PAGE_DEFAULT]
-en-US = "Page Default"
-
-[RID_STR_WORD_ATTRIBUTE_GRAPHICTYPE]
-en-US = "Graphic Type"
-
-[RID_STR_WORD_ATTRIBUTE_INLINESHAPE]
-en-US = "Inline Shape"
-
-[RID_STR_WORD_ATTRIBUTE_INNER_TABLE]
-en-US = "InnerTable"
-
-[RID_STR_WORD_ATTRIBUTE_LEADER]
-en-US = "Leader"
-
-[RID_STR_WORD_ATTRIBUTE_LINK]
-en-US = "Link"
-
-[RID_STR_WORD_ATTRIBUTE_LOCATION]
-en-US = "Location"
-
-[RID_STR_WORD_ATTRIBUTE_NUMBER_CUSTOM_PARAGRAPHS]
-en-US = "Number of custom paragraphs"
-
-[RID_STR_WORD_ATTRIBUTE_OUTER_TABLE]
-en-US = "Outer Table"
-
-[RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_MODIFY]
-en-US = "Password to Modify"
-
-[RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_OPEN]
-en-US = "Password to Open"
-
-[RID_STR_WORD_ATTRIBUTE_PROTECTION]
-en-US = "Protection"
-
-[RID_STR_WORD_ATTRIBUTE_SET]
-en-US = "Set"
-
-[RID_STR_WORD_ATTRIBUTE_START_COL]
-en-US = "Start Column"
-
-[RID_STR_WORD_ATTRIBUTE_START_ROW]
-en-US = "Start Row"
-
-[RID_STR_WORD_ATTRIBUTE_TEXT]
-en-US = "Text"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_ISSUE]
-en-US = "Potential problem with TOC Format matching Modern style"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_NOT_MIGRATE_CLEAN]
-en-US = "TOC Format will not migrate cleanly"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_NOT_ROUNDTRIP_CLEAN]
-en-US = "TOC will not roundtrip cleanly due to following settings"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FROM_TEMPLATE_WITH_LEVEL]
-en-US = "Format [FromTemplate] Level"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FROM_TEMPLATE_TAB_DOTS]
-en-US = "Format [FromTemplate] TabLeader [Dots]"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FORMAL_WITH_LEVEL]
-en-US = "Format [Formal] Level"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_CLASSIC_WITH_LEVEL]
-en-US = "Format [Classic] Level"
-
-[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_DISTINCTIVE_WITH_LEVEL]
-en-US = "Format [Distinctive] Level"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_CALCULATION]
-en-US = "Calculation"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_CHECK_BOX]
-en-US = "Check Box Form Field"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_DATE]
-en-US = "Current Date"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_TIME]
-en-US = "Current Time"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DATE]
-en-US = "Date"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE]
-en-US = "Default date"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_EXPRESSION]
-en-US = "Expression"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_NUMBER]
-en-US = "Default number"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TEXT]
-en-US = "Default text"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TIME]
-en-US = "Default time"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_DROP_DOWN]
-en-US = "Drop-Down Form Field"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE]
-en-US = "Date format"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER]
-en-US = "Number format"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TEXT]
-en-US = "Text format"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TIME]
-en-US = "Time format"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_NUMBER]
-en-US = "Number"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_REGULAR]
-en-US = "Regular"
-
-[RID_STR_WORD_ENUMERATION_FORM_FIELD_TEXT]
-en-US = "Text Form Field"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_ASK]
-en-US = "Ask"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER]
-en-US = "Auto Number"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_LEGAL]
-en-US = "Auto Number Legal"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_OUTLINE]
-en-US = "Auto Number Outline"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_FIELD_NAME_NOT_KNOWN]
-en-US = "Field name not known"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_FILL_IN]
-en-US = "Fill In"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_RECORDS]
-en-US = "Merge Records"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_FIELDS]
-en-US = "Merge Fields"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_NEXT]
-en-US = "Next"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_REVISION_NUMBER]
-en-US = "Revision Number"
-
-[RID_STR_WORD_ENUMERATION_MAILMERGE_SEQUENCE]
-en-US = "Sequence"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_CLASSIC]
-en-US = "Classic"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_DISTINCTIVE]
-en-US = "Distinctive"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FANCY]
-en-US = "Fancy"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FORMAL]
-en-US = "Formal"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_MODERN]
-en-US = "Modern"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_SIMPLE]
-en-US = "Simple"
-
-[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FROM_TEMPLATE]
-en-US = "From Template"
-
-[RID_STR_WORD_ENUMERATION_INDEX_LEADER_DASHES]
-en-US = "Dashes"
-
-[RID_STR_WORD_ENUMERATION_INDEX_LEADER_DOTS]
-en-US = "Dots"
-
-[RID_STR_WORD_ENUMERATION_INDEX_LEADER_HEAVY]
-en-US = "Heavy"
-
-[RID_STR_WORD_ENUMERATION_INDEX_LEADER_LINES]
-en-US = "Lines"
-
-[RID_STR_WORD_ENUMERATION_INDEX_LEADER_MIDDLEDOT]
-en-US = "MiddleDot"
-
-[RID_STR_WORD_ENUMERATION_INDEX_LEADER_SPACES]
-en-US = "Spaces"
-
-[RID_STR_WORD_ENUMERATION_UNKNOWN]
-en-US = "Unknown"
-
-[RID_STR_WORD_FALSE]
-en-US = "False"
-
-[RID_STR_WORD_TRUE]
-en-US = "True"
-
-[RID_STR_WORD_ISSUE_FIELDS]
-en-US = "Fields"
-
-[RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES]
-en-US = "Indexes and References"
-
-[RID_STR_WORD_ISSUE_OBJECTS_GRAPHICS_AND_FRAMES]
-en-US = "Objects, Graphics and Frames"
-
-[RID_STR_WORD_ISSUE_TABLES]
-en-US = "Tables"
-
-[RID_STR_WORD_NOTE_FORM_FIELD_ATTRIBUTES_LOST]
-en-US = "following attribute values lost"
-
-[RID_STR_WORD_NOTE_FORM_FIELD_TYPE_LOST]
-en-US = "Type lost, converted to plain text"
-
-[RID_STR_WORD_NOTE_NESTED_TABLE_WILL_BE_LOST]
-en-US = "The inner table will be lost on roundtrip."
-
-[RID_STR_WORD_NOTE_TOA_FIELD_LOST_ON_ROUNDTRIP]
-en-US = "Field will be lost on roundtrip"
-
-[RID_STR_WORD_NOTE_TOA_MIGRATE_AS_PLAIN_TEXT]
-en-US = "Table will migrate as plain text"
-
-[RID_STR_WORD_SUBISSUE_APPEARANCE]
-en-US = "Appearance"
-
-[RID_STR_WORD_SUBISSUE_COMMENT]
-en-US = "Comment"
-
-[RID_STR_WORD_SUBISSUE_CUSTOM_BULLET_LIST]
-en-US = "Custom bullet list"
-
-[RID_STR_WORD_SUBISSUE_FORM_FIELD]
-en-US = "Form Field"
-
-[RID_STR_WORD_SUBISSUE_MAILMERGE_DATASOURCE]
-en-US = "Mail Merge Datasource"
-
-[RID_STR_WORD_SUBISSUE_MAILMERGE_FIELD]
-en-US = "Mail Merge Field"
-
-[RID_STR_WORD_SUBISSUE_NESTED_TABLES]
-en-US = "Nested Tables"
-
-[RID_STR_WORD_SUBISSUE_OBJECT_IN_HEADER_FOOTER]
-en-US = "Object in Header Footer"
-
-[RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES]
-en-US = "Table of Authorities"
-
-[RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD]
-en-US = "Table of Authorities Field"
-
-[RID_RESXLT_COST_CHART_Radar_AWF]
-en-US = "Radar chart, Radar with symbol"
-
-[RID_RESXLT_COST_CHART_Radar_Comment]
-en-US = "Although <PRODUCTNAME> Net charts appear similar to Excel Radar charts, but they are not equivalent. Radar charts are drawn clockwise whereas Net charts are drawn counter-clockwise."
-
-[RID_RESXLT_COST_CHART_Scattered_AWF]
-en-US = "Scattered chart"
-
-[RID_RESXLT_COST_CHART_Scattered_Comment]
-en-US = "The XY-Chart of <PRODUCTNAME> has the same appearance as the scattered chart in Excel."
-
-[RID_RESXLT_COST_CHART_Bubble_AWF]
-en-US = "Bubble chart"
-
-[RID_RESXLT_COST_CHART_Bubble_Comment]
-en-US = "XY-Chart has similar functionality to a Bubble chart in Excel but a completely different look."
-
-[RID_RESXLT_COST_CHART_BarOfPie_AWF]
-en-US = "Bar of Pie and Pie of Pie charts"
-
-[RID_RESXLT_COST_CHART_BarOfPie_Comment]
-en-US = "<PRODUCTNAME> imports these types of charts as Column charts, which look completely different."
-
-[RID_RESXLT_COST_CHART_FilledRadar_AWF]
-en-US = "Filled Radar chart"
-
-[RID_RESXLT_COST_CHART_FilledRadar_Comment]
-en-US = "This chart type does not have a <PRODUCTNAME> equivalent. Instead, the import filter in <PRODUCTNAME> converts a Filled Radar chart to a Column chart."
-
-[RID_RESXLT_COST_CHART_Surface_AWF]
-en-US = "Surface chart"
-
-[RID_RESXLT_COST_CHART_Surface_Comment]
-en-US = "This chart type does not have a <PRODUCTNAME> equivalent. The imported chart will look completely different than the original chart."
-
-[RID_RESXLT_COST_PIVOT_MultConsRanges_AWF]
-en-US = "Multiple Consolidation Ranges"
-
-[RID_RESXLT_COST_PIVOT_MultConsRanges_Comment]
-en-US = "A Pivot table from Excel can use data from multiple consolidation ranges, Calc does not support this."
-
-[RID_RESXLT_COST_PIVOT_PivotChart_Comment]
-en-US = "A pivot chart is created dynamically in Excel using a pivot table as it's datasource. <PRODUCTNAME> does not support generating charts from dynamically created tables."
-
-[RID_RESXLT_COST_PIVOT_ManSort_AWF]
-en-US = "Manual Sorting"
-
-[RID_RESXLT_COST_PIVOT_ManSort_Comment]
-en-US = "Pivot table users could sort the results manually. Excel preserves the sorting. Calc does not."
-
-[RID_RESXLT_COST_PIVOT_CalcVal_AWF]
-en-US = "Calculated Values"
-
-[RID_RESXLT_COST_PIVOT_CalcVal_Comment]
-en-US = "Excel users can create a formula that writes the results in a new column within the pivot table. Users can use the same type of formula to replace the content of an existing column. Calc does not support this."
-
-[RID_RESXLT_COST_PIVOT_ExternData_AWF]
-en-US = "External Data"
-
-[RID_RESXLT_COST_PIVOT_ExternData_Comment]
-en-US = "A Pivot table from Excel can use data from external sources. Calc does not support this."
-
-[RID_RESXLS_COST_IAR_Numbering_IssueType]
-en-US = "Numbering Order"
-
-[RID_RESXLS_COST_IAR_Numbering_Comment]
-en-US = "<PRODUCTNAME> first calculates numbering located in frames and then the numbering within the text. Word does not separate this."
-
-[RID_RESXLS_COST_IAR_Numbering_WorkAround]
-en-US = "Move the numberings from within the frames into the text body area."
-
-[RID_RESXLS_COST_WorkbookPartProtection_AWF]
-en-US = "Protection for Parts of Workbooks"
-
-[RID_RESXLS_COST_WorkbookPartProtection_Comment]
-en-US = "In Excel users can protect certain parts of workbooks. Workbooks, sheets, charts and ranges can all be individually protected. These do not all migrate to <PRODUCTNAME>."
-
-[RID_RESXLS_COST_WorkbookPartProtection_WorkAround]
-en-US = "Do not protect Excel workbooks"
-
-[RID_RESXLS_COST_FORMAT_TabStop_IssueType]
-en-US = "Tabstop"
-
-[RID_RESXLS_COST_FORMAT_TabStop_Comment]
-en-US = "The minimum tabstop distance in word is shorter than <PRODUCTNAME>. That means that if, in Word, the user tabs a distance shorter than <PRODUCTNAME>'s minimum, that after migration the text spacing will be pushed one tab further."
-
-[RID_RESXLS_COST_GraphicAnchorEndOfPage_IssueType]
-en-US = "Graphic Object Anchor - End of Page"
-
-[RID_RESXLS_COST_GraphicAnchorEndOfPage_Comment]
-en-US = "If a frame or graphic object (not including AutoShapes) is too close to the end of a page it will be pushed to the next page in <PRODUCTNAME>."
-
-[RID_RESXLS_COST_GraphicAnchorLostGraphic_IssueType]
-en-US = "Graphic Object Anchor - Lost Graphic Object"
-
-[RID_RESXLS_COST_GraphicAnchorLostGraphic_Comment]
-en-US = "If a graphic object is anchored off a paragraph (Format Autoshape | Layout | Advanced | Vertical Position = Paragraph) which contains just a blank carriage return, then this can lead to the graphic object being lost in <PRODUCTNAME>."
-
-[RID_RESXLS_COST_TABLE_Leading_IssueType]
-en-US = "Leading"
-
-[RID_RESXLS_COST_TABLE_Leading_Comment]
-en-US = "Leading can cause extra lines in tables. In a table, if the column width is very close to the text, it can lead to a single character being pushed to new line in <PRODUCTNAME>. This is caused by extra leading in <PRODUCTNAME>."
-
-[RID_RESXLS_COST_TABLE_Misplaced_IssueType]
-en-US = "Misplaced"
-
-[RID_RESXLS_COST_TABLE_Misplaced_Comment]
-en-US = "Text wrapping can cause misplaced tables."
-
-[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_IssueType]
-en-US = "Headings Without Numbering"
-
-[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_Comment]
-en-US = "Many users do not use automatic heading or section numbering. They type the numbers in front of the heading manually instead. Word displays the first TAB of the heading in the TOC. <PRODUCTNAME> does not. The TOC will look different."
-
-[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_WorkAround]
-en-US = "Replace the manual numbering with automatic numbering or add spaces between the manual numbers and the text."
-
-[RID_RESXLS_COST_TABLE_AlignmentOfObjects_IssueType]
-en-US = "Horizontal Alignment of Objects"
-
-[RID_RESXLS_COST_TABLE_AlignmentOfObjects_Comment]
-en-US = "Graphics, WordArt or similar objects located in text tables get displayed in the wrong position when the absolute position of the horizontal alignment is defined instead of a relative position."
-
-[RID_RESXLS_COST_TABLE_AlignmentOfObjects_WorkAround]
-en-US = "Adjust the horizontal alignment manually."
-
-[RID_STR_WORD_ATTRIBUTE_COUNT]
-en-US = "Count"
-
-[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_DATEDIF]
-en-US = "<PRODUCTNAME> Calc does not have an equivalent 'DATEDIF' function."
-
-[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_PHONETIC]
-en-US = "<PRODUCTNAME> does not have an equivalent 'PHONETIC' function."
-
-[RID_STR_PP_SUBISSUE_BACKGROUND_NOTE]
-en-US = "Fill style background colors applied to shapes in PowerPoint might be lost after a round trip conversion in <PRODUCTNAME>."
-
-[RID_STR_PP_SUBISSUE_NUMBERING_NOTE]
-en-US = "Only the first paragraph in a numbered sequence can start with "1" in <PRODUCTNAME>. The numbering can only start with "2" or higher in subsequent paragraphs."
-
-[RID_STR_PP_SUBISSUE_HYPERLINK_NOTE]
-en-US = "Unlike PowerPoint, <PRODUCTNAME> does not support multiple text formats in hyperlink text. Instead, <PRODUCTNAME> creates a separate hyperlink for each formatting style in an imported hyperlink."
-
-[RID_STR_PP_SUBISSUE_HYPERLINK_SPLIT_NOTE]
-en-US = "PowerPoint splits the text representation of a hyperlink into several lines when the text box is not wide enough. <PRODUCTNAME> does not split hyperlinks so the hyperlink text might extend out of the text box."
-
-[RID_STR_PP_SUBISSUE_TEMPLATE_NOTE]
-en-US = "<PRODUCTNAME> does not support the PowerPoint 'Title Slide' layout. When you import this layout, most of the subtitle object attributes are converted to hard attributes. PowerPoint 97 users require the multiple master page patch from Microsoft to view 'Title Slide' layouts that are contained in round trip documents."
-
-[RID_STR_PP_SUBISSUE_TABSTOP_NOTE]
-en-US = "Unlike PowerPoint, <PRODUCTNAME> only supports one default tab stop in a document and not one for each text object. If a PowerPoint document uses more than one default tab stop for text objects, <PRODUCTNAME> assigns hard tab stops to these text objects to ensure an identical layout when you import the document. The default tab stops are not reinserted when you save the document in PowerPoint format."
-
-[RID_STR_PP_SUBISSUE_FONTS]
-en-US = "Embedded Fonts"
-
-[RID_STR_PP_SUBISSUE_FONTS_NOTE]
-en-US = "<PRODUCTNAME> doesn't support embedded fonts."
-
-[RID_STR_COMMON_SUBISSUE_TRANSPARENCY_NOTE]
-en-US = "Microsoft Office supports a color attribute that allows you to make a bitmap color transparent without modifying the orginal bitmap. When you import a document with such a bitmap, <PRODUCTNAME> changes the bitmap to match the transparent color. The transparent color attribute is lost."
-
-[RID_STR_COMMON_SUBISSUE_LINE_NOTE]
-en-US = "<PRODUCTNAME> does not support all of the line styles that you can apply to MS Office AutoShapes. As a result, <PRODUCTNAME> replaces double and triple line styles with a single line."
-
-[RID_STR_COMMON_SUBISSUE_GRADIENT_PRESET_NOTE]
-en-US = "<PRODUCTNAME> does not support preset gradient styles."
-
-[RID_STR_COMMON_SUBISSUE_GRADIENT_CORNER_NOTE]
-en-US = "<PRODUCTNAME> does not support the 'from center' gradient style."
-
-[RID_STR_COMMON_SUBISSUE_GRADIENT_CENTER_NOTE]
-en-US = "<PRODUCTNAME> does not support the 'from corner' gradient style."
-
-[RID_RESXLS_COST_DB_Query]
-en-US = "Database Query"
-
-[RID_RESXLS_COST_DB_Query_Comment]
-en-US = "Issue: <PRODUCTNAME> can not import the database query. "
-
-[RID_RESXLS_COST_LineStyle]
-en-US = "Line Style"
-
-[RID_RESXLS_COST_LineStyle_Comment]
-en-US = "Issue: Line style is not supported."
-
-[RID_RESXLS_COST_Numbering]
-en-US = "Numbering"
-
-[RID_RESXLS_COST_Numbering_Comment]
-en-US = "Issue: Text numbering starts with wrong number."
-
-[RID_RESXLS_COST_Template]
-en-US = "Layout 'Title Slide'"
-
-[RID_RESXLS_COST_Template_Comment]
-en-US = "Issue: 'Title Slide' layout is not supported."
-
-[RID_RESXLS_COST_DATEDIF_Note]
-en-US = "Use a date or time function that <PRODUCTNAME> Calc supports."
-
-[RID_RESXLS_COST_Tabstop]
-en-US = "Default Tabulator"
-
-[RID_RESXLS_COST_Tabstop_Comment]
-en-US = "Issue: Different default tabulators are not supported for text objects."
-
-[RID_RESXLS_COST_Transparent]
-en-US = "Transparent Color"
-
-[RID_RESXLS_COST_Transparent_Comment]
-en-US = "Issue: <PRODUCTNAME> does not support the transparent color attribute in bitmaps."
-
-[RID_RESXLS_COST_GradientStyle]
-en-US = "Gradient Style"
-
-[RID_RESXLS_COST_GradientStyle_Comment]
-en-US = "Issue: Unsupported gradient styles used."
-
-[RID_RESXLS_COST_GradientStyle_Note]
-en-US = "Replacing gradient styles by styles that are supported."
-
-[RID_RESXLS_COST_Hyperlink]
-en-US = "Textrange Hyperlinks"
-
-[RID_RESXLS_COST_Hyperlink_Comment]
-en-US = "Issue: Multiple text formatting is not supported in Hyperlinks."
-
-[RID_RESXLS_COST_HyperlinkSplit]
-en-US = "Split Hyperlinks"
-
-[RID_RESXLS_COST_HyperlinkSplit_Comment]
-en-US = "Issue: Hyperlink will not be split onto several lines."
-
-[RID_RESXLS_COST_Background]
-en-US = "Fill Type Background"
-
-[RID_RESXLS_COST_Background_Comment]
-en-US = "Issue: Fillstyle background is not supported."
-
+[RID_STR_COMMON_PRODUCTNAME] +en-US = "OpenOffice.org" + +[RID_STR_COMMON_PRODUCTVERSION] +en-US = "3.0" + +[RID_STR_COMMON_NEXTPRODUCTVERSION] +en-US = "3.1" + +[RID_STR_COMMON_OLE_CONTROL] +en-US = "OLE Control" + +[RID_STR_COMMON_OLE_FIELD_LINK] +en-US = "OLE Field Link" + +[RID_STR_COMMON_OLE_UNKNOWN] +en-US = "Unknown Type" + +[RID_STR_COMMON_VB_COMPONENT_MODULE] +en-US = "Module" + +[RID_STR_COMMON_VB_COMPONENT_STANDARD] +en-US = "Standard Module" + +[RID_STR_COMMON_VB_COMPONENT_CLASS] +en-US = "Class Module" + +[RID_STR_COMMON_VB_COMPONENT_USER_FORM] +en-US = "User Form" + +[RID_STR_COMMON_VB_COMPONENT_DOCUMENT] +en-US = "Document" + +[RID_STR_COMMON_VB_COMPONENT_ACTIVEX_DESIGNER] +en-US = "ActiveX Designer" + +[RID_STR_COMMON_VB_COMPONENT_UNKNOWN] +en-US = "Unknown" + +[RID_STR_COMMON_YES_OR_NO] +en-US = "Yes or No" + +[RID_STR_COMMON_DATE] +en-US = "Date" + +[RID_STR_COMMON_NUMBER] +en-US = "Number" + +[RID_STR_COMMON_TEXT] +en-US = "Text" + +[RID_STR_COMMON_UNKNOWN] +en-US = "Unknown" + +[RID_STR_COMMON_DEC_TO_EXTERNAL_LIBRARY] +en-US = "Declaration to external library" + +[RID_STR_COMMON_RESULTS_LOCATION_TYPE_DOCUMENT] +en-US = "Document" + +[RID_STR_COMMON_RESULTS_LOCATION_TYPE_PAGE] +en-US = "Page" + +[RID_STR_COMMON_RESULTS_LOCATION_TYPE_WORKBOOK] +en-US = "WorkBook" + +[RID_STR_COMMON_RESULTS_LOCATION_TYPE_SHEET] +en-US = "Sheet" + +[RID_STR_COMMON_RESULTS_LOCATION_TYPE_PRESENTATION] +en-US = "Presentation" + +[RID_STR_COMMON_RESULTS_LOCATION_TYPE_SLIDE] +en-US = "Slide" + +[RID_STR_COMMON_INVALID_PASSWORD] +en-US = "Invalid Password" + +[RID_STR_COMMON_PASSWORD_SKIPDOC] +en-US = "Skip Password Protected" + +[RID_STR_COMMON_NA] +en-US = "na" + +[RID_STR_COMMON_ATTRIBUTE_BROKEN] +en-US = "Broken!" + +[RID_STR_COMMON_ATTRIBUTE_BUILTIN] +en-US = "BuiltIn" + +[RID_STR_COMMON_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES] +en-US = "Check document VB-IDE/Tools/References" + +[RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT] +en-US = "Class refs to Me" + +[RID_STR_COMMON_ATTRIBUTE_COMPONENT] +en-US = "Component" + +[RID_STR_COMMON_ATTRIBUTE_CONTROLS] +en-US = "Controls" + +[RID_STR_COMMON_ATTRIBUTE_CUSTOM] +en-US = "Custom" + +[RID_STR_COMMON_ATTRIBUTE_DESCRIPTION] +en-US = "Description" + +[RID_STR_COMMON_ATTRIBUTE_GUID] +en-US = "GUID" + +[RID_STR_COMMON_ATTRIBUTE_FILE] +en-US = "File" + +[RID_STR_COMMON_ATTRIBUTE_PROPERTIES] +en-US = "Properties" + +[RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE] +en-US = "Further macro analysis not possible" + +[RID_STR_COMMON_ATTRIBUTE_INCLUDING] +en-US = "including:" + +[RID_STR_COMMON_ATTRIBUTE_INTACT] +en-US = "Intact" + +[RID_STR_COMMON_ATTRIBUTE_ISBROKEN] +en-US = "IsBroken" + +[RID_STR_COMMON_ATTRIBUTE_MAJOR] +en-US = "Major" + +[RID_STR_COMMON_ATTRIBUTE_MINOR] +en-US = "Minor" + +[RID_STR_COMMON_ATTRIBUTE_MISSING] +en-US = "MISSING" + +[RID_STR_COMMON_ATTRIBUTE_NAME] +en-US = "Name" + +[RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES] +en-US = "Non Portable External References" + +[RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT] +en-US = "External Reference Count" + +[RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES] +en-US = "Number of Lines" + +[RID_STR_COMMON_ATTRIBUTE_SIGNATURE] +en-US = "MD5 Hash" + +[RID_STR_COMMON_ATTRIBUTE_PASSWORD] +en-US = "Password" + +[RID_STR_COMMON_ATTRIBUTE_PATH] +en-US = "Path" + +[RID_STR_COMMON_ATTRIBUTE_PROCEDURES] +en-US = "Procedures" + +[RID_STR_COMMON_ATTRIBUTE_PROJECT] +en-US = "Project" + +[RID_STR_COMMON_ATTRIBUTE_TYPE] +en-US = "Type" + +[RID_STR_COMMON_ATTRIBUTE_TYPELIB] +en-US = "Type Library" + +[RID_STR_COMMON_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT] +en-US = "Unable to access VBProject" + +[RID_STR_COMMON_ATTRIBUTE_UNKNOWN] +en-US = "Unknown" + +[RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE] +en-US = "Control Types" + +[RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT] +en-US = "Control Types Count" + +[RID_STR_COMMON_ATTRIBUTE_VALUE] +en-US = "Value" + +[RID_STR_COMMON_ATTRIBUTE_VBPROJECT_PASSWORD] +en-US = "VBProject Password set" + +[RID_STR_COMMON_ISSUE_INFORMATION] +en-US = "Information" + +[RID_STR_COMMON_ISSUE_FORMAT] +en-US = "Format" + +[RID_STR_COMMON_ISSUE_PORTABILITY] +en-US = "Portability" + +[RID_STR_COMMON_ISSUE_VBA_MACROS] +en-US = "VBA Macros" + +[RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES] +en-US = "Content and Document Properties" + +[RID_STR_COMMON_NOTE_DOCUMENT_PROPERTIES_LOST] +en-US = "this summary property is lost" + +[RID_STR_COMMON_SUBISSUE_PROPERTIES] +en-US = "Properties" + +[RID_STR_COMMON_SUBISSUE_REFERENCES] +en-US = "References" + +[RID_STR_COMMON_SUBISSUE_EXTERNAL_REFERENCES_IN_MACROS] +en-US = "External References in Macro" + +[RID_STR_COMMON_SUBISSUE_INVALID_PASSWORD_ENTERED] +en-US = "Invalid Password Entered" + +[RID_STR_COMMON_SUBISSUE_DOCUMENT_PARTS_PROTECTION] +en-US = "Document Parts Protection" + +[RID_STR_COMMON_SUBISSUE_MACRO_PASSWORD_PROTECTION] +en-US = "Password Protected" + +[RID_STR_COMMON_SUBISSUE_PASSWORDS_PROTECTION] +en-US = "Password Protection" + +[RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME] +en-US = "Object Name" + +[RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE] +en-US = "Object Type" + +[RID_STR_COMMON_ATTRIBUTE_SOURCE] +en-US = "Source" + +[RID_STR_COMMON_NOTE_HF_PREPARABLE] +en-US = "will add additional returns to the header/footer" + +[RID_STR_COMMON_PREPARATION_FOLDER] +en-US = "prepared" + +[RID_STR_COMMON_SUBISSUE_DOCUMENT_CUSTOM_PROPERTY] +en-US = "Document Custom Property" + +[RID_STR_COMMON_MACRO_CLASS_COMPLEX] +en-US = "Complex" + +[RID_STR_COMMON_MACRO_CLASS_MEDIUM] +en-US = "Medium" + +[RID_STR_COMMON_MACRO_CLASS_SIMPLE] +en-US = "Simple" + +[RID_STR_COMMON_MACRO_CLASS_NONE] +en-US = "No Macros" + +[RID_STR_COMMON_ISSUE_CLASS_COMPLEX] +en-US = "Complex" + +[RID_STR_COMMON_ISSUE_CLASS_MINOR] +en-US = "Minor" + +[RID_STR_COMMON_ISSUE_CLASS_NONE] +en-US = "No Issues" + +[RID_STR_COMMON_OV_VERSION_STR] +en-US = "Created by" + +[RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_TITLE] +en-US = "Which documents do you need to migrate?" + +[RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_BODY] +en-US = "<CR>The last modified date is an indicator of the importance of a document. It helps you decide which documents should just be archived to a read only format such as Adobe PDF and which actually need to be migrated to <PRODUCTNAME> where they can continue to be updated and modified." + +[RID_STR_COMMON_OV_LEGEND_TITLE] +en-US = "Legend" + +[RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY] +en-US = "< 3 months: Migrate to <PRODUCTNAME>.<CR>3 - 6 Months: Careful review to see if they should be archived or migrated to <PRODUCTNAME>.<CR>6 - 12 Months: Quick review, either archive or migrate to the read/write <PRODUCTNAME> XML file format.<CR>> 1 Year: Older than 1 year, archive to read-only format such as PDF" + +[RID_STR_COMMON_OV_DOC_MACRO_COMMENT_TITLE] +en-US = "How many documents contain macros?" + +[RID_STR_COMMON_OV_DOC_MACRO_COMMENT_BODY] +en-US = "<CR><PRODUCTNAME> includes <PRODUCTNAME> BASIC, a Basic dialect that is similar to Microsoft's Visual Basic for Application (VBA), but <PRODUCTNAME> uses a different sets of objects to access the underlying Office.<CR>This makes it necessary to migrate the VBA macros into the platform independent <PRODUCTNAME> BASIC. Your local <PRODUCTNAME> Migration partner can help you with these VBA macro migrations." + +[RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY] +en-US = "Complex: Macros using Forms, Controls and external references<CR>Medium: Macros with more than 50 lines of code<CR>Simple: Macros with less than 50 lines of code<CR>None: No macros in the document" + +[RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_DAW] +en-US = "Analysis of document migration issues for documents modified within the last <TOPIC> months" + +[RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT] +en-US = "High level analysis of document migration issues" + +[RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_TITLE] +en-US = "Which documents may have migration issues?" + +[RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_BODY] +en-US = "<CR>Some Microsoft Office documents may not migrate perfectly into <PRODUCTNAME>. These issues are outlined in the <PRODUCTNAME> Migration Guide. <PRODUCTNAME> engineering is working continuously to resolve these issues by improving the Microsoft Office filters.<CR>The Document Analysis Wizard has been provided by <PRODUCTNAME> engineering to detect the most important of these migration issues in any Microsoft Office document you wish to specify. These findings are summarised below [refer to the 'List of documents' sheet to see the list of all analyzed documents]." + +[RID_STR_COMMON_OV_DOC_ANALYSIS_DAW_LEGEND_BODY] +en-US = "Complex: More complex migration issues.<CR>Minor: Minor migration issues easily fixed by any user.<CR>None: No issues Migrate to <PRODUCTNAME> without any issues.<CR><CR>Your <PRODUCTNAME> Migration Partners can help you with these more complex migration issues [refer to link above]. For instance they can migrate these documents to custom templates that achieve the same functionality but work well in both Office environments allowing the documents to be freely exchanged." + +[RID_STR_COMMON_OV_DOC_ANALYSIS_PAW_LEGEND_BODY] +en-US = "Complex: More complex migration issues.<CR>Minor: Minor migration issues easily fixed by any user.<CR>None: No issues Migrate to <PRODUCTNAME> without any issues." + +[RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE] +en-US = "Document modification dates" + +[RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE] +en-US = "Document with Macro Migration Issues" + +[RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE] +en-US = "Documents with Document Migration Issues" + +[RID_STR_COMMON_PREPARATION_NOTE] +en-US = "Preparation" + +[RID_STR_COMMON_CANNOT_OPEN] +en-US = "Cannot open - no analysis possible" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW] +en-US = "Overview" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_COSTS] +en-US = "Issues Analyzed" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD] +en-US = "Word Issues" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL] +en-US = "Excel Issues" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT] +en-US = "PowerPoint Issues" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS] +en-US = "Issue Details" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS] +en-US = "Reference Details" + +[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP] +en-US = "List of documents" + +[RID_STR_COMMON_ANALYSIS_STR] +en-US = "Analysis" + +[RID_STR_COMMON_NOTE_PRE] +en-US = "Note" + +[RID_STR_COMMON_NOTE_POST] +en-US = " on migration" + +[RID_STR_COMMON_OLE_EMBEDDED] +en-US = "Embedded OLE Object" + +[RID_STR_COMMON_OLE_LINKED] +en-US = "Linked OLE Object" + +[RID_STR_EXCEL_ISSUE_CHARTS_AND_TABLES] +en-US = "Charts and Tables" + +[RID_STR_EXCEL_ISSUE_FORMAT] +en-US = "Format" + +[RID_STR_EXCEL_ISSUE_FUNCTIONS] +en-US = "Functions" + +[RID_STR_EXCEL_ISSUE_PORTABILITY] +en-US = "Portability" + +[RID_STR_EXCEL_ISSUE_VBA_MACROS] +en-US = "VBA Macros" + +[RID_STR_EXCEL_ISSUE_INFORMATION] +en-US = "Information" + +[RID_STR_EXCEL_SUBISSUE_PIVOT] +en-US = "Pivot" + +[RID_STR_EXCEL_SUBISSUE_ZOOM] +en-US = "Zoom" + +[RID_STR_EXCEL_TRUE] +en-US = "True" + +[RID_STR_EXCEL_FALSE] +en-US = "False" + +[RID_STR_EXCEL_SUBISSUE_MAX_SHEETS_EXCEEDED] +en-US = "Maximum Sheets Exceeded" + +[RID_STR_EXCEL_SUBISSUE_ATTRIBUTES] +en-US = "Cell Attributes" + +[RID_STR_EXCEL_SUBISSUE_EXTERNAL] +en-US = "External" + +[RID_STR_EXCEL_SUBISSUE_SHEET_CHART] +en-US = "Sheet Chart" + +[RID_STR_EXCEL_SUBISSUE_EMBEDDED_CHART] +en-US = "Embedded Chart" + +[RID_STR_EXCEL_SUBISSUE_INVALID_WORKSHEET_NAME] +en-US = "Invalid Worksheet Name" + +[RID_STR_EXCEL_ATTRIBUTE_BADCHARACTER] +en-US = "'<TOKEN1>' at pos <TOKEN2>" + +[RID_STR_EXCEL_ATTRIBUTE_DB_QUERY] +en-US = "Connection string" + +[RID_STR_EXCEL_ATTRIBUTE_NAME] +en-US = "Name" + +[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_PIVOTFIELDS] +en-US = "Number of PivotFields" + +[RID_STR_EXCEL_ATTRIBUTE_TITLE] +en-US = "Title" + +[RID_STR_EXCEL_ATTRIBUTE_TYPE] +en-US = "Type" + +[RID_STR_EXCEL_ATTRIBUTE_PIE] +en-US = "Pie" + +[RID_STR_EXCEL_ATTRIBUTE_SLICES_IN_DIFFERENT_DIRECTION] +en-US = "Slices in diff. direction" + +[RID_STR_EXCEL_ATTRIBUTE_LEGEND_NAME] +en-US = "Legend Name" + +[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_LEGEND_ENTRIES] +en-US = "Number of Legend Entries" + +[RID_STR_EXCEL_ATTRIBUTE_PIVOT_TABLE_NAME] +en-US = "PivotTable Name" + +[RID_STR_EXCEL_ATTRIBUTE_PIVOT_FIELDS_VISIBLE] +en-US = "PivotFields Visible" + +[RID_STR_EXCEL_ATTRIBUTE_PIVOT_FIELDS_NUM] +en-US = "Number of PivotFields" + +[RID_STR_EXCEL_ATTRIBUTE_PRINT_RANGE] +en-US = "Print Range" + +[RID_STR_EXCEL_ATTRIBUTE_DISPLAY_ZOOM] +en-US = "Display Zoom" + +[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_SHEETS] +en-US = "Number of Sheets" + +[RID_STR_EXCEL_ATTRIBUTE_LIST_SOURCE] +en-US = "ListSource" + +[RID_STR_EXCEL_ATTRIBUTE_CUSTOM_FORMULA] +en-US = "Custom Formula" + +[RID_STR_EXCEL_ATTRIBUTE_SET] +en-US = "Set" + +[RID_STR_EXCEL_ATTRIBUTE_LINE_STYLE] +en-US = "Line Style" + +[RID_STR_EXCEL_ATTRIBUTE_DASHED_DOT] +en-US = "Dashed/Dot" + +[RID_STR_EXCEL_ATTRIBUTE_FILL_PATTERN] +en-US = "Fill Pattern" + +[RID_STR_EXCEL_ATTRIBUTE_PATTERNED] +en-US = "Patterned" + +[RID_STR_EXCEL_ATTRIBUTE_FUNCTION_STRING] +en-US = "Function String" + +[RID_STR_EXCEL_ATTRIBUTE_PASSWORD_TO_OPEN] +en-US = "Password to Open" + +[RID_STR_EXCEL_ATTRIBUTE_PASSWORD_TO_MODIFY] +en-US = "Password to Modify" + +[RID_STR_EXCEL_ATTRIBUTE_OBJECT_TYPE] +en-US = "Object Type" + +[RID_STR_EXCEL_ATTRIBUTE_OBJECT_NAME] +en-US = "Object Name" + +[RID_STR_EXCEL_ATTRIBUTE_SOURCE] +en-US = "Source" + +[RID_STR_EXCEL_ATTRIBUTE_VALUE] +en-US = "Value" + +[RID_STR_EXCEL_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT] +en-US = "Unable to access VBProject" + +[RID_STR_EXCEL_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE] +en-US = "Further macro analysis not possible" + +[RID_STR_EXCEL_ATTRIBUTE_VBPROJECT_PASSWORD_SET] +en-US = "VBProject Password Set" + +[RID_STR_EXCEL_ATTRIBUTE_PROJECT] +en-US = "Project" + +[RID_STR_EXCEL_ATTRIBUTE_COMPONENT] +en-US = "Component" + +[RID_STR_EXCEL_ATTRIBUTE_PROCEDURES] +en-US = "Procedures" + +[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_LINES] +en-US = "Number of Lines" + +[RID_STR_EXCEL_ATTRIBUTE_CONTROLS] +en-US = "Controls" + +[RID_STR_EXCEL_ATTRIBUTE_TYPES] +en-US = "Types" + +[RID_STR_EXCEL_ATTRIBUTE_DESCRIPTION] +en-US = "Description" + +[RID_STR_EXCEL_ATTRIBUTE_FILE] +en-US = "File" + +[RID_STR_EXCEL_ATTRIBUTE_PATH] +en-US = "Path" + +[RID_STR_EXCEL_ATTRIBUTE_MISSING] +en-US = "MISSING" + +[RID_STR_EXCEL_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES] +en-US = "Check document VB-IDE/Tools/References" + +[RID_STR_EXCEL_ATTRIBUTE_MAJOR] +en-US = "Major" + +[RID_STR_EXCEL_ATTRIBUTE_MINOR] +en-US = "Minor" + +[RID_STR_EXCEL_ATTRIBUTE_BUILT_IN] +en-US = "Built In" + +[RID_STR_EXCEL_ATTRIBUTE_INTACT] +en-US = "Intact" + +[RID_STR_EXCEL_ATTRIBUTE_TYPELIB] +en-US = "TypeLib" + +[RID_STR_EXCEL_ATTRIBUTE_GUID] +en-US = "GUID" + +[RID_STR_EXCEL_ATTRIBUTE_CUSTOM] +en-US = "Custom" + +[RID_STR_EXCEL_ATTRIBUTE_IS_BROKEN] +en-US = "Is Broken" + +[RID_STR_EXCEL_ATTRIBUTE_BROKEN] +en-US = "Broken!" + +[RID_STR_EXCEL_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES] +en-US = "Non Portable External References" + +[RID_STR_EXCEL_ATTRIBUTE_INCLUDING] +en-US = "including:" + +[RID_STR_EXCEL_ATTRIBUTE_PASSWORD] +en-US = "Password" + +[RID_STR_EXCEL_ENUMERATION_CUSTOM] +en-US = "Custom" + +[RID_STR_EXCEL_ENUMERATION_LIST] +en-US = "List" + +[RID_STR_EXCEL_ENUMERATION_UNKNOWN] +en-US = "Unknown" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_CONTINUOUS] +en-US = "Continuous" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DASH] +en-US = "Dash" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DASHDOT] +en-US = "DashDot" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DOT] +en-US = "Dot" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DOUBLE] +en-US = "Double" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_SLANTDASHDOT] +en-US = "SlantDashDot" + +[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_LINESTYLENONE] +en-US = "LineStyleNone" + +[RID_STR_EXCEL_NOTE_DB_QUERY] +en-US = "The connection to the database in <PRODUCTNAME> will be lost . The data will appear correctly but can not be updated." + +[RID_STR_EXCEL_NOTE_INVALIDWORKSHEETNAME] +en-US = "The worksheet name contains characters that are not supported by <PRODUCTNAME>. Please rename your sheet and exclude these characters." + +[RID_STR_EXCEL_NOTE_ZOOM] +en-US = "all sheets will have the same zoom irrespective of their Excel View/Zoom setting after migration to <PRODUCTNAME>" + +[RID_STR_EXCEL_NOTE_CELL_ATTRIBUTES_3] +en-US = "this line style is imported as a solid line. Only solid line syles are supported in <PRODUCTNAME>" + +[RID_STR_EXCEL_NOTE_CELL_ATTRIBUTES_4] +en-US = "this fill pattern is imported as a solid gray. Only solid fill patterns are supported in <PRODUCTNAME>" + +[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_1] +en-US = "this function returns platform dependent information specific to Windows and is not imported to <PRODUCTNAME>" + +[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_2] +en-US = "this function returns error codes specific to Excel and is imported in <PRODUCTNAME> as the stub function ErrorType() always returning Err.520" + +[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_3] +en-US = "this is an external function referenced from an Excel spreadsheet. It does not import correctly to <PRODUCTNAME>. The external reference is stripped and the resulting formula always returns #ADDIN?" + +[RID_STR_EXCEL_NOTE_DOCUMENT_PROPERTIES_1] +en-US = "this summary property is lost" + +[RID_STR_EXCEL_NOTE_DOCUMENT_PROPERTIES_2] +en-US = "this custom property is lost" + +[RID_STR_EXCEL_NOTE_SHEET_LIMITS_1] +en-US = "all sheets will be lost in <PRODUCTNAME> that are greater than " + +[RID_STR_EXCEL_NOTE_SHEET_LIMITS_2] +en-US = "all sheets must be moved to a new workbook before migration that are greater than " + +[RID_STR_EXCEL_SUBLOCATION_NA] +en-US = "na" + +[RID_STR_EXCEL_SUBISSUE_WORKBOOK_PROTECTION] +en-US = "Workbook Protection" + +[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_SHARING] +en-US = "Protection Sharing" + +[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_STRUCTURE] +en-US = "Protection Structure" + +[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_WINDOWS] +en-US = "Protection Windows" + +[RID_STR_EXCEL_NOTE_PASSWORD_TO_OPEN] +en-US = "workbook is protected" + +[RID_STR_EXCEL_NOTE_DATATABLE] +en-US = "no simple workaround, could copy the data table and paste below the chart" + +[RID_STR_EXCEL_NOTE_XAXISCATEGORY] +en-US = "only category option supported. Setup your category labels you need on the sheet" + +[RID_STR_EXCEL_NOTE_UNSUPPORTEDTYPE1] +en-US = "following chart types not supported" + +[RID_STR_EXCEL_NOTE_UNSUPPORTEDTYPE2] +en-US = "pie of pie,exploded 3D pie,bar of pie,bubble,filled radar,exploded doughnut" + +[RID_STR_EXCEL_NOTE_TRENDLINE] +en-US = "replace the trend line by drawing a line on the chart. You must click outside the chart when adding the line and drag it onto the chart. Objects created by clicking on the chart will not import" + +[RID_STR_EXCEL_NOTE_DATALABELWITHLEGEND] +en-US = "after import into <PRODUCTNAME>, select Insert->Data Labels->show legend icon with label and the legend key will appear" + +[RID_STR_EXCEL_NOTE_LEGENDPOSITION] +en-US = "only legend to the right is supported on import. Change legend position in <PRODUCTNAME> after import" + +[RID_STR_EXCEL_NOTE_TITLEFONT] +en-US = "title font with different font size is not supported on import, set a sub-title in <PRODUCTNAME>, then change the font size" + +[RID_STR_EXCEL_NOTE_SERIESCHARTTYPE] +en-US = "multiple series with different chart types. SO only supports one chart type for all series. Adjust the chart type to best display the series" + +[RID_STR_EXCEL_NOTE_DATASOURCENOTLINKEDTOCELL] +en-US = "data sources to catalogue or other external sources not supported. Data source must be set to cell or range on the sheet" + +[RID_STR_EXCEL_NOTE_CATEGORYANDDATA] +en-US = "category names must be located above or to the left of the value ranges" + +[RID_STR_EXCEL_NOTE_DATASOURCEONDIFFERENTSHEET] +en-US = "data sources must be located on the same sheet. Paste the data sources onto the same sheet" + +[RID_STR_EXCEL_NOTE_CATEGORYLABELMORETHANONECELL] +en-US = "category labels spanning multiple cells are not supported. Copy all the text to one cell" + +[RID_STR_EXCEL_NOTE_COLUMNBAR] +en-US = "chart 'series in' must match the data source. For data source in single row, set 'series in' = row. For data source in single column, set 'series in' = column" + +[RID_STR_EXCEL_NOTE_BORDER] +en-US = "chart border will not appear in <PRODUCTNAME>, before import,set border to none, draw a rectangle around the border of the chart" + +[RID_STR_EXCEL_NOTE_AXISINTERVAL] +en-US = " y axis interval setting will be changed in <PRODUCTNAME>. Modify axes interval setting in <PRODUCTNAME>, re-set major interval scale" + +[RID_STR_EXCEL_ATTRIBUTE_DATATABLE] +en-US = "Data Table" + +[RID_STR_EXCEL_ATTRIBUTE_INVALIDCHARACTER] +en-US = "Invalid Characters" + +[RID_STR_EXCEL_ATTRIBUTE_XAXISCATEGORY] +en-US = "Chart Axes" + +[RID_STR_EXCEL_ATTRIBUTE_TIMESCALE] +en-US = "time scale/auto" + +[RID_STR_EXCEL_ATTRIBUTE_UNSUPPORTEDTYPE] +en-US = "Unsupported Chart Type" + +[RID_STR_EXCEL_ATTRIBUTE_TRENDLINE] +en-US = "Trendline" + +[RID_STR_EXCEL_ATTRIBUTE_DATALABELWITHLEGEND] +en-US = "Data Label With Legend" + +[RID_STR_EXCEL_ATTRIBUTE_LEGENDPOSITION] +en-US = "Legend Position" + +[RID_STR_EXCEL_ATTRIBUTE_TITLEFONT] +en-US = "Title Font" + +[RID_STR_EXCEL_ATTRIBUTE_DIFFERENT] +en-US = "Different" + +[RID_STR_EXCEL_ATTRIBUTE_SERIESCHARTTYPE] +en-US = "Multiple series chart type" + +[RID_STR_EXCEL_ATTRIBUTE_CHANGED] +en-US = "changed" + +[RID_STR_EXCEL_ATTRIBUTE_DATASOURCE] +en-US = "Data Source" + +[RID_STR_EXCEL_ATTRIBUTE_DATASOURCENOTLINKEDTOCELL] +en-US = "Not Linked To A Cell" + +[RID_STR_EXCEL_ATTRIBUTE_CATEGORYANDDATA] +en-US = "Category And Data" + +[RID_STR_EXCEL_ATTRIBUTE_SEPARATE] +en-US = "Separate" + +[RID_STR_EXCEL_ATTRIBUTE_DATASOURCEONDIFFERENTSHEET] +en-US = "On Different Sheet" + +[RID_STR_EXCEL_ATTRIBUTE_CATEGORYLABEL] +en-US = "Category Label" + +[RID_STR_EXCEL_ATTRIBUTE_CATEGORYLABELMORETHANONECELL] +en-US = "More Than One Cell" + +[RID_STR_EXCEL_ATTRIBUTE_COLUMNBAR] +en-US = "Column/Bar Chart" + +[RID_STR_EXCEL_ATTRIBUTE_ONECOLUMNROW] +en-US = "Data Source With Single Column/ Chart Series In Row" + +[RID_STR_EXCEL_ATTRIBUTE_BORDER] +en-US = "Border" + +[RID_STR_EXCEL_ATTRIBUTE_AXISINTERVAL] +en-US = "Y Axis Interval" + +[RID_STR_EXCEL_ATTRIBUTE_AUTO] +en-US = "Auto" + +[RID_STR_EXCEL_ATTRIBUTE_CHARTNAME] +en-US = "Chart Name" + +[RID_STR_EXCEL_SUBISSUE_CHART_COMPLEX] +en-US = "Chart Issues Complex" + +[RID_STR_EXCEL_SUBISSUE_CHART_MINOR] +en-US = "Chart Issues Minor" + +[RID_STR_EXCEL_ATTRIBUTE_NOTRIGHT] +en-US = "not at right hand side" + +[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_CELLS] +en-US = "number cells effected" + +[RID_STR_PP_TRUE] +en-US = "True" + +[RID_STR_PP_FALSE] +en-US = "False" + +[RID_STR_PP_ISSUE_OBJECTS_GRAPHICS_AND_TEXTBOXES] +en-US = "Objects, Graphics and Textboxes" + +[RID_STR_PP_SUBISSUE_COMMENT] +en-US = "Comment" + +[RID_STR_PP_SUBISSUE_MOVIE] +en-US = "Movie" + +[RID_STR_PP_ATTRIBUTE_CONTENT] +en-US = "Content" + +[RID_STR_PP_ATTRIBUTE_LOOP] +en-US = "Loop" + +[RID_STR_PP_ATTRIBUTE_PLAYONENTRY] +en-US = "PlayOnEntry" + +[RID_STR_PP_ATTRIBUTE_REWIND] +en-US = "Rewind" + +[RID_STR_PP_ATTRIBUTE_TYPES] +en-US = "Types" + +[RID_STR_PP_ENUMERATION_VIEW_HANDOUT_MASTER] +en-US = "View Handout Master" + +[RID_STR_PP_ENUMERATION_VIEW_NORMAL] +en-US = "View Normal" + +[RID_STR_PP_ENUMERATION_VIEW_NOTES_MASTER] +en-US = "View Notes Master" + +[RID_STR_PP_ENUMERATION_VIEW_NOTES_PAGE] +en-US = "View Notes Page" + +[RID_STR_PP_ENUMERATION_VIEW_OUTLINE] +en-US = "View Outline" + +[RID_STR_PP_ENUMERATION_VIEW_SLIDE] +en-US = "View Slide" + +[RID_STR_PP_ENUMERATION_VIEW_SLIDE_MASTER] +en-US = "View Slide Master" + +[RID_STR_PP_ENUMERATION_VIEW_SLIDE_SORTER] +en-US = "View Slide Sorter" + +[RID_STR_PP_ENUMERATION_VIEW_TITLE_MASTER] +en-US = "View Title Master" + +[RID_STR_PP_ENUMERATION_UNKNOWN] +en-US = "Unknown" + +[RID_RESXLS_COST_Action_Settings] +en-US = "Action Settings" + +[RID_RESXLS_COST_Add_custom_properties_to_document_Properties_Summary_Comments_field] +en-US = "Add custom properties to document Properties Summary Comments field." + +[RID_RESXLS_COST_Additional_Weighting_Factors] +en-US = "Additional Weighting Factors" + +[RID_RESXLS_COST_All_sheets__256_will_need_to_be_moved_to_a_new_workbook] +en-US = "All sheets >256 will need to be moved to a new workbook" + +[RID_RESXLS_COST_Appearance] +en-US = "Appearance" + +[RID_RESXLS_COST_Application] +en-US = "Application" + +[RID_RESXLS_COST_AutoFilter] +en-US = "AutoFilter" + +[RID_RESXLS_COST_Border_Styles] +en-US = "Border Styles" + +[RID_RESXLS_COST_Cell_Attributes] +en-US = "Cell Attributes" + +[RID_RESXLS_COST_CELL_SPAN_WORKAROUND] +en-US = "Add extra row below cell. Cut and paste contents running onto 2nd page into new cell." + +[RID_RESXLS_COST_Cell_Spanning_Page] +en-US = "Cell Spanning Page" + +[RID_RESXLS_COST_ChangesAndReviewing] +en-US = "Changes And Reviewing" + +[RID_RESXLS_COST_Charts_And_Tables] +en-US = "Charts And Tables" + +[RID_RESXLS_COST_Comment] +en-US = "Comment" + +[RID_RESXLS_COST_Content_And_Document_Properties] +en-US = "Content And Document Properties" + +[RID_RESXLS_COST_ContentAndDocumentProperties] +en-US = "Content And Document Properties" + +[RID_RESXLS_COST_Controls] +en-US = "Controls" + +[RID_RESXLS_COST_Cost] +en-US = "Cost Comment" + +[RID_RESXLS_COST_Cost__In_simple_cases_cut_and_paste_to_new_sheet_3___5_min] +en-US = "Cost: In simple cases cut and paste to new sheet. 3 - 5 min. May exist functions that refer to these cells. 10+" + +[RID_RESXLS_COST_COST_0] +en-US = "Cost = 0. No work around." + +[RID_RESXLS_COST_COST_EMBED_CHART] +en-US = "Variations in cost can range from 0 - 30 mins. Cost caused by uneven data souce, external data source, unsupported chart types, floating legend position." + +[RID_RESXLS_COST_COST_ERROR_TYPE] +en-US = "Fix up cost can vary depending on the context in which this is used. Cost 3 - 5" + +[RID_RESXLS_COST_COST_INFO] +en-US = "Fix up cost can vary depending on the context in which this is used. Cost 2 - 4" + +[RID_RESXLS_COST_COST_INVAL_PASS] +en-US = "Cost = 0. Rerun analysis with correct password." + +[RID_RESXLS_COST_COST_INVALID_WORKSHEET_NAME] +en-US = "Aufewand: Vergewissern Sie sich nach der Umbenennung, dass alle Makros mit Verweisen auf dieses Arbeitsblatt ebenfalls angepaßt werden. Der Aufwand hängt von der Zahl der Codezeilen ab, die auf den Arbeitsblattnamen verweisen." +en-US = "Cost: When the worksheet has been renamed, ensure that all macros with a reference to the worksheet are also renamed accordingly. Cost depends on how many lines of code there are that refer to the worksheet name." + +[RID_RESXLS_COST_Cost_of_4_min_per_line__takes_no_account_of_complexity_of_code__number_of_comment_lines_and_so_on] +en-US = "Cost of 4 min per line, takes no account of complexity of code, number of comment lines and so on" + +[RID_RESXLS_COST_Cost_per_Issue_or_Factor__min] +en-US = "Cost per Issue or Factor (min)" + +[RID_RESXLS_COST_COST_PIVOT] +en-US = "Cost = 0. Calc does not support dynamically created charts. No workaround." + +[RID_RESXLS_COST_COST_SHEET_CHART] +en-US = "Variations in cost can range from 0 - 30 mins. Cost caused by uneven data souce, external data source, unsupported chart types, floating legend position." + +[RID_RESXLS_COST_Cost_variations_occur_because_of_the_use_of_macros_with_controls] +en-US = "Cost variations occur because of the use of macros with controls." + +[RID_RESXLS_COST_COST_VBA_CONT_TYPE] +en-US = "Cost = 0. Total number of controls better estimate - this information is useful as an indication of complexity of the Forms." + +[RID_RESXLS_COST_COST_VBA_CONTROLS] +en-US = "Cost = 3 minute per control, this does not take account of issues with Frame controls or the number of these controls that have event handlers that need manually linked to migrated code." + +[RID_RESXLS_COST_COST_VBA_FORMS] +en-US = "Cost = 0. Using total number of controls on forms as better estimate" + +[RID_RESXLS_COST_COST_VBA_LOC] +en-US = "Cost of 4 min per line, takes no account of complexity of code, number of comment lines and so on" + +[RID_RESXLS_COST_COST_VBA_PROPS] +en-US = "Cost = 0 using lines of code as better cost estimate." + +[RID_RESXLS_COST_Costs__min] +en-US = "Costs (min)" + +[RID_RESXLS_COST_Custom_Bullet_List] +en-US = "Custom Bullet List" + +[RID_RESXLS_COST_Document_Custom_Properties] +en-US = "Document Custom Properties" + +[RID_RESXLS_COST_Document_Parts_Protection] +en-US = "Document Parts Protection" + +[RID_RESXLS_COST_Embedded_Chart] +en-US = "Chart Issues Minor" + +[RID_RESXLS_COST_embedded_objects] +en-US = "Cost = 0. Most embedded objects come across. If one does not then this may require some reenginering and is not in the scope of an automated cost calculation." + +[RID_RESXLS_COST_Embedded_OLE_Object] +en-US = "Embedded OLE Object" + +[RID_RESXLS_COST_Excel] +en-US = "Excel" + +[RID_RESXLS_COST_Excel_Totals] +en-US = "Excel Totals" + +[RID_RESXLS_COST_External] +en-US = "External" + +[RID_RESXLS_COST_External_References_In_Macro___Module__Class_or_UserForm] +en-US = "External References In Macro - Module, Class or UserForm" + +[RID_RESXLS_COST_Factor_Count] +en-US = "Factor Count" + +[RID_RESXLS_COST_Fields] +en-US = "Fields" + +[RID_RESXLS_COST_Filters] +en-US = "Filters" + +[RID_RESXLS_COST_Fixed_SO7] +en-US = "Fixed <PRODUCTNAME> <PRODUCTVERSION>" + +[RID_RESXLS_COST_Form_Field] +en-US = "Form Field" + +[RID_RESXLS_COST_Format] +en-US = "Format" + +[RID_RESXLS_COST_Functions] +en-US = "Functions" + +[RID_RESXLS_COST_Zoom] +en-US = "Zoom" + +[RID_RESXLS_COST_HEADERFOOTER_WORKAROUND] +en-US = "Insert carriage returns to resize header/ footer to the size of the graphic." + +[RID_RESXLS_COST_Hours_Per_MD] +en-US = "Hours Per MD =" + +[RID_RESXLS_COST_Indexes_And_References] +en-US = "Indexes And References" + +[RID_RESXLS_COST_Invalid_Password_Entered] +en-US = "Invalid Password Entered" + +[RID_RESXLS_COST_Invalid_Worksheet_Name] +en-US = "Invalid Worksheet Name" + +[RID_RESXLS_COST_Issue__18_of_the_24_table_border_styles_do_not_display_correctly] +en-US = "Issue: 18 of the 24 table border styles do not display correctly." + +[RID_RESXLS_COST_Issue__256_sheet_limit_exceeded] +en-US = "Issue: 256 sheet limit exceeded." + +[RID_RESXLS_COST_Issue__32000_row_limit_exceeded] +en-US = "Issue: 32000 row limit exceeded." + +[RID_RESXLS_COST_Issue__A_worksheet_in_the_workbook_has_a_name_with_invalid_characters] +en-US = "Issue: A worksheet in the workbook has a name with invalid characters." + +[RID_RESXLS_COST_Issue__AutoFilter_does_not_function_properly] +en-US = "Issue: AutoFilter does not function properly." + +[RID_RESXLS_COST_Issue__Calls_to_windows_API_functions_are_windows_specific] +en-US = "Issue: Calls to windows API functions are windows specific." + +[RID_RESXLS_COST_Issue__Chart_support_is_limited_in_SO7] +en-US = "Issue: Chart support is limited in <PRODUCTNAME>." + +[RID_RESXLS_COST_Issue__Comments_are_lost_on_migration_to_SO7] +en-US = "Issue: Comments are lost on migration to <PRODUCTNAME>." + +[RID_RESXLS_COST_Issue__Custom_Properties_are_lost_on_migration] +en-US = "Issue: Custom Properties are lost on migration" + +[RID_RESXLS_COST_Issue__Document_is_password_protected_and_cannot_be_opened_by_SO] +en-US = "Issue: Document is password protected and cannot be opened by SO." + +[RID_RESXLS_COST_Issue__External_functions_not_supported_by_SO7] +en-US = "Issue: External functions not supported by <PRODUCTNAME>" + +[RID_RESXLS_COST_Issue__External_references_are_windows_specific] +en-US = "Issue: External references are windows specific." + +[RID_RESXLS_COST_Issue__Fields_are_imported_but_need_to_have_the_link_to_datasource_reset] +en-US = "Issue: Fields are imported but need to have the link to data source reset." + +[RID_RESXLS_COST_Issue__Graphics___frames_in_header_footer_tend_to_be_misplaced] +en-US = "Issue: Graphics & frames in header footer tend to be misplaced." + +[RID_RESXLS_COST_Issue__Incorrect_password_entered] +en-US = "Issue: Incorrect password entered. " + +[RID_RESXLS_COST_Issue__Information_relating_to_the_data_source_is_lost_in_migration] +en-US = "Issue: Information relating to the data source is lost in migration." + +[RID_RESXLS_COST_Issue__Invalid_password_entered_Rerun_analysis] +en-US = "Issue: Invalid password entered. Rerun analysis." + +[RID_RESXLS_COST_Issue__Lost_during_migration_No_StarOffice_equivalent] +en-US = "Issue: Lost during migration. No <PRODUCTNAME> equivalent." + +[RID_RESXLS_COST_Issue__Macros_from_old_workbook_versions_do_not_import_into_SO7] +en-US = "Issue: Macros from old workbook versions do not import into SO9." + +[RID_RESXLS_COST_Issue__Modules_will_need_porting_to_StarOffice_Basic] +en-US = "Issue: Modules will need porting to <PRODUCTNAME> Basic." + +[RID_RESXLS_COST_Issue__Most_migrate_ok_but_do_not_roundtrip] +en-US = "Issue: Most migrate ok but do not roundtrip." + +[RID_RESXLS_COST_Issue__Movies_are_not_supported_by_SO7] +en-US = "Issue: Movies are not supported by <PRODUCTNAME>." + +[RID_RESXLS_COST_Issue__Need_to_set_these_to_be_included_in_TOC_in_SO7] +en-US = "Issue: Need to set these to be included in TOC in <PRODUCTNAME>" + +[RID_RESXLS_COST_Issue__Password_protection_of_comments__tracked_changes_and_forms_is_lost] +en-US = "Issue: Password protection of comments, tracked changes and forms is lost." + +[RID_RESXLS_COST_Issue__Pivot_charts_are_not_supported_by_SO7] +en-US = "Issue: Pivot charts are not supported by <PRODUCTNAME>." + +[RID_RESXLS_COST_Issue__Presents_a_cross_platform_interoperability_issue] +en-US = "Issue: Presents a cross platform interoperability issue." + +[RID_RESXLS_COST_Issue__Print_wide_pages_not_supported] +en-US = "Issue: Print wide pages not supported." + +[RID_RESXLS_COST_Issue__Shading_can_be_applied_to_fields_and_to_controls_separately_in_Word] +en-US = "Issue: Shading can be applied to fields and to controls separately in Word. <PRODUCTNAME> does not differentiate between controls and fields so shading can look different in Writer." + +[RID_RESXLS_COST_Issue__Table_imported_as_text_as_no_StarOffice_equivalent] +en-US = "Issue: Table imported as text as no <PRODUCTNAME> equivalent." + +[RID_RESXLS_COST_Issue__Tables_nested_in_tables_are_not_supported_by_SO7] +en-US = "Issue: Tables nested in tables are not supported by <PRODUCTNAME>." + +[RID_RESXLS_COST_Issue__Tabs_are_incorrect_after_migration] +en-US = "Issue: Tabs are incorrect after migration. Certain format types do not migrate to <PRODUCTNAME>." + +[RID_RESXLS_COST_Issue__Text_form_fields_roundtrip_as_Fill_In_field] +en-US = "Issue: Text form fields roundtrip as Fill In field. Field attributes are lost." + +[RID_RESXLS_COST_Issue__Unsupported_formatting_set] +en-US = "Issue: Unsupported formatting set." + +[RID_RESXLS_COST_Issue__Unsupported_function_type] +en-US = "Issue: Unsupported function type. " + +[RID_RESXLS_COST_Issue__Userform_controls_will_need_porting_to_StarOffice_Basic] +en-US = "Issue: Userform controls will need porting to <PRODUCTNAME> Basic." + +[RID_RESXLS_COST_Issue__Userforms_controls_will_need_porting_to_StarOffice_Basic] +en-US = "Issue: Userform controls will need porting to <PRODUCTNAME> Basic." + +[RID_RESXLS_COST_Issue__Userforms_will_need_porting_to_StarOffice_Basic] +en-US = "Issue: Userforms will need porting to <PRODUCTNAME> Basic." + +[RID_RESXLS_COST_Issue__VBProject_is_password_protected_Remove_password__rerun_analysis] +en-US = "Issue: VBProject is password protected. Remove password, rerun analysis." + +[RID_RESXLS_COST_Issue__Will_need_refreshing_in_SO7_External_datasources_and_functions_are_not_supported] +en-US = "Issue: Will need refreshing in <PRODUCTNAME>. External data sources and functions are not supported" + +[RID_RESXLS_COST_Issue__Workbook_protection_is_not_supported] +en-US = "Issue: Workbook protection is not supported" + +[RID_RESXLS_COST_Issue__Writer_cannot_correctly_display_cells_spanning_more_than_1_page] +en-US = "Issue: Writer cannot correctly display cells spanning more than 1 page." + +[RID_RESXLS_COST_Issue_Category] +en-US = "Issue Category" + +[RID_RESXLS_COST_Issue_Count] +en-US = " Issue Count" + +[RID_RESXLS_COST_Issue_Type] +en-US = "Issue Type" + +[RID_RESXLS_COST_Linked_OLE_Object] +en-US = "Linked OLE Object" + +[RID_RESXLS_COST_Mail_Merge_Datasource] +en-US = "Mail Merge Data Source" + +[RID_RESXLS_COST_Mail_Merge_Field] +en-US = "Mail Merge Field" + +[RID_RESXLS_COST_Major_Issue] +en-US = "Complex Issue" + +[RID_RESXLS_COST_MAX_SHEETS_WORKAROUND] +en-US = "Need to move sheets to new workbook. " + +[RID_RESXLS_COST_Maximum_Rows_Exceeded] +en-US = "Maximum Rows Exceeded" + +[RID_RESXLS_COST_Maximum_Sheets_Exceeded] +en-US = "Maximum Sheets Exceeded" + +[RID_RESXLS_COST_Migration_Issues_Costs] +en-US = "Migration Issues Analyzed" + +[RID_RESXLS_COST_Movie] +en-US = "Movie" + +[RID_RESXLS_COST_NESTED_TABLE_WORKAROUND] +en-US = "In word use split cell to create similar layout." + +[RID_RESXLS_COST_Nested_Tables] +en-US = "Nested Tables" + +[RID_RESXLS_COST_Not_Planned] +en-US = "Not Planned" + +[RID_RESXLS_COST_Notes_And_Handouts] +en-US = "Notes And Handouts" + +[RID_RESXLS_COST_Number_Of_External_References] +en-US = "Number Of External References" + +[RID_RESXLS_COST_Number_Of_Lines] +en-US = "Number Of Lines" + +[RID_RESXLS_COST_Number_of_Lines_in_Unique_Modules] +en-US = "Number of Lines in Unique Code Modules" + +[RID_RESXLS_COST_Number_of_Modules] +en-US = "Number of Modules" + +[RID_RESXLS_COST_Number_of_Unique_Modules] +en-US = "Number of Unique Code Modules" + +[RID_RESXLS_COST_Numbering_Reference] +en-US = "Numbering Reference" + +[RID_RESXLS_COST_Numbering_Reference_Comment] +en-US = "Issue: <PRODUCTNAME> can not import references that refer in a numbered list." + +[RID_RESXLS_COST_Object_In_Header_Footer] +en-US = "Object In Header Footer" + +[RID_RESXLS_COST_Objects_And_Graphics] +en-US = "Objects And Graphics" + +[RID_RESXLS_COST_Objects_Graphics_And_Frames] +en-US = "Objects Graphics And Frames" + +[RID_RESXLS_COST_Objects_Graphics_And_Textboxes] +en-US = "Objects Graphics And Textboxes" + +[RID_RESXLS_COST_Old_Workbook_Version] +en-US = "Old Workbook Version" + +[RID_RESXLS_COST_OLE_Control] +en-US = "OLE Control" + +[RID_RESXLS_COST_OLECONTR_COST] +en-US = "Cost variations occur because of the use of macros with controls." + +[RID_RESXLS_COST_Page_Setup] +en-US = "Page Setup" + +[RID_RESXLS_COST_Password_Protected] +en-US = "Password Protected" + +[RID_RESXLS_COST_Password_Protection] +en-US = "Password Protection" + +[RID_RESXLS_COST_Pivot] +en-US = "Pivot Chart" + +[RID_RESXLS_COST_Planned_SO8] +en-US = "Planned" + +[RID_RESXLS_COST_Portability] +en-US = "Portability" + +[RID_RESXLS_COST_PowerPoint] +en-US = "PowerPoint" + +[RID_RESXLS_COST_PowerPoint_Totals] +en-US = "PowerPoint Totals" + +[RID_RESXLS_COST_Prepared_Issue_Count] +en-US = "Prepared Issue Count" + +[RID_RESXLS_COST_Prepared_Savings__min] +en-US = "Prepared Savings (min)" + +[RID_RESXLS_COST_Properties___Module__Class_or_UserForm] +en-US = "Properties - Module, Class or UserForm" + +[RID_RESXLS_COST_Remove_password_to_open] +en-US = "Remove password to open." + +[RID_RESXLS_COST_Remove_the_invalid_characters_from_the_worksheet_name] +en-US = "Remove the invalid characters from the worksheet name." + +[RID_RESXLS_COST_Rerun_analysis_with_correct_password] +en-US = "Rerun analysis with correct password." + +[RID_RESXLS_COST_Reset_link_to_Data_Base_having_setup_a_Datasource_in_SO7] +en-US = "Reset link to database having setup a data source in <PRODUCTNAME>." + +[RID_RESXLS_COST_set_cost_factor_if_the_macro_has_to_be_ported_off_Windows] +en-US = "Cost = 0. Set a cost factor if the macro has to be ported off Windows. " + +[RID_RESXLS_COST_Save_workbook_as_a_new_workbook_version] +en-US = "Save workbook as a new workbook version." + +[RID_RESXLS_COST_Setup_Datasource_in_SO7_using_Tools__Datasource] +en-US = "Setup data source in <PRODUCTNAME> using Tools/Data source" + +[RID_RESXLS_COST_Sheet_Chart] +en-US = "Chart Issues Complex" + +[RID_RESXLS_COST_Status] +en-US = "Status" + +[RID_RESXLS_COST_Table_Of_Authorities] +en-US = "Table Of Authorities" + +[RID_RESXLS_COST_Table_Of_Authorities_Field] +en-US = "Table Of Authorities Field" + +[RID_RESXLS_COST_Table_Of_Contents] +en-US = "Table Of Contents" + +[RID_RESXLS_COST_Tables] +en-US = "Tables" + +[RID_RESXLS_COST_TOC_ISSUE_WORKAROUND] +en-US = "Tab Issues: use fancy format. Numbering incorrect: remove blank lines with heading style used by TOC. Numbering abuts Header: replace leading tabs in Header style used in TOC with spaces." + +[RID_RESXLS_COST_Total_Cost___MD] +en-US = "Total Cost (MD) = " + +[RID_RESXLS_COST_User_Error] +en-US = "User Error" + +[RID_RESXLS_COST_User_Forms_Control_Count] +en-US = "User Forms Control Count" + +[RID_RESXLS_COST_User_Forms_Control_Type_Count] +en-US = "User Forms Control Type Count" + +[RID_RESXLS_COST_User_Forms_Count] +en-US = "User Forms Count" + +[RID_RESXLS_COST_VBA_Macros] +en-US = "VBA Macros" + +[RID_RESXLS_COST_Word] +en-US = "Word" + +[RID_RESXLS_COST_Word_Totals] +en-US = "Word Totals" + +[RID_RESXLS_COST_Work_Around] +en-US = "Work Around" + +[RID_RESXLS_COST_Workaround_Remove_protection_before_importing] +en-US = "Remove protection before importing" + +[RID_RESXLS_COST_WorkbookProtection] +en-US = "WorkbookProtection " + +[RID_RESXLS_DP_Accessed] +en-US = "Accessed" + +[RID_RESXLS_DP_All_Analysed_Documents___Properties] +en-US = "All Analysed Documents - properties" + +[RID_RESXLS_DP_Application] +en-US = "Application" + +[RID_RESXLS_DP_Based_on_Template] +en-US = "Based on Template" + +[RID_RESXLS_DP_Costs] +en-US = "Costs" + +[RID_RESXLS_DP_Created] +en-US = "Created" + +[RID_RESXLS_DP_Document_Details] +en-US = "Document Details" + +[RID_RESXLS_DP_Document_Issue_Costs] +en-US = "Document Migration Costs (min)" + +[RID_RESXLS_DP_Document_Migration_Issues] +en-US = "Document Migration Issues" + +[RID_RESXLS_DP_Document_Name] +en-US = "Document Name" + +[RID_RESXLS_DP_Document_Name_and_Path] +en-US = "Document Name and Path" + +[RID_RESXLS_DP_Issues_Complex_count] +en-US = "Issues Complex Count" + +[RID_RESXLS_DP_Last_Saved_By] +en-US = "Last Saved By" + +[RID_RESXLS_DP_Lines_of_Macro_Code] +en-US = "Lines of Macro Code" + +[RID_RESXLS_DP_Macro_Issues] +en-US = "Macro Migration Issues" + +[RID_RESXLS_DP_Macro_Migration_Costs] +en-US = "Macro Migration Costs (min)" + +[RID_RESXLS_DP_Macro_Migration_Issues] +en-US = "Macro Migration Issues" + +[RID_RESXLS_DP_Migration_Issues] +en-US = "Document Migration Issues" + +[RID_RESXLS_DP_Minor_Issues] +en-US = "Issues Minor Count" + +[RID_RESXLS_DP_Modified] +en-US = "Modified" + +[RID_RESXLS_DP_Pages_Sheets_Slides] +en-US = "Pages, Sheets or Slides Count" + +[RID_RESXLS_DP_Prepareable_Issues_Costs] +en-US = "Prepareable Issues Savings (min)" + +[RID_RESXLS_DP_Prepared_Issues] +en-US = "Prepareable Document Issues" + +[RID_RESXLS_DP_Printed] +en-US = "Printed" + +[RID_RESXLS_DP_Revision] +en-US = "Revision" + +[RID_RESXLS_DP_User_Form_Count] +en-US = "User Form Count" + +[RID_RESXLS_ID_All_Documents_with_Issues___Issue_Details] +en-US = "All Documents with Issues - Issue Details" + +[RID_RESXLS_ID_Application] +en-US = "Application" + +[RID_RESXLS_ID_Column__Left] +en-US = "Column/ Left" + +[RID_RESXLS_ID_Document_Name] +en-US = "Document Name" + +[RID_RESXLS_ID_Document_Name_and_Path] +en-US = "Document Name and Path" + +[RID_RESXLS_ID_Issue_Category] +en-US = "Issue Category" + +[RID_RESXLS_ID_Issue_Details] +en-US = "Issue Details" + +[RID_RESXLS_ID_Issue_Type] +en-US = "Issue Type" + +[RID_RESXLS_ID_Line__Row__Top] +en-US = "Line/ Row/ Top" + +[RID_RESXLS_ID_Location] +en-US = "Location" + +[RID_RESXLS_ID_Location_Type] +en-US = "Location Type" + +[RID_RESXLS_OV_3_to_6_months] +en-US = "3 - 6 months" + +[RID_RESXLS_OV_6_to_12_months] +en-US = "6 - 12 months" + +[RID_RESXLS_OV_Complex] +en-US = "Complex" + +[RID_RESXLS_OV_Cost_estimates_for_migration] +en-US = "Cost estimates for migration of all analyzed documents" + +[RID_RESXLS_OV_Costs] +en-US = "Costs (MD)" + +[RID_RESXLS_OV_Docs_with_DocumentMigrationIssues] +en-US = "Documents with Document Migration Issues (excludes macro issues)" + +[RID_RESXLS_OV_Document_Migration_Costs] +en-US = "Document Migration Costs<CR>( costs based on: issues listed in Issues Analyzed, excludes macros issues )" + +[RID_RESXLS_OV_Document_Modification_Dates] +en-US = "Document Modification Dates" + +[RID_RESXLS_OV_Document_Type] +en-US = "Type" + +[RID_RESXLS_OV_Documents_with_Macro_Migration_Issues] +en-US = "Documents with Macro Migration Issues" + +[RID_RESXLS_OV_Excel] +en-US = "Excel" + +[RID_RESXLS_OV_Excel_Costs] +en-US = "Excel " + +[RID_RESXLS_OV_Excel_Spreadsheet] +en-US = " Spreadsheets (.xls)" + +[RID_RESXLS_OV_Excel_Template] +en-US = " Templates (.xlt)" + +[RID_RESXLS_OV_GREATER_THAN_1_year] +en-US = "> 1 year" + +[RID_RESXLS_OV_Last_Modified] +en-US = "Last Modified" + +[RID_RESXLS_OV_LESS_3_months] +en-US = "< 3 months" + +[RID_RESXLS_OV_LESS_THAN3MONTHS] +en-US = "Templates (.dot)" + +[RID_RESXLS_OV_Macro_Migration_Costs] +en-US = "Manual Macro Migration Costs<CR>( costs based on: number of lines in unique code modules and number of user form controls )" + +[RID_RESXLS_OV_Medium] +en-US = "Medium" + +[RID_RESXLS_OV_Minor] +en-US = "Minor" + +[RID_RESXLS_OV_None] +en-US = "None" + +[RID_RESXLS_OV_Number] +en-US = "Number" + +[RID_RESXLS_OV_Number_of_Documents_Analyzed] +en-US = "Number of Documents Analyzed" + +[RID_RESXLS_OV_NumberOfDocs] +en-US = "Number of docs" + +[RID_RESXLS_OV_Potential_savings_macro_conversion] +en-US = "Potential Savings with Automated Macro Migration of 20 to 60%" + +[RID_RESXLS_OV_Potential_savings_prepared_docs] +en-US = "Potential Savings with Automated Preparation" + +[RID_RESXLS_OV_PowerPoint] +en-US = "PowerPoint" + +[RID_RESXLS_OV_PowerPoint_Costs] +en-US = "PowerPoint " + +[RID_RESXLS_OV_PowerPoint_Document] +en-US = " Presentations (.ppt)" + +[RID_RESXLS_OV_PowerPoint_Template] +en-US = " Templates (.pot)" + +[RID_RESXLS_OV_Simple] +en-US = "Simple" + +[RID_RESXLS_OV_Total] +en-US = "Total" + +[RID_RESXLS_OV_Totals] +en-US = "Totals" + +[RID_RESXLS_OV_Word] +en-US = "Word" + +[RID_RESXLS_OV_Word_Costs] +en-US = "Word " + +[RID_RESXLS_OV_Word_Document] +en-US = "Documents (.doc)" + +[RID_RESXLS_OV_Word_Template] +en-US = "Templates (.dot)" + +[RID_RESXLS_PP_Action_Settings] +en-US = "Action Settings" + +[RID_RESXLS_PP_Application] +en-US = "Application" + +[RID_RESXLS_PP_Content___Document_Properties] +en-US = "Content & Document Properties" + +[RID_RESXLS_PP_Document_Name_and_Path] +en-US = "Document Name and Path" + +[RID_RESXLS_PP_Fields] +en-US = "Fields" + +[RID_RESXLS_PP_Format] +en-US = "Format" + +[RID_RESXLS_PP_Notes___Handouts] +en-US = "Notes & Handouts" + +[RID_RESXLS_PP_Objects__Graphics___Textboxes] +en-US = "Objects, Graphics & Textboxes" + +[RID_RESXLS_PP_Portability] +en-US = "Portability" + +[RID_RESXLS_PP_PowerPoint_Documents_with_Issues___Issue_Summary] +en-US = "PowerPoint Documents with Issues - Issue Summary" + +[RID_RESXLS_PP_PowerPoint_Presentation_Name] +en-US = "PowerPoint Presentation Name" + +[RID_RESXLS_PP_VBA_Macros] +en-US = "VBA Macros" + +[RID_RESXLS_RD_All_Documents_with_Macros___Reference_Details] +en-US = "All Documents with Macros - Reference Details" + +[RID_RESXLS_RD_Application] +en-US = "Application" + +[RID_RESXLS_RD_Description] +en-US = "Description" + +[RID_RESXLS_RD_Document_Name] +en-US = "Document Name" + +[RID_RESXLS_RD_Document_Name_and_Path] +en-US = "Document Name and Path" + +[RID_RESXLS_RD_Location] +en-US = "Location" + +[RID_RESXLS_RD_Reference] +en-US = "Reference" + +[RID_RESXLS_RD_Reference_Details] +en-US = "Reference Details" + +[RID_RESXLS_WI_Application] +en-US = "Application" + +[RID_RESXLS_WI_Changes_and_Reviewing] +en-US = "Changes and Reviewing" + +[RID_RESXLS_WI_Content___Document_Properties] +en-US = "Content & Document Properties" + +[RID_RESXLS_WI_Controls] +en-US = "Controls" + +[RID_RESXLS_WI_Document_Name_and_Path] +en-US = "Document Name and Path" + +[RID_RESXLS_WI_Fields] +en-US = "Fields" + +[RID_RESXLS_WI_Format] +en-US = "Format" + +[RID_RESXLS_WI_Index_and_References] +en-US = "Index and References" + +[RID_RESXLS_WI_Objects__Graphics____Frames] +en-US = "Objects, Graphics & Frames" + +[RID_RESXLS_WI_Portability] +en-US = "Portability" + +[RID_RESXLS_WI_Tables] +en-US = "Tables" + +[RID_RESXLS_WI_VBA_Macros] +en-US = "VBA Macros" + +[RID_RESXLS_WI_Word_Document_Name] +en-US = "Word Document Name" + +[RID_RESXLS_WI_Word_Documents_with_Issues___Issue_Summary] +en-US = "Word Documents with Issues - Issue Summary" + +[RID_RESXLS_XL_Application] +en-US = "Application" + +[RID_RESXLS_XL_Changes___Reviewing] +en-US = "Changes & Reviewing" + +[RID_RESXLS_XL_Charts___Tables] +en-US = "Charts & Tables" + +[RID_RESXLS_XL_Excel_Documents_with_Issues___Issue_Summary] +en-US = "Excel Documents with Issues - Issue Summary" + +[RID_RESXLS_XL_Excel_Spreadsheet_Name] +en-US = "Excel Spreadsheet Name" + +[RID_RESXLS_XL_Filters] +en-US = "Filters" + +[RID_RESXLS_XL_Format] +en-US = "Format" + +[RID_RESXLS_XL_Functions] +en-US = "Functions" + +[RID_RESXLS_XL_Objects___Graphics] +en-US = "Objects & Graphics" + +[RID_STR_DVR_XL_EXCEL_DRIVER] +en-US = "Excel Driver" + +[RID_STR_DVR_XL_ISSUES] +en-US = "2. Issues" + +[RID_STR_DVR_XL_PURPOSE] +en-US = "1. Purpose" + +[RID_STR_DVR_XL_READ_README] +en-US = "If there are any problems running the Wizard please refer to the Readme.doc" + +[RID_STR_DVR_XL_THE_MACROS] +en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of Excel documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool." + +[RID_STR_DVR_XL_THIS_DOC] +en-US = "This document contains VBA macros which collect and analyse Excel documents for known issues when importing into <PRODUCTNAME>" + +[RID_STR_DVR_XL_TITLE] +en-US = "<PRODUCTNAME> Migration Analysis - Excel Driver" + +[RID_STR_DVR_PP_TXT2] +en-US = "This document contains VBA macros which collect and analyse PowerPoint documents for known issues when importing into <PRODUCTNAME>" + +[RID_STR_DVR_PP_TXT3] +en-US = "<PRODUCTNAME> Migration Analysis - PowerPoint Driver" + +[RID_STR_DVR_PP_TXT4] +en-US = "PowerPoint Driver" + +[RID_STR_DVR_PP_TXT5] +en-US = "Purpose" + +[RID_STR_DVR_PP_TXT6] +en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of PowerPoint documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool." + +[RID_STR_DVR_PP_TXT7] +en-US = "Issues" + +[RID_STR_DVR_PP_TXT8] +en-US = "If there are any problems running the Wizard please refer to the Readme.doc" + +[RID_STR_WDVR_SOANA] +en-US = "<PRODUCTNAME> MIGRATION ANALYSIS - WORD DRIVER" + +[RID_STR_WDVR_INTRO] +en-US = "This document contains VBA macros, which collect and analyse Word documents for known issues when importing into <PRODUCTNAME>" + +[RID_STR_WDVR_TITLE] +en-US = "Word Driver" + +[RID_STR_WDVR_PURPO] +en-US = "Purpose" + +[RID_STR_WDVR_PARA1] +en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of Word documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool." + +[RID_STR_WDVR_ISSUE] +en-US = "Issues" + +[RID_STR_WDVR_PARA2] +en-US = "If there are any problems running the Wizard please refer to the Readme.doc" + +[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_COMMENTS] +en-US = "Allow Only Comments" + +[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_FORM_FIELDS] +en-US = "Allow Only FormFields" + +[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_REVISIONS] +en-US = "Allow Only Revisions" + +[RID_STR_WORD_ATTRIBUTE_AUTHOR] +en-US = "Author" + +[RID_STR_WORD_ATTRIBUTE_DATASOURCE] +en-US = "Datasource" + +[RID_STR_WORD_ATTRIBUTE_FIELD_TEXT] +en-US = "Field Text" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_AUTOSIZE] +en-US = "Autosize" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_ENTRY_MACRO] +en-US = "Entry macro" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_EXIT_MACRO] +en-US = "Exit macro" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_FILLIN_ENABLED] +en-US = "Fill-in enabled" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_GREYED] +en-US = "FormFields Greyed" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_AUTO_TEXT] +en-US = "Help Key(F1) [Auto Text]" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_OWN_TEXT] +en-US = "Help Key(F1) [Own Text]" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_LOCKED] +en-US = "Locked" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_MAX_LENGTH] +en-US = "Maximum Length" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_AUTO_TEXT] +en-US = "Status Bar Help [Auto Text]" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_OWN_TEXT] +en-US = "Status Bar Help [Own Text]" + +[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_TEXT_FORM_FIELD_TYPE] +en-US = "Text Form Field Type" + +[RID_STR_WORD_ATTRIBUTE_FOOTER] +en-US = "Footer" + +[RID_STR_WORD_ATTRIBUTE_HEADER] +en-US = "Header" + +[RID_STR_WORD_ATTRIBUTE_FRAME] +en-US = "Frame" + +[RID_STR_WORD_ATTRIBUTE_GRAPHIC] +en-US = "Graphic" + +[RID_STR_WORD_ATTRIBUTE_OBJECT_HEIGHT_GT_H] +en-US = "Height Greater Than Header Height" + +[RID_STR_WORD_ATTRIBUTE_OBJECT_HEIGHT_GT_F] +en-US = "Height Greater Than Footer Height" + +[RID_STR_WORD_ATTRIBUTE_NUM_OF_GRAPHIC] +en-US = "Number of Graphics" + +[RID_STR_WORD_ATTRIBUTE_OBJECT_LOCATED_BELOW_HEADER] +en-US = "Located Below Header" + +[RID_STR_WORD_ATTRIBUTE_NUM_OF_FRAME] +en-US = "Number of Frames" + +[RID_STR_WORD_ATTRIBUTE_HEADER_EVEN_PAGES] +en-US = "Even Page(s)" + +[RID_STR_WORD_ATTRIBUTE_HEADER_FIRST_PAGE] +en-US = "First Page" + +[RID_STR_WORD_ATTRIBUTE_HEADER_ODD_PAGES] +en-US = "Odd Page(s)" + +[RID_STR_WORD_ATTRIBUTE_HEADER_PAGE_DEFAULT] +en-US = "Page Default" + +[RID_STR_WORD_ATTRIBUTE_GRAPHICTYPE] +en-US = "Graphic Type" + +[RID_STR_WORD_ATTRIBUTE_INLINESHAPE] +en-US = "Inline Shape" + +[RID_STR_WORD_ATTRIBUTE_INNER_TABLE] +en-US = "InnerTable" + +[RID_STR_WORD_ATTRIBUTE_LEADER] +en-US = "Leader" + +[RID_STR_WORD_ATTRIBUTE_LINK] +en-US = "Link" + +[RID_STR_WORD_ATTRIBUTE_LOCATION] +en-US = "Location" + +[RID_STR_WORD_ATTRIBUTE_NUMBER_CUSTOM_PARAGRAPHS] +en-US = "Number of custom paragraphs" + +[RID_STR_WORD_ATTRIBUTE_OUTER_TABLE] +en-US = "Outer Table" + +[RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_MODIFY] +en-US = "Password to Modify" + +[RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_OPEN] +en-US = "Password to Open" + +[RID_STR_WORD_ATTRIBUTE_PROTECTION] +en-US = "Protection" + +[RID_STR_WORD_ATTRIBUTE_SET] +en-US = "Set" + +[RID_STR_WORD_ATTRIBUTE_START_COL] +en-US = "Start Column" + +[RID_STR_WORD_ATTRIBUTE_START_ROW] +en-US = "Start Row" + +[RID_STR_WORD_ATTRIBUTE_TEXT] +en-US = "Text" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_ISSUE] +en-US = "Potential problem with TOC Format matching Modern style" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_NOT_MIGRATE_CLEAN] +en-US = "TOC Format will not migrate cleanly" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_NOT_ROUNDTRIP_CLEAN] +en-US = "TOC will not roundtrip cleanly due to following settings" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FROM_TEMPLATE_WITH_LEVEL] +en-US = "Format [FromTemplate] Level" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FROM_TEMPLATE_TAB_DOTS] +en-US = "Format [FromTemplate] TabLeader [Dots]" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FORMAL_WITH_LEVEL] +en-US = "Format [Formal] Level" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_CLASSIC_WITH_LEVEL] +en-US = "Format [Classic] Level" + +[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_DISTINCTIVE_WITH_LEVEL] +en-US = "Format [Distinctive] Level" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_CALCULATION] +en-US = "Calculation" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_CHECK_BOX] +en-US = "Check Box Form Field" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_DATE] +en-US = "Current Date" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_TIME] +en-US = "Current Time" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DATE] +en-US = "Date" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE] +en-US = "Default date" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_EXPRESSION] +en-US = "Expression" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_NUMBER] +en-US = "Default number" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TEXT] +en-US = "Default text" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TIME] +en-US = "Default time" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_DROP_DOWN] +en-US = "Drop-Down Form Field" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE] +en-US = "Date format" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER] +en-US = "Number format" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TEXT] +en-US = "Text format" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TIME] +en-US = "Time format" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_NUMBER] +en-US = "Number" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_REGULAR] +en-US = "Regular" + +[RID_STR_WORD_ENUMERATION_FORM_FIELD_TEXT] +en-US = "Text Form Field" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_ASK] +en-US = "Ask" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER] +en-US = "Auto Number" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_LEGAL] +en-US = "Auto Number Legal" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_OUTLINE] +en-US = "Auto Number Outline" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_FIELD_NAME_NOT_KNOWN] +en-US = "Field name not known" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_FILL_IN] +en-US = "Fill In" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_RECORDS] +en-US = "Merge Records" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_FIELDS] +en-US = "Merge Fields" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_NEXT] +en-US = "Next" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_REVISION_NUMBER] +en-US = "Revision Number" + +[RID_STR_WORD_ENUMERATION_MAILMERGE_SEQUENCE] +en-US = "Sequence" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_CLASSIC] +en-US = "Classic" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_DISTINCTIVE] +en-US = "Distinctive" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FANCY] +en-US = "Fancy" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FORMAL] +en-US = "Formal" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_MODERN] +en-US = "Modern" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_SIMPLE] +en-US = "Simple" + +[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FROM_TEMPLATE] +en-US = "From Template" + +[RID_STR_WORD_ENUMERATION_INDEX_LEADER_DASHES] +en-US = "Dashes" + +[RID_STR_WORD_ENUMERATION_INDEX_LEADER_DOTS] +en-US = "Dots" + +[RID_STR_WORD_ENUMERATION_INDEX_LEADER_HEAVY] +en-US = "Heavy" + +[RID_STR_WORD_ENUMERATION_INDEX_LEADER_LINES] +en-US = "Lines" + +[RID_STR_WORD_ENUMERATION_INDEX_LEADER_MIDDLEDOT] +en-US = "MiddleDot" + +[RID_STR_WORD_ENUMERATION_INDEX_LEADER_SPACES] +en-US = "Spaces" + +[RID_STR_WORD_ENUMERATION_UNKNOWN] +en-US = "Unknown" + +[RID_STR_WORD_FALSE] +en-US = "False" + +[RID_STR_WORD_TRUE] +en-US = "True" + +[RID_STR_WORD_ISSUE_FIELDS] +en-US = "Fields" + +[RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES] +en-US = "Indexes and References" + +[RID_STR_WORD_ISSUE_OBJECTS_GRAPHICS_AND_FRAMES] +en-US = "Objects, Graphics and Frames" + +[RID_STR_WORD_ISSUE_TABLES] +en-US = "Tables" + +[RID_STR_WORD_NOTE_FORM_FIELD_ATTRIBUTES_LOST] +en-US = "following attribute values lost" + +[RID_STR_WORD_NOTE_FORM_FIELD_TYPE_LOST] +en-US = "Type lost, converted to plain text" + +[RID_STR_WORD_NOTE_NESTED_TABLE_WILL_BE_LOST] +en-US = "The inner table will be lost on roundtrip." + +[RID_STR_WORD_NOTE_TOA_FIELD_LOST_ON_ROUNDTRIP] +en-US = "Field will be lost on roundtrip" + +[RID_STR_WORD_NOTE_TOA_MIGRATE_AS_PLAIN_TEXT] +en-US = "Table will migrate as plain text" + +[RID_STR_WORD_SUBISSUE_APPEARANCE] +en-US = "Appearance" + +[RID_STR_WORD_SUBISSUE_COMMENT] +en-US = "Comment" + +[RID_STR_WORD_SUBISSUE_CUSTOM_BULLET_LIST] +en-US = "Custom bullet list" + +[RID_STR_WORD_SUBISSUE_FORM_FIELD] +en-US = "Form Field" + +[RID_STR_WORD_SUBISSUE_MAILMERGE_DATASOURCE] +en-US = "Mail Merge Datasource" + +[RID_STR_WORD_SUBISSUE_MAILMERGE_FIELD] +en-US = "Mail Merge Field" + +[RID_STR_WORD_SUBISSUE_NESTED_TABLES] +en-US = "Nested Tables" + +[RID_STR_WORD_SUBISSUE_OBJECT_IN_HEADER_FOOTER] +en-US = "Object in Header Footer" + +[RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES] +en-US = "Table of Authorities" + +[RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD] +en-US = "Table of Authorities Field" + +[RID_RESXLT_COST_CHART_Radar_AWF] +en-US = "Radar chart, Radar with symbol" + +[RID_RESXLT_COST_CHART_Radar_Comment] +en-US = "Although <PRODUCTNAME> Net charts appear similar to Excel Radar charts, but they are not equivalent. Radar charts are drawn clockwise whereas Net charts are drawn counter-clockwise." + +[RID_RESXLT_COST_CHART_Scattered_AWF] +en-US = "Scattered chart" + +[RID_RESXLT_COST_CHART_Scattered_Comment] +en-US = "The XY-Chart of <PRODUCTNAME> has the same appearance as the scattered chart in Excel." + +[RID_RESXLT_COST_CHART_Bubble_AWF] +en-US = "Bubble chart" + +[RID_RESXLT_COST_CHART_Bubble_Comment] +en-US = "XY-Chart has similar functionality to a Bubble chart in Excel but a completely different look." + +[RID_RESXLT_COST_CHART_BarOfPie_AWF] +en-US = "Bar of Pie and Pie of Pie charts" + +[RID_RESXLT_COST_CHART_BarOfPie_Comment] +en-US = "<PRODUCTNAME> imports these types of charts as Column charts, which look completely different." + +[RID_RESXLT_COST_CHART_FilledRadar_AWF] +en-US = "Filled Radar chart" + +[RID_RESXLT_COST_CHART_FilledRadar_Comment] +en-US = "This chart type does not have a <PRODUCTNAME> equivalent. Instead, the import filter in <PRODUCTNAME> converts a Filled Radar chart to a Column chart." + +[RID_RESXLT_COST_CHART_Surface_AWF] +en-US = "Surface chart" + +[RID_RESXLT_COST_CHART_Surface_Comment] +en-US = "This chart type does not have a <PRODUCTNAME> equivalent. The imported chart will look completely different than the original chart." + +[RID_RESXLT_COST_PIVOT_MultConsRanges_AWF] +en-US = "Multiple Consolidation Ranges" + +[RID_RESXLT_COST_PIVOT_MultConsRanges_Comment] +en-US = "A Pivot table from Excel can use data from multiple consolidation ranges, Calc does not support this." + +[RID_RESXLT_COST_PIVOT_PivotChart_Comment] +en-US = "A pivot chart is created dynamically in Excel using a pivot table as it's datasource. <PRODUCTNAME> does not support generating charts from dynamically created tables." + +[RID_RESXLT_COST_PIVOT_ManSort_AWF] +en-US = "Manual Sorting" + +[RID_RESXLT_COST_PIVOT_ManSort_Comment] +en-US = "Pivot table users could sort the results manually. Excel preserves the sorting. Calc does not." + +[RID_RESXLT_COST_PIVOT_CalcVal_AWF] +en-US = "Calculated Values" + +[RID_RESXLT_COST_PIVOT_CalcVal_Comment] +en-US = "Excel users can create a formula that writes the results in a new column within the pivot table. Users can use the same type of formula to replace the content of an existing column. Calc does not support this." + +[RID_RESXLT_COST_PIVOT_ExternData_AWF] +en-US = "External Data" + +[RID_RESXLT_COST_PIVOT_ExternData_Comment] +en-US = "A Pivot table from Excel can use data from external sources. Calc does not support this." + +[RID_RESXLS_COST_IAR_Numbering_IssueType] +en-US = "Numbering Order" + +[RID_RESXLS_COST_IAR_Numbering_Comment] +en-US = "<PRODUCTNAME> first calculates numbering located in frames and then the numbering within the text. Word does not separate this." + +[RID_RESXLS_COST_IAR_Numbering_WorkAround] +en-US = "Move the numberings from within the frames into the text body area." + +[RID_RESXLS_COST_WorkbookPartProtection_AWF] +en-US = "Protection for Parts of Workbooks" + +[RID_RESXLS_COST_WorkbookPartProtection_Comment] +en-US = "In Excel users can protect certain parts of workbooks. Workbooks, sheets, charts and ranges can all be individually protected. These do not all migrate to <PRODUCTNAME>." + +[RID_RESXLS_COST_WorkbookPartProtection_WorkAround] +en-US = "Do not protect Excel workbooks" + +[RID_RESXLS_COST_FORMAT_TabStop_IssueType] +en-US = "Tabstop" + +[RID_RESXLS_COST_FORMAT_TabStop_Comment] +en-US = "The minimum tabstop distance in word is shorter than <PRODUCTNAME>. That means that if, in Word, the user tabs a distance shorter than <PRODUCTNAME>'s minimum, that after migration the text spacing will be pushed one tab further." + +[RID_RESXLS_COST_GraphicAnchorEndOfPage_IssueType] +en-US = "Graphic Object Anchor - End of Page" + +[RID_RESXLS_COST_GraphicAnchorEndOfPage_Comment] +en-US = "If a frame or graphic object (not including AutoShapes) is too close to the end of a page it will be pushed to the next page in <PRODUCTNAME>." + +[RID_RESXLS_COST_GraphicAnchorLostGraphic_IssueType] +en-US = "Graphic Object Anchor - Lost Graphic Object" + +[RID_RESXLS_COST_GraphicAnchorLostGraphic_Comment] +en-US = "If a graphic object is anchored off a paragraph (Format Autoshape | Layout | Advanced | Vertical Position = Paragraph) which contains just a blank carriage return, then this can lead to the graphic object being lost in <PRODUCTNAME>." + +[RID_RESXLS_COST_TABLE_Leading_IssueType] +en-US = "Leading" + +[RID_RESXLS_COST_TABLE_Leading_Comment] +en-US = "Leading can cause extra lines in tables. In a table, if the column width is very close to the text, it can lead to a single character being pushed to new line in <PRODUCTNAME>. This is caused by extra leading in <PRODUCTNAME>." + +[RID_RESXLS_COST_TABLE_Misplaced_IssueType] +en-US = "Misplaced" + +[RID_RESXLS_COST_TABLE_Misplaced_Comment] +en-US = "Text wrapping can cause misplaced tables." + +[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_IssueType] +en-US = "Headings Without Numbering" + +[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_Comment] +en-US = "Many users do not use automatic heading or section numbering. They type the numbers in front of the heading manually instead. Word displays the first TAB of the heading in the TOC. <PRODUCTNAME> does not. The TOC will look different." + +[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_WorkAround] +en-US = "Replace the manual numbering with automatic numbering or add spaces between the manual numbers and the text." + +[RID_RESXLS_COST_TABLE_AlignmentOfObjects_IssueType] +en-US = "Horizontal Alignment of Objects" + +[RID_RESXLS_COST_TABLE_AlignmentOfObjects_Comment] +en-US = "Graphics, WordArt or similar objects located in text tables get displayed in the wrong position when the absolute position of the horizontal alignment is defined instead of a relative position." + +[RID_RESXLS_COST_TABLE_AlignmentOfObjects_WorkAround] +en-US = "Adjust the horizontal alignment manually." + +[RID_STR_WORD_ATTRIBUTE_COUNT] +en-US = "Count" + +[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_DATEDIF] +en-US = "<PRODUCTNAME> Calc does not have an equivalent 'DATEDIF' function." + +[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_PHONETIC] +en-US = "<PRODUCTNAME> does not have an equivalent 'PHONETIC' function." + +[RID_STR_PP_SUBISSUE_BACKGROUND_NOTE] +en-US = "Fill style background colors applied to shapes in PowerPoint might be lost after a round trip conversion in <PRODUCTNAME>." + +[RID_STR_PP_SUBISSUE_NUMBERING_NOTE] +en-US = "Only the first paragraph in a numbered sequence can start with "1" in <PRODUCTNAME>. The numbering can only start with "2" or higher in subsequent paragraphs." + +[RID_STR_PP_SUBISSUE_HYPERLINK_NOTE] +en-US = "Unlike PowerPoint, <PRODUCTNAME> does not support multiple text formats in hyperlink text. Instead, <PRODUCTNAME> creates a separate hyperlink for each formatting style in an imported hyperlink." + +[RID_STR_PP_SUBISSUE_HYPERLINK_SPLIT_NOTE] +en-US = "PowerPoint splits the text representation of a hyperlink into several lines when the text box is not wide enough. <PRODUCTNAME> does not split hyperlinks so the hyperlink text might extend out of the text box." + +[RID_STR_PP_SUBISSUE_TEMPLATE_NOTE] +en-US = "<PRODUCTNAME> does not support the PowerPoint 'Title Slide' layout. When you import this layout, most of the subtitle object attributes are converted to hard attributes. PowerPoint 97 users require the multiple master page patch from Microsoft to view 'Title Slide' layouts that are contained in round trip documents." + +[RID_STR_PP_SUBISSUE_TABSTOP_NOTE] +en-US = "Unlike PowerPoint, <PRODUCTNAME> only supports one default tab stop in a document and not one for each text object. If a PowerPoint document uses more than one default tab stop for text objects, <PRODUCTNAME> assigns hard tab stops to these text objects to ensure an identical layout when you import the document. The default tab stops are not reinserted when you save the document in PowerPoint format." + +[RID_STR_PP_SUBISSUE_FONTS] +en-US = "Embedded Fonts" + +[RID_STR_PP_SUBISSUE_FONTS_NOTE] +en-US = "<PRODUCTNAME> doesn't support embedded fonts." + +[RID_STR_COMMON_SUBISSUE_TRANSPARENCY_NOTE] +en-US = "Microsoft Office supports a color attribute that allows you to make a bitmap color transparent without modifying the original bitmap. When you import a document with such a bitmap, <PRODUCTNAME> changes the bitmap to match the transparent color. The transparent color attribute is lost." + +[RID_STR_COMMON_SUBISSUE_LINE_NOTE] +en-US = "<PRODUCTNAME> does not support all of the line styles that you can apply to MS Office AutoShapes. As a result, <PRODUCTNAME> replaces double and triple line styles with a single line." + +[RID_STR_COMMON_SUBISSUE_GRADIENT_PRESET_NOTE] +en-US = "<PRODUCTNAME> does not support preset gradient styles." + +[RID_STR_COMMON_SUBISSUE_GRADIENT_CORNER_NOTE] +en-US = "<PRODUCTNAME> does not support the 'from center' gradient style." + +[RID_STR_COMMON_SUBISSUE_GRADIENT_CENTER_NOTE] +en-US = "<PRODUCTNAME> does not support the 'from corner' gradient style." + +[RID_RESXLS_COST_DB_Query] +en-US = "Database Query" + +[RID_RESXLS_COST_DB_Query_Comment] +en-US = "Issue: <PRODUCTNAME> can not import the database query. " + +[RID_RESXLS_COST_LineStyle] +en-US = "Line Style" + +[RID_RESXLS_COST_LineStyle_Comment] +en-US = "Issue: Line style is not supported." + +[RID_RESXLS_COST_Numbering] +en-US = "Numbering" + +[RID_RESXLS_COST_Numbering_Comment] +en-US = "Issue: Text numbering starts with wrong number." + +[RID_RESXLS_COST_Template] +en-US = "Layout 'Title Slide'" + +[RID_RESXLS_COST_Template_Comment] +en-US = "Issue: 'Title Slide' layout is not supported." + +[RID_RESXLS_COST_DATEDIF_Note] +en-US = "Use a date or time function that <PRODUCTNAME> Calc supports." + +[RID_RESXLS_COST_Tabstop] +en-US = "Default Tabulator" + +[RID_RESXLS_COST_Tabstop_Comment] +en-US = "Issue: Different default tabulators are not supported for text objects." + +[RID_RESXLS_COST_Transparent] +en-US = "Transparent Color" + +[RID_RESXLS_COST_Transparent_Comment] +en-US = "Issue: <PRODUCTNAME> does not support the transparent color attribute in bitmaps." + +[RID_RESXLS_COST_GradientStyle] +en-US = "Gradient Style" + +[RID_RESXLS_COST_GradientStyle_Comment] +en-US = "Issue: Unsupported gradient styles used." + +[RID_RESXLS_COST_GradientStyle_Note] +en-US = "Replacing gradient styles by styles that are supported." + +[RID_RESXLS_COST_Hyperlink] +en-US = "Textrange Hyperlinks" + +[RID_RESXLS_COST_Hyperlink_Comment] +en-US = "Issue: Multiple text formatting is not supported in Hyperlinks." + +[RID_RESXLS_COST_HyperlinkSplit] +en-US = "Split Hyperlinks" + +[RID_RESXLS_COST_HyperlinkSplit_Comment] +en-US = "Issue: Hyperlink will not be split onto several lines." + +[RID_RESXLS_COST_Background] +en-US = "Fill Type Background" + +[RID_RESXLS_COST_Background_Comment] +en-US = "Issue: Fillstyle background is not supported." + diff --git a/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas b/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas index 33da66dbe7d4..701fa285a29d 100644 --- a/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas +++ b/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas @@ -1,3639 +1,3639 @@ -Attribute VB_Name = "AnalysisDriver"
-'*************************************************************************
-'
-' Licensed to the Apache Software Foundation (ASF) under one
-' or more contributor license agreements. See the NOTICE file
-' distributed with this work for additional information
-' regarding copyright ownership. The ASF licenses this file
-' to you under the Apache License, Version 2.0 (the
-' "License"); you may not use this file except in compliance
-' with the License. You may obtain a copy of the License at
-'
-' http://www.apache.org/licenses/LICENSE-2.0
-'
-' Unless required by applicable law or agreed to in writing,
-' software distributed under the License is distributed on an
-' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-' KIND, either express or implied. See the License for the
-' specific language governing permissions and limitations
-' under the License.
-'
-'*************************************************************************
-Option Explicit
-
-' Declare Public variables.
-Public Type ShortItemId
- cb As Long
- abID As Byte
-End Type
-
-Public Type ITEMIDLIST
- mkid As ShortItemId
-End Type
-
-Public Declare Function FindWindow Lib "user32" Alias _
- "FindWindowA" (ByVal lpClassName As String, _
- ByVal lpWindowName As Long) As Long
-
-Private Declare Function GetTickCount Lib "kernel32" () As Long
-
-'This function saves the passed value to the file,
-'under the section and key names specified.
-'If the ini file, lpFileName, does not exist, it is created.
-'If the section, lpSectionName, does not exist, it is created.
-'If the key name, lpKeyName, does not exist, it is created.
-'If the key name exists, it's value, lpString, is replaced.
-Private Declare Function WritePrivateProfileString Lib "kernel32" _
- Alias "WritePrivateProfileStringA" _
- (ByVal lpSectionName As String, _
- ByVal lpKeyName As Any, _
- ByVal lpString As Any, _
- ByVal lpFileName As String) As Long
-
-Private Declare Function GetPrivateProfileString Lib "kernel32" _
- Alias "GetPrivateProfileStringA" _
- (ByVal lpSectionName As String, _
- ByVal lpKeyName As Any, _
- ByVal lpDefault As String, _
- ByVal lpReturnedString As String, _
- ByVal nSize As Long, _
- ByVal lpFileName As String) As Long
-
-Private Declare Function UrlEscape Lib "shlwapi" _
- Alias "UrlEscapeA" _
- (ByVal pszURL As String, _
- ByVal pszEscaped As String, _
- pcchEscaped As Long, _
- ByVal dwFlags As Long) As Long
-
-Public Declare Function SHGetPathFromIDList Lib "shell32.dll" _
- (ByVal pidl As Long, ByVal pszPath As String) As Long
-
-Public Declare Function SHGetSpecialFolderLocation Lib _
- "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder _
- As Long, pidl As ITEMIDLIST) As Long
-
-Public Const LOCALE_ILANGUAGE As Long = &H1 'language id
-Public Const LOCALE_SLANGUAGE As Long = &H2 'localized name of lang
-Public Const LOCALE_SENGLANGUAGE As Long = &H1001 'English name of lang
-Public Const LOCALE_SABBREVLANGNAME As Long = &H3 'abbreviated lang name
-Public Const LOCALE_SNATIVELANGNAME As Long = &H4 'native name of lang
-Public Const LOCALE_ICOUNTRY As Long = &H5 'country code
-Public Const LOCALE_SCOUNTRY As Long = &H6 'localized name of country
-Public Const LOCALE_SENGCOUNTRY As Long = &H1002 'English name of country
-Public Const LOCALE_SABBREVCTRYNAME As Long = &H7 'abbreviated country name
-Public Const LOCALE_SNATIVECTRYNAME As Long = &H8 'native name of country
-Public Const LOCALE_SINTLSYMBOL As Long = &H15 'intl monetary symbol
-Public Const LOCALE_IDEFAULTLANGUAGE As Long = &H9 'def language id
-Public Const LOCALE_IDEFAULTCOUNTRY As Long = &HA 'def country code
-Public Const LOCALE_IDEFAULTCODEPAGE As Long = &HB 'def oem code page
-Public Const LOCALE_IDEFAULTANSICODEPAGE As Long = &H1004 'def ansi code page
-Public Const LOCALE_IDEFAULTMACCODEPAGE As Long = &H1011 'def mac code page
-
-Public Const LOCALE_IMEASURE As Long = &HD '0 = metric, 1 = US
-Public Const LOCALE_SSHORTDATE As Long = &H1F 'short date format string
-
-'#if(WINVER >= &H0400)
-Public Const LOCALE_SISO639LANGNAME As Long = &H59 'ISO abbreviated language name
-Public Const LOCALE_SISO3166CTRYNAME As Long = &H5A 'ISO abbreviated country name
-'#endif /* WINVER >= as long = &H0400 */
-
-'#if(WINVER >= &H0500)
-Public Const LOCALE_SNATIVECURRNAME As Long = &H1008 'native name of currency
-Public Const LOCALE_IDEFAULTEBCDICCODEPAGE As Long = &H1012 'default ebcdic code page
-Public Const LOCALE_SSORTNAME As Long = &H1013 'sort name
-'#endif /* WINVER >= &H0500 */
-
-Public Declare Function GetSystemDefaultLangID Lib "kernel32" () As Long
-Public Declare Function GetUserDefaultLangID Lib "kernel32" () As Long
-
-Public Declare Function GetLocaleInfo Lib "kernel32" _
- Alias "GetLocaleInfoA" _
- (ByVal Locale As Long, _
- ByVal LCType As Long, _
- ByVal lpLCData As String, _
- ByVal cchData As Long) As Long
-
-
-Public Const CWIZARD = "analysis"
-
-Const CROWOFFSET = 2
-Const CDOCPROP_PAW_ROWOFFSET = 3
-Private mDocPropRowOffset As Long
-
-Const CNUMBERDOC_ALL = "All"
-Const CTOTAL_DOCS_ANALYZED = "TotalDocsAnalysed"
-Const CNUMDAYS_IN_MONTH = 30
-Const CMAX_LIMIT = 10000
-
-Const CISSUE_DETDOCNAME = 1
-Const CISSUE_DETDOCAPPLICATION = CISSUE_DETDOCNAME + 1
-Const CISSUE_DETTYPE = CISSUE_DETDOCAPPLICATION + 1
-Const CISSUE_DETSUBTYPE = CISSUE_DETTYPE + 1
-Const CISSUE_DETLOCATION = CISSUE_DETSUBTYPE + 1
-Const CISSUE_DETSUBLOCATION = CISSUE_DETLOCATION + 1
-Const CISSUE_DETLINE = CISSUE_DETSUBLOCATION + 1
-Const CISSUE_DETCOLUMN = CISSUE_DETLINE + 1
-Const CISSUE_DETATTRIBUTES = CISSUE_DETCOLUMN + 1
-Const CISSUE_DETNAMEANDPATH = CISSUE_DETATTRIBUTES + 1
-
-Const CREF_DETDOCNAME = 1
-Const CREF_DETDOCAPPLICATION = CREF_DETDOCNAME + 1
-Const CREF_DETREFERENCE = CREF_DETDOCAPPLICATION + 1
-Const CREF_DETDESCRIPTION = CREF_DETREFERENCE + 1
-Const CREF_DETLOCATION = CREF_DETDESCRIPTION + 1
-Const CREF_DETATTRIBUTES = CREF_DETLOCATION + 1
-Const CREF_DETNAMEANDPATH = CREF_DETATTRIBUTES + 1
-
-Const CINPUT_DIR = "indir"
-Const COUTPUT_DIR = "outdir"
-Const CRESULTS_FILE = "resultsfile"
-Const CLOG_FILE = "logfile"
-Const CRESULTS_TEMPLATE = "resultstemplate"
-Const CRESULTS_EXIST = "resultsexist"
-Const COVERWRITE_FILE = "overwritefile"
-Const CNEW_RESULTS_FILE = "newresultsfile"
-Const CINCLUDE_SUBDIRS = "includesubdirs"
-Const CDEBUG_LEVEL = "debuglevel"
-Const COUTPUT_TYPE = "outputtype"
-Const COUTPUT_TYPE_XLS = "xls"
-Const COUTPUT_TYPE_XML = "xml"
-Const COUTPUT_TYPE_BOTH = "both"
-Const COVERVIEW_TITLE_LABEL = "OV_Document_Analysis_Overview_lbl"
-Const CDEFAULT_PASSWORD = "defaultpassword"
-Const CVERSION = "version"
-Const CTITLE = "title"
-Const CDOPREPARE = "prepare"
-Const CISSUES_LIMIT = "issuesmonthlimit"
-Const CSINGLE_FILE = "singlefile"
-Const CFILE_LIST = "filelist"
-Const CSTAT_FILE = "statfilename"
-Const C_ABORT_ANALYSIS = "abortanalysis"
-Const C_DOCS_LESS_3_MONTH = "DocumentsYoungerThan3Month"
-Const C_DOCS_LESS_6_MONTH = "DocumentsYoungerThan6Month"
-Const C_DOCS_LESS_12_MONTH = "DocumentsYoungerThan12Month"
-Const C_DOCS_MORE_12_MONTH = "DocumentsOlderThan12Month"
-
-Private Const C_ANALYSIS As String = "Analysis"
-Private Const C_LAST_CHECKPOINT As String = "LastCheckpoint"
-Private Const C_NEXT_FILE As String = "NextFile"
-Private Const C_MAX_CHECK_INI As String = "FilesBeforeSave"
-Private Const C_MAX_WAIT_BEFORE_WRITE_INI As String = "SecondsBeforeSave"
-Private Const C_MAX_RANGE_PROCESS_TIME_INI As String = "ExcelMaxRangeProcessTime"
-Private Const C_ERROR_HANDLING_DOC As String = "_ERROR_HANDLING_DOC_"
-Private Const C_MAX_CHECK As Long = 100
-Private Const C_MAX_WAIT_BEFORE_WRITE As Long = 300 ' sec
-Private Const C_MAX_RANGE_PROCESS_TIME As Integer = 30 'sec
-
-Private Const C_STAT_STARTING As Integer = 1
-Private Const C_STAT_DONE As Integer = 2
-Private Const C_STAT_FINISHED As Integer = 3
-
-Private Type DocumentCount
- numDocsAnalyzed As Long
- numDocsAnalyzedWithIssues As Long
- numMinorIssues As Long
- numComplexIssues As Long
- numMacroIssues As Long
- numPreparableIssues As Long
- totalMacroCosts As Long
- totalDocIssuesCosts As Long
- totalPreparableIssuesCosts As Long
-End Type
-
-Private Type DocModificationDates
- lessThanThreemonths As Long
- threeToSixmonths As Long
- sixToTwelvemonths As Long
- greaterThanOneYear As Long
-End Type
-
-Private Type DocMacroClassifications
- None As Long
- Simple As Long
- Medium As Long
- complex As Long
-End Type
-
-Private Type DocIssueClassifications
- None As Long
- Minor As Long
- complex As Long
-End Type
-
-Const CCOST_COL_OFFSET = -1
-
-Private mLogFilePath As String
-Private mDocIndex As String
-Private mDebugLevel As Long
-Private mIniFilePath As String
-Private mUserFormTypesDict As Scripting.Dictionary
-Private mIssuesDict As Scripting.Dictionary
-Private mMacroDict As Scripting.Dictionary
-Private mPreparedIssuesDict As Scripting.Dictionary
-Private mIssuesClassificationDict As Scripting.Dictionary
-Private mIssuesCostDict As Scripting.Dictionary
-Private mIssuesLimit As Date
-
-Public Const CWORD_DRIVER_FILE = "_OOoDocAnalysisWordDriver.doc"
-Public Const CEXCEL_DRIVER_FILE = "_OOoDocAnalysisExcelDriver.xls"
-Public Const CPP_DRIVER_FILE = "_OOoDocAnalysisPPTDriver.ppt"
-Public Const CWORD_DRIVER_FILE_TEMP = "~$OoDocAnalysisWordDriver.doc"
-Public Const CEXCEL_DRIVER_FILE_TEMP = "~$OoDocAnalysisExcelDriver.xls"
-Public Const CPP_DRIVER_FILE_TEMP = "~$OoDocAnalysisPPTDriver.ppt"
-
-'Doc Properties Offsets - used in WriteDocProperties and GetPreparableFilesFromDocProps
-Const CDOCINFONAME = 1
-Const CDOCINFOAPPLICATION = CDOCINFONAME + 1
-
-Const CDOCINFOISSUE_CLASS = CDOCINFOAPPLICATION + 1
-Const CDOCINFOCOMPLEXISSUES = CDOCINFOISSUE_CLASS + 1
-Const CDOCINFOMINORISSUES = CDOCINFOCOMPLEXISSUES + 1
-Const CDOCINFOPREPAREDISSUES = CDOCINFOMINORISSUES + 1
-
-Const CDOCINFOMACRO_CLASS = CDOCINFOPREPAREDISSUES + 1
-Const CDOCINFOMACRO_USERFORMS = CDOCINFOMACRO_CLASS + 1
-Const CDOCINFOMACRO_LINESOFCODE = CDOCINFOMACRO_USERFORMS + 1
-
-Const CDOCINFODOCISSUECOSTS = CDOCINFOMACRO_LINESOFCODE + 1
-Const CDOCINFOPREPARABLEISSUECOSTS = CDOCINFODOCISSUECOSTS + 1
-Const CDOCINFOMACROISSUECOSTS = CDOCINFOPREPARABLEISSUECOSTS + 1
-
-Const CDOCINFONUMBERPAGES = CDOCINFOMACROISSUECOSTS + 1
-Const CDOCINFOCREATED = CDOCINFONUMBERPAGES + 1
-Const CDOCINFOLASTMODIFIED = CDOCINFOCREATED + 1
-Const CDOCINFOLASTACCESSED = CDOCINFOLASTMODIFIED + 1
-Const CDOCINFOLASTPRINTED = CDOCINFOLASTACCESSED + 1
-Const CDOCINFOLASTSAVEDBY = CDOCINFOLASTPRINTED + 1
-Const CDOCINFOREVISION = CDOCINFOLASTSAVEDBY + 1
-Const CDOCINFOTEMPLATE = CDOCINFOREVISION + 1
-Const CDOCINFONAMEANDPATH = CDOCINFOTEMPLATE + 1
-
-'Overview shapes
-Const COV_DOC_MOD_DATES_CHART = "Chart 21"
-Const COV_DOC_MACRO_CHART = "Chart 22"
-Const COV_DOC_ANALYSIS_CHART = "Chart 23"
-
-Const COV_DOC_MOD_DATES_COMMENT_TXB = "Text Box 25"
-Const COV_DOC_MOD_DATES_LEGEND_TXB = "Text Box 12"
-
-Const COV_DOC_MACRO_COMMENT_TXB = "Text Box 26"
-Const COV_DOC_MACRO_LEGEND_TXB = "Text Box 16"
-
-Const COV_DOC_ANALYSIS_COMMENT_TXB = "Text Box 27"
-Const COV_DOC_ANALYSIS_LEGEND_DAW_TXB = "Text Box 28"
-Const COV_DOC_ANALYSIS_LEGEND_PAW_TXB = "Text Box 18"
-
-Const COV_HIGH_LEVEL_ANALYSIS_RANGE = "OV_High_Level_Analysis_Range"
-Const COV_COST_RANGE = "OV_Cost_Range"
-
-'Sheet labels
-Const COV_HIGH_LEVEL_ANALYSIS_LBL = "OV_High_level_analysis_lbl"
-Const COV_DP_PREPISSUES_COL_LBL = "DocProperties_PreparedIssues_Column"
-Const COV_COSTS_PREPISSUE_COUNT_COL_LBL = "Costs_PreparedIssueCount_Column"
-Const CDP_DAW_HIDDEN_COLS_LBL = "DP_DAW_HIDDEN_COLS_RANGE"
-Const CDP_DAW_HIDDEN_COLS2_LBL = "DP_DAW_HIDDEN_COLS_RANGE2"
-Const CDP_DAW_HIDDEN_ROW_LBL = "DP_DAW_HIDDEN_ROW_RANGE"
-
-Const COV_DAW_SETUP_SHEETS_RUN_LBL = "OV_DAW_SETUP_SHEETS_RUN"
-Const COV_PAW_SETUP_SHEETS_RUN_LBL = "OV_PAW_SETUP_SHEETS_RUN"
-Const COV_Internal_Attributes_Cols_LBL = "OV_Internal_Attributes_Cols"
-
-Const CR_STR = "<CR>"
-Const CR_TOPIC = "<TOPIC>"
-Const CR_PRODUCT = "<PRODUCT>"
-
-Const CLEGEND_FONT_SIZE = 8
-Const CCOMMENTS_FONT_SIZE = 10
-
-Dim mTstart As Single
-Dim mTend As Single
-Public gExcelMaxRangeProcessTime As Integer
-
-Sub AnalyseDirectory()
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AnalyseDirectory"
-
- Dim iniFilePath As String
- Dim startDir As String
- Dim fileList As String
- Dim storeToDir As String
- Dim resultsFile As String
- Dim resultsTemplate As String
- Dim statFileName As String
- Dim bOverwriteResultsFile As Boolean
- Dim bNewResultsFile As Boolean
- Dim outputType As String
- Dim singleFile As String
- Dim nTimeNeeded As Long
- Dim nIncrementFileCounter As Long
- Dim nMaxWaitBeforeWrite As Long
- Dim fso As Scripting.FileSystemObject
- Set fso = New Scripting.FileSystemObject
-
- SetAppToMinimized
-
- If InDocPreparation Then
- mDocPropRowOffset = CDOCPROP_PAW_ROWOFFSET
- Else
- mDocPropRowOffset = CROWOFFSET
- End If
-
- 'Get Wizard input variables
- SetupWizardVariables fileList, storeToDir, resultsFile, _
- mLogFilePath, resultsTemplate, bOverwriteResultsFile, bNewResultsFile, _
- statFileName, mDebugLevel, outputType, singleFile
-
- startDir = ProfileGetItem("Analysis", CINPUT_DIR, "", mIniFilePath)
-
- nIncrementFileCounter = CLng(ProfileGetItem("Analysis", _
- C_MAX_CHECK_INI, C_MAX_CHECK, mIniFilePath))
- nMaxWaitBeforeWrite = CLng(ProfileGetItem("Analysis", _
- C_MAX_WAIT_BEFORE_WRITE_INI, C_MAX_WAIT_BEFORE_WRITE, mIniFilePath))
- gExcelMaxRangeProcessTime = CInt(ProfileGetItem("Analysis", _
- C_MAX_RANGE_PROCESS_TIME_INI, C_MAX_RANGE_PROCESS_TIME, mIniFilePath))
- LocalizeResources
-
- 'Setup File List
- 'For Prepare - get list from results spreadsheet with docs analysis found as preparable
- 'If no results spreadsheet then just try to prepare all the docs - run over full analysis list
- Dim myFiles As Collection
- Set myFiles = New Collection
- Dim sAnalysisOrPrep As String
- If InDocPreparation And CheckDoPrepare Then
- sAnalysisOrPrep = "Prepared"
- If fso.FileExists(storeToDir & "\" & resultsFile) Then
- If Not GetPrepareFilesToAnalyze(storeToDir & "\" & resultsFile, myFiles, fso) Then
- SetPrepareToNone
- WriteDebug currentFunctionName & ": No files to analyse!"
- GoTo FinalExit 'No files to prepare - exit
- End If
- Else
- If Not GetFilesToAnalyze(fileList, singleFile, myFiles) Then
- SetPrepareToNone
- WriteDebug currentFunctionName & ": No files to analyse! Filelist (" & fileList & ") empty?"
- GoTo FinalExit 'No files to prepare - exit
- End If
- End If
- Else
- sAnalysisOrPrep = "Analyzed"
- If Not GetFilesToAnalyze(fileList, singleFile, myFiles) Then
- WriteDebug currentFunctionName & ": No files to analyse! Filelist (" & fileList & ") empty?"
- GoTo FinalExit
- End If
- End If
-
- Dim index As Long
- Dim numFiles As Long
- Dim nextSave As Long
- Dim startIndex As Long
- Dim bResultsWaiting As Boolean
- Dim AnalysedDocs As Collection
- Dim startDate As Date
- Dim currentDate As Date
-
- Set AnalysedDocs = New Collection
- numFiles = myFiles.count
- bResultsWaiting = False
-
- If (singleFile <> "") Then
- ' No recovery handling for single file analysis and the value in the
- ' ini file should be used for bNewResultsFile
- startIndex = 1
- Else
- bNewResultsFile = bNewResultsFile And GetIndexValues(startIndex, nextSave, myFiles)
- End If
-
- startDate = Now()
-
- ' Analyse all files
- For index = startIndex To numFiles
- Set mIssuesClassificationDict = New Scripting.Dictionary
- mIssuesClassificationDict.CompareMode = TextCompare
- Set mIssuesCostDict = New Scripting.Dictionary
- 'mIssuesCostDict.CompareMode = TextCompare
-
- Set mUserFormTypesDict = New Scripting.Dictionary
- Set mIssuesDict = New Scripting.Dictionary
- Set mMacroDict = New Scripting.Dictionary
- Set mPreparedIssuesDict = New Scripting.Dictionary
-
- 'Write to Application log
- Dim myAnalyser As MigrationAnalyser
- Set myAnalyser = New MigrationAnalyser
-
- If (CheckForAbort) Then GoTo FinalExit
-
- 'Log Analysis
- WriteToStatFile statFileName, C_STAT_STARTING, myFiles.item(index), fso
- WriteToLog "Analyzing", myFiles.item(index)
- WriteToIni C_NEXT_FILE, myFiles.item(index)
- mDocIndex = index
-
- 'Do Analysis
- myAnalyser.DoAnalyse myFiles.item(index), mUserFormTypesDict, startDir, storeToDir, fso
-
- AnalysedDocs.Add myAnalyser.Results
- bResultsWaiting = True
-
- WriteToLog sAnalysisOrPrep, index & "of" & numFiles & _
- " " & getAppSpecificApplicationName & " Documents"
- WriteToLog "Analyzing", "Done"
- WriteToLog sAnalysisOrPrep & "Doc" & index, myFiles.item(index)
- Set myAnalyser = Nothing
-
- If (CheckForAbort) Then GoTo FinalExit
-
- 'No need to output results spreadsheet, just doing prepare
- If CheckDoPrepare Then GoTo CONTINUE_FOR
-
- nTimeNeeded = val(DateDiff("s", startDate, Now()))
- If ((nTimeNeeded > nMaxWaitBeforeWrite) Or _
- (index >= nextSave)) Then
- If WriteResults(storeToDir, resultsFile, resultsTemplate, _
- bOverwriteResultsFile, bNewResultsFile, _
- outputType, AnalysedDocs, fso) Then
- nextSave = index + C_MAX_CHECK
- bResultsWaiting = False
- Set AnalysedDocs = New Collection
- WriteToIni C_LAST_CHECKPOINT, myFiles.item(index)
- startDate = Now()
- Else
- 'write error
- End If
- End If
- WriteToStatFile statFileName, C_STAT_DONE, myFiles.item(index), fso
-CONTINUE_FOR:
- Next index
-
- If (bResultsWaiting) Then
- If WriteResults(storeToDir, resultsFile, resultsTemplate, _
- bOverwriteResultsFile, bNewResultsFile, _
- outputType, AnalysedDocs, fso) Then
- WriteToIni C_LAST_CHECKPOINT, myFiles.item(index - 1)
- Else
- 'write error
- End If
- End If
- WriteToStatFile statFileName, C_STAT_FINISHED, "", fso
-
-FinalExit:
-
- Set fso = Nothing
- Set myFiles = Nothing
- Set mIssuesClassificationDict = Nothing
- Set mIssuesCostDict = Nothing
- Set mUserFormTypesDict = Nothing
- Set mIssuesDict = Nothing
- Set mMacroDict = Nothing
- Set mPreparedIssuesDict = Nothing
-
- Set AnalysedDocs = Nothing
-
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Function WriteResults(storeToDir As String, resultsFile As String, resultsTemplate As String, _
- bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, _
- outputType As String, AnalysedDocs As Collection, _
- fso As FileSystemObject) As Boolean
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteResults"
-
- If InDocPreparation Then
- If outputType = COUTPUT_TYPE_XML Or outputType = COUTPUT_TYPE_BOTH Then
- WriteXMLOutput storeToDir, resultsFile, _
- bOverwriteResultsFile, bNewResultsFile, AnalysedDocs, fso
- End If
- End If
-
- If outputType = COUTPUT_TYPE_XLS Or outputType = COUTPUT_TYPE_BOTH Then
- WriteXLSOutput storeToDir, resultsFile, fso.GetAbsolutePathName(resultsTemplate), _
- bOverwriteResultsFile, bNewResultsFile, AnalysedDocs, fso
- End If
-
- WriteResults = True
- bNewResultsFile = False
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteResults = False
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetFilesToAnalyze_old(startDir As String, bIncludeSubdirs As Boolean, _
- myFiles As Collection) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetFilesToAnalyze"
- Dim fso As New FileSystemObject
- Dim theResultsFile As String
- theResultsFile = ProfileGetItem("Analysis", CINPUT_DIR, "c:\", mIniFilePath) & "\" & ProfileGetItem("Analysis", CRESULTS_FILE, "", mIniFilePath)
-
- GetFilesToAnalyze = False
-
- Dim searchTypes As Collection
- Set searchTypes = New Collection
- SetupSearchTypes searchTypes
- If searchTypes.count = 0 Then
- GoTo FinalExit
- End If
-
- Dim myDocFiles As CollectedFiles
- Set myDocFiles = New CollectedFiles
- With myDocFiles
- .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CWORD_DRIVER_FILE)
- .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CEXCEL_DRIVER_FILE)
- .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CPP_DRIVER_FILE)
- .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CWORD_DRIVER_FILE_TEMP)
- .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CEXCEL_DRIVER_FILE_TEMP)
- .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CPP_DRIVER_FILE_TEMP)
- .BannedList.Add theResultsFile
- End With
- myDocFiles.Search rootDir:=startDir, FileSpecs:=searchTypes, _
- IncludeSubdirs:=bIncludeSubdirs
-
- If getAppSpecificApplicationName = CAPPNAME_WORD Then
- Set myFiles = myDocFiles.WordFiles
- ElseIf getAppSpecificApplicationName = CAPPNAME_EXCEL Then
- Set myFiles = myDocFiles.ExcelFiles
- ElseIf getAppSpecificApplicationName = CAPPNAME_POWERPOINT Then
- Set myFiles = myDocFiles.PowerPointFiles
- Else
- WriteDebug currentFunctionName & " : invalid application " & getAppSpecificApplicationName
- GoTo FinalExit
- End If
-
- GetFilesToAnalyze = True
-
-FinalExit:
- Set searchTypes = Nothing
- Set myDocFiles = Nothing
-
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetFilesToAnalyze(fileList As String, startFile As String, _
- myFiles As Collection) As Boolean
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetFilesToAnalyze"
-
- Dim fso As New FileSystemObject
- Dim fileContent As TextStream
- Dim fileName As String
-
- GetFilesToAnalyze = False
-
- If (startFile = "") Then
- If (fso.FileExists(fileList)) Then
- Set fileContent = fso.OpenTextFile(fileList, ForReading, False, TristateTrue)
- While (Not fileContent.AtEndOfStream)
- fileName = fileContent.ReadLine
- fileName = Trim(fileName)
- If (fileName <> "") Then
- myFiles.Add (fileName)
- End If
- Wend
- fileContent.Close
- End If
- Else
- myFiles.Add (startFile)
- End If
-
- If (myFiles.count <> 0) Then GetFilesToAnalyze = True
-
-FinalExit:
- Set fileContent = Nothing
- Set fso = Nothing
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetPrepareFilesToAnalyze(resultsFilePath As String, myFiles As Collection, _
- fso As FileSystemObject) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetPrepareFilesToAnalyze"
-
- GetPrepareFilesToAnalyze = False
-
- If Not fso.FileExists(resultsFilePath) Then
- WriteDebug currentFunctionName & ": results file does not exist : " & resultsFilePath
- GoTo FinalExit
- End If
-
- 'Open results spreadsheet
- Dim xl As Excel.Application
- If getAppSpecificApplicationName = CAPPNAME_EXCEL Then
- Set xl = Application
- xl.Visible = True
- Else
- Set xl = GetExcelInstance
- xl.Visible = False
- End If
- Dim logWb As WorkBook
- Set logWb = xl.Workbooks.Open(resultsFilePath)
-
- Dim wsDocProp As Worksheet
- Set wsDocProp = logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP)
-
- Dim startRow As Long
- Dim endRow As Long
- startRow = mDocPropRowOffset + 1
- endRow = GetWorkbookNameValueAsLong(logWb, CTOTAL_DOCS_ANALYZED) + mDocPropRowOffset
-
- GetPreparableFilesFromDocProps wsDocProp, startRow, endRow, fso, myFiles
-
- GetPrepareFilesToAnalyze = (myFiles.count > 0)
-
-FinalExit:
- Set wsDocProp = Nothing
- If Not logWb Is Nothing Then logWb.Close
- Set logWb = Nothing
-
- If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then
- If Not xl Is Nothing Then
- If xl.Workbooks.count = 0 Then
- xl.Quit
- End If
- End If
- End If
- Set xl = Nothing
-
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetPreparableFilesFromDocProps(wsDocProp As Worksheet, startRow As Long, _
- endRow As Long, fso As FileSystemObject, myFiles As Collection) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetPreparableFilesFromDocProps"
- GetPreparableFilesFromDocProps = False
-
- Dim index As Long
- Dim fileName As String
- Dim fileExt As String
- Dim docExt As String
- Dim templateExt As String
-
- docExt = getAppSpecificDocExt
- templateExt = getAppSpecificTemplateExt
-
- For index = startRow To endRow
- If GetWorksheetCellValueAsLong(wsDocProp, index, CDOCINFOPREPAREDISSUES) > 0 Then
- fileName = GetWorksheetCellValueAsString(wsDocProp, index, CDOCINFONAME)
- fileExt = "." & fso.GetExtensionName(fileName)
- 'Don't have to worry about search types - just looking at existing results
- 'so just check both legal extensions for this application
- If fileExt = docExt Or fileExt = templateExt Then
- myFiles.Add GetWorksheetCellValueAsString(wsDocProp, index, CDOCINFONAMEANDPATH)
- End If
- End If
- Next index
-
- GetPreparableFilesFromDocProps = myFiles.count > 0
-FinalExit:
- Exit Function
-
-HandleErrors:
- GetPreparableFilesFromDocProps = False
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Sub OpenXLSResultFile(resultsFile As String, _
- resultsTemplate As String, _
- bNewResultsFile As Boolean, _
- excelApp As Excel.Application, _
- resultSheet As Excel.WorkBook)
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OpenXLSResultFile"
-
- If getAppSpecificApplicationName = CAPPNAME_EXCEL Then
- Set excelApp = Application
- excelApp.Visible = True
- Else
- Set excelApp = GetExcelInstance
- excelApp.Visible = False
- End If
-
- If bNewResultsFile Then
- Set resultSheet = excelApp.Workbooks.Add(Template:=resultsTemplate)
- Localize_WorkBook resultSheet
- Else
- Set resultSheet = excelApp.Workbooks.Open(resultsFile)
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- excelApp.DisplayAlerts = False
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub CloseXLSResultFile(excelApp As Excel.Application, _
- resultSheet As Excel.WorkBook)
-
- On Error Resume Next
-
- If Not resultSheet Is Nothing Then resultSheet.Close
- Set resultSheet = Nothing
-
- If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then
- If Not excelApp Is Nothing Then
- excelApp.Visible = True
- If excelApp.Workbooks.count = 0 Then
- excelApp.Quit
- End If
- End If
- End If
- Set excelApp = Nothing
-
- Exit Sub
-End Sub
-
-Sub WriteXLSOutput(storeToDir As String, resultsFile As String, resultsTemplate As String, _
- bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, AnalysedDocs As Collection, _
- fso As Scripting.FileSystemObject)
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXLSOutput"
-
- Dim offsetDocPropRow As Long
- Dim offsetDocIssuesRow As Long
- Dim offsetDocIssueDetailsRow As Long
- Dim offsetDocRefDetailsRow As Long
-
- Const COVERVIEW_SHEET_IDX = 1
- Const CDOCLIST_SHEET_IDX = 2
- Const CISSUES_ANALYSED_SHEET = 3
- Const CISSUE_DETAILS_SHEET = 4
- Const CWORD_ISSUES_SHEET = 5
- Const CEXCEL_ISSUES_SHEET = 6
- Const CPOWERPOINT_ISSUES_SHEET = 7
- Const CREFERENCE_ISSUES_SHEET = 8
-
- 'Begin writing stats to excel
- Dim xl As Excel.Application
- If getAppSpecificApplicationName = CAPPNAME_EXCEL Then
- Set xl = Application
- xl.Visible = True
- Else
- Set xl = GetExcelInstance
- xl.Visible = False
- End If
-
- Dim logWb As WorkBook
-
- If bNewResultsFile Then
- Set logWb = xl.Workbooks.Add(Template:=resultsTemplate)
- Localize_WorkBook logWb
- Else
- Set logWb = xl.Workbooks.Open(storeToDir & "\" & resultsFile)
- End If
-
- SetupAnalysisResultsVariables logWb, offsetDocPropRow, _
- offsetDocIssuesRow, offsetDocIssueDetailsRow, offsetDocRefDetailsRow
-
- ' Iterate through results and write info
- Dim aAnalysis As DocumentAnalysis
- Dim row As Long
- Dim docCounts As DocumentCount
- Dim templateCounts As DocumentCount
-
- Dim issuesRow As Long
- Dim issueDetailsRow As Long
- Dim refDetailsRow As Long
-
- Dim wsOverview As Worksheet
- Dim wsCosts As Worksheet
- Dim wsPgStats As Worksheet
- Dim wsIssues As Worksheet
- Dim wsIssueDetails As Worksheet
- Dim wsRefDetails As Worksheet
-
- Set wsOverview = logWb.Sheets(COVERVIEW_SHEET_IDX)
- Set wsPgStats = logWb.Sheets(CDOCLIST_SHEET_IDX)
-
- 'Some localized names might be longer than 31 chars, excel doesn't
- 'allow such names!
- On Error Resume Next
- wsOverview.name = RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW
- wsPgStats.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP
- On Error GoTo HandleErrors
-
- If InDocPreparation Then
- Set wsCosts = logWb.Sheets(CISSUES_ANALYSED_SHEET)
- Dim appName As String
- appName = getAppSpecificApplicationName
- Select Case appName
- Case "Word"
- Set wsIssues = logWb.Worksheets(CWORD_ISSUES_SHEET)
- Case "Excel"
- Set wsIssues = logWb.Worksheets(CEXCEL_ISSUES_SHEET)
- Case "PowerPoint"
- Set wsIssues = logWb.Worksheets(CPOWERPOINT_ISSUES_SHEET)
- Case Default
- Err.Raise Number:=-1, Description:="BadAppName"
- End Select
- Set wsIssueDetails = logWb.Sheets(CISSUE_DETAILS_SHEET)
- Set wsRefDetails = logWb.Sheets(CREFERENCE_ISSUES_SHEET)
- issuesRow = 1 + CROWOFFSET + offsetDocIssuesRow
- issueDetailsRow = 1 + CROWOFFSET + offsetDocIssueDetailsRow
- refDetailsRow = 1 + CROWOFFSET + offsetDocRefDetailsRow
- ' localize PAW worksheets
- Dim wsWordIssues As Worksheet
- Dim wsExcelIssues As Worksheet
- Dim wsPowerPointIssues As Worksheet
- Set wsWordIssues = logWb.Worksheets(CWORD_ISSUES_SHEET)
- Set wsExcelIssues = logWb.Worksheets(CEXCEL_ISSUES_SHEET)
- Set wsPowerPointIssues = logWb.Worksheets(CPOWERPOINT_ISSUES_SHEET)
-
- On Error Resume Next
- wsCosts.name = RID_STR_COMMON_RESULTS_SHEET_NAME_COSTS
- wsIssueDetails.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS
- wsRefDetails.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS
- wsWordIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD
- wsExcelIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL
- wsPowerPointIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT
- On Error GoTo HandleErrors
- End If
-
- Dim fileName As String
- Dim macroClasses As DocMacroClassifications
- Dim issueClasses As DocIssueClassifications
-
- For row = 1 To AnalysedDocs.count 'Need Row count - so not using Eor Each
- Set aAnalysis = AnalysedDocs.item(row)
- fileName = fso.GetFileName(aAnalysis.name)
-
- If InDocPreparation Then
- issuesRow = WriteDocIssues(wsIssues, issuesRow, aAnalysis, fileName)
- issueDetailsRow = _
- ProcessIssuesAndWriteDocIssueDetails(logWb, wsIssueDetails, issueDetailsRow, aAnalysis, fileName)
- refDetailsRow = _
- WriteDocRefDetails(wsRefDetails, refDetailsRow, aAnalysis, fileName)
- aAnalysis.MacroCosts = getMacroIssueCosts(logWb, aAnalysis)
- WriteDocProperties wsPgStats, row + offsetDocPropRow, aAnalysis, fileName
- Else
- ProcessIssuesForDAW logWb, aAnalysis, fileName
- WriteDocProperties wsPgStats, row + offsetDocPropRow, aAnalysis, fileName
- End If
-
- UpdateAllCounts aAnalysis, docCounts, templateCounts, macroClasses, issueClasses, fso
-
- Set aAnalysis = Nothing
- Next row
-
- ' We change the font used for text box shapes here for the japanese
- ' version, because office 2000 sometimes displays squares instead of
- ' chars
- Dim langStr As String
- Dim userLCID As Long
- Dim textSize As Long
- Dim fontName As String
-
- userLCID = GetUserDefaultLangID()
- langStr = GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME)
-
- If (langStr = "ja") Then
- WriteDebug currentFunctionName & " : Setting font to MS PGothic for 'ja' locale"
- fontName = "MS PGothic"
- textSize = 10
- Else
- fontName = "Arial"
- textSize = CLEGEND_FONT_SIZE
- End If
-
- 'DAW - PAW switches
- If InDocPreparation Then
- SaveAnalysisResultsVariables logWb, issueDetailsRow - (1 + CROWOFFSET), _
- refDetailsRow - (1 + CROWOFFSET)
-
- WriteOverview logWb, docCounts, templateCounts, macroClasses, issueClasses
-
- SetupPAWResultsSpreadsheet logWb, fontName, textSize
- WriteIssueCounts logWb
- Else
- WriteOverview logWb, docCounts, templateCounts, macroClasses, issueClasses
-
- 'StartTiming
- SetupDAWResultsSpreadsheet logWb, fontName, textSize
- 'EndTiming "SetupDAWResultsSpreadsheet"
- End If
-
- SetupPrintRanges logWb, row, issuesRow, issueDetailsRow, refDetailsRow
-
- If resultsFile <> "" Then
- 'Overwrite existing results file without prompting
- If bOverwriteResultsFile Or (Not bNewResultsFile) Then
- xl.DisplayAlerts = False
- End If
-
- logWb.SaveAs fileName:=storeToDir & "\" & resultsFile
- xl.DisplayAlerts = True
- End If
-
-FinalExit:
- If Not xl Is Nothing Then
- xl.Visible = True
- End If
-
- Set wsOverview = Nothing
- Set wsPgStats = Nothing
-
- If InDocPreparation Then
- Set wsCosts = Nothing
- Set wsIssues = Nothing
- Set wsIssueDetails = Nothing
- Set wsRefDetails = Nothing
- End If
-
- If Not logWb Is Nothing Then logWb.Close
- Set logWb = Nothing
-
- If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then
- If Not xl Is Nothing Then
- If xl.Workbooks.count = 0 Then
- xl.Quit
- End If
- End If
- End If
- Set xl = Nothing
-
- Exit Sub
-
-HandleErrors:
- xl.DisplayAlerts = False
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Public Sub StartTiming()
- mTstart = 0
- mTend = 0
- mTstart = GetTickCount()
-End Sub
-Public Sub EndTiming(what As String)
- mTend = GetTickCount()
- WriteDebug "Timing: " & what & ": " & (FormatNumber((mTend - mTstart) / 1000, 0) & " seconds")
- mTstart = 0
- mTend = 0
-End Sub
-Sub WriteIssueCounts(logWb As WorkBook)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteIssueCounts"
-
- Dim Str As String
- Dim str1 As String
- Dim val1 As Long
- Dim count As Long
- Dim vKeyArray As Variant
- Dim vItemArray As Variant
- Dim vPrepKeyArray As Variant
- Dim vPrepItemArray As Variant
-
- vKeyArray = mIssuesDict.Keys
- vItemArray = mIssuesDict.Items
-
- vPrepKeyArray = mPreparedIssuesDict.Keys
- vPrepItemArray = mPreparedIssuesDict.Items
-
- 'Write Issue Counts across all Documents
- For count = 0 To mIssuesDict.count - 1
- str1 = vKeyArray(count)
- val1 = CInt(vItemArray(count))
- logWb.Names(str1).RefersToRange.Cells(1, 1) = _
- logWb.Names(str1).RefersToRange.Cells(1, 1).value + vItemArray(count)
- 'DEBUG: str = str & "Key: " & str1 & " Value: " & val1 & vbLf
- Next count
-
- 'Write Prepared Issues Counts across all Documents
- For count = 0 To mPreparedIssuesDict.count - 1
- str1 = vPrepKeyArray(count)
- val1 = CInt(vPrepItemArray(count))
- AddVariantToWorkbookNameValue logWb, str1, vPrepItemArray(count)
- 'DEBUG: str = str & "Key: " & str1 & " Value: " & val1 & vbLf
- Next count
-
- 'User Form control type count across all analyzed documents of this type
- str1 = getAppSpecificApplicationName & "_" & _
- CSTR_ISSUE_VBA_MACROS & "_" & _
- CSTR_SUBISSUE_PROPERTIES & "_" & _
- CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROLTYPE_COUNT
- SetWorkbookNameValueToLong logWb, str1, mUserFormTypesDict.count
-
- 'Add list of User Form controls and counts to ...USERFORMS_CONTROLTYPE_COUNT field
- If mUserFormTypesDict.count > 0 Then
- vKeyArray = mUserFormTypesDict.Keys
- vItemArray = mUserFormTypesDict.Items
-
- Str = RID_STR_COMMON_ATTRIBUTE_CONTROLS & ": "
- For count = 0 To mUserFormTypesDict.count - 1
- Str = Str & vbLf & vKeyArray(count) & " " & vItemArray(count)
- Next count
- WriteUserFromControlTypesComment logWb, str1, Str
- End If
- 'DEBUG: MsgBox str & vbLf & mIssuesDict.count
-
- WriteUniqueModuleCount logWb
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : logging costs : " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub WriteUniqueModuleCount(logWb As WorkBook)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteUniqueModuleCount"
-
- Dim strLabel As String
- Dim uniqueLineCount As Long
- Dim uniqueModuleCount As Long
- Dim count As Long
- Dim vItemArray As Variant
-
- vItemArray = mMacroDict.Items
-
- 'Write Issues Costs
- uniqueLineCount = 0
- For count = 0 To mMacroDict.count - 1
- uniqueLineCount = uniqueLineCount + CInt(vItemArray(count))
- Next count
- uniqueModuleCount = mMacroDict.count
-
-
- strLabel = getAppSpecificApplicationName & "_" & _
- CSTR_ISSUE_VBA_MACROS & "_" & _
- CSTR_SUBISSUE_PROPERTIES & "_" & _
- CSTR_SUBISSUE_VBA_MACROS_UNIQUE_MODULE_COUNT
- SetWorkbookNameValueToLong logWb, strLabel, uniqueModuleCount
-
- strLabel = getAppSpecificApplicationName & "_" & _
- CSTR_ISSUE_VBA_MACROS & "_" & _
- CSTR_SUBISSUE_PROPERTIES & "_" & _
- CSTR_SUBISSUE_VBA_MACROS_UNIQUE_LINE_COUNT
- SetWorkbookNameValueToLong logWb, strLabel, uniqueLineCount
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : logging Unique Module/ Line Counts : " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteUserFromControlTypesComment(logWb As WorkBook, name As String, comment As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteUserFromControlTypesComment"
-
- On Error Resume Next 'Ignore error if trying to add comment again - would happen on append to results
- logWb.Names(name).RefersToRange.Cells(1, 1).AddComment
-
- On Error GoTo HandleErrors
- logWb.Names(name).RefersToRange.Cells(1, 1).comment.Text Text:=comment
- 'Autosize not supported - Office 2000
- 'logWb.Names(name).RefersToRange.Cells(1, 1).comment.AutoSize = True
- logWb.Names(name).RefersToRange.Cells(1, 1).comment.Visible = False
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : name : " & name & _
- " : comment : " & comment & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub UpdateAllCounts(aAnalysis As DocumentAnalysis, counts As DocumentCount, templateCounts As DocumentCount, _
- macroClasses As DocMacroClassifications, issueClasses As DocIssueClassifications, _
- fso As FileSystemObject)
- Const CMODDATE_LESS3MONTHS = 91
- Const CMODDATE_LESS6MONTHS = 182
- Const CMODDATE_LESS12MONTHS = 365
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "UpdateAllCounts"
- 'DocIssue Classification occurs in setDocOverallIssueClassification under
- ' ProcessIssuesAndWriteDocIssueDetails when all DocIssues are being traversed.
- 'MacroClass for the Doc is setup at the end of the Analyze_Macros in DoAnalysis
- 'Mod Dates are determined in SetDocProperties in DoAnalysis
-
- 'DocMacroClassifications
- Select Case aAnalysis.MacroOverallClass
- Case enMacroComplex
- macroClasses.complex = macroClasses.complex + 1
- Case enMacroMedium
- macroClasses.Medium = macroClasses.Medium + 1
- Case enMacroSimple
- macroClasses.Simple = macroClasses.Simple + 1
- Case Else
- macroClasses.None = macroClasses.None + 1
- End Select
-
- 'DocIssueClassifications
- aAnalysis.BelowIssuesLimit = True
- Select Case aAnalysis.DocOverallIssueClass
- Case enComplex
- issueClasses.complex = issueClasses.complex + 1
- Case enMinor
- issueClasses.Minor = issueClasses.Minor + 1
- Case Else
- issueClasses.None = issueClasses.None + 1
- End Select
-
- 'DocumentCounts
- Dim extStr As String
- extStr = "." & LCase(fso.GetExtensionName(aAnalysis.name))
- If extStr = getAppSpecificDocExt Then
- UpdateDocCounts counts, aAnalysis
- ElseIf extStr = getAppSpecificTemplateExt Then
- UpdateDocCounts templateCounts, aAnalysis
- Else
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & _
- ": unhandled file extesnion " & extStr & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub UpdateDocCounts(counts As DocumentCount, aAnalysis As DocumentAnalysis)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "UpdateDocCounts"
-
- counts.numDocsAnalyzed = counts.numDocsAnalyzed + 1
- If aAnalysis.IssuesCount > 0 Then 'During Analysis incremented
- counts.numDocsAnalyzedWithIssues = counts.numDocsAnalyzedWithIssues + 1
-
- If aAnalysis.BelowIssuesLimit Then
- counts.numMinorIssues = _
- counts.numMinorIssues + aAnalysis.MinorIssuesCount
- 'MinorIssuesCount incemented as all DocIssues are being traversed are being written out - ProcessIssuesAndWriteDocIssueDetails
- counts.numComplexIssues = counts.numComplexIssues + aAnalysis.ComplexIssuesCount 'Calculated
- counts.totalDocIssuesCosts = counts.totalDocIssuesCosts + _
- aAnalysis.DocIssuesCosts
- counts.totalPreparableIssuesCosts = counts.totalPreparableIssuesCosts + _
- aAnalysis.PreparableIssuesCosts
- End If
-
- counts.numMacroIssues = counts.numMacroIssues + aAnalysis.MacroIssuesCount 'During Analysis incremented
- counts.totalMacroCosts = counts.totalMacroCosts + aAnalysis.MacroCosts
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-
-Sub WriteDocProperties(wsPgStats As Worksheet, row As Long, aAnalysis As DocumentAnalysis, _
- fileName As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteDocProperties"
-
- Dim rowIndex As Long
- rowIndex = row + mDocPropRowOffset
-
- If aAnalysis.Application = RID_STR_COMMON_CANNOT_OPEN Then
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name
-
- GoTo FinalExit
- End If
-
- If InDocPreparation Then
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application
-
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFODOCISSUECOSTS, aAnalysis.DocIssuesCosts
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOPREPARABLEISSUECOSTS, aAnalysis.PreparableIssuesCosts
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACROISSUECOSTS, aAnalysis.MacroCosts
-
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOISSUE_CLASS, _
- getDocOverallIssueClassificationAsString(aAnalysis.DocOverallIssueClass)
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOCOMPLEXISSUES, aAnalysis.ComplexIssuesCount
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMINORISSUES, aAnalysis.MinorIssuesCount
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOPREPAREDISSUES, aAnalysis.PreparableIssuesCount
-
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOMACRO_CLASS, _
- getDocOverallMacroClassAsString(aAnalysis.MacroOverallClass)
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACRO_USERFORMS, aAnalysis.MacroNumUserForms
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACRO_LINESOFCODE, aAnalysis.MacroTotalNumLines
-
- SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFONUMBERPAGES, aAnalysis.PageCount
- SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOCREATED, CheckDate(aAnalysis.Created)
- SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTMODIFIED, CheckDate(aAnalysis.Modified)
- SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTACCESSED, CheckDate(aAnalysis.Accessed)
- SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTPRINTED, CheckDate(aAnalysis.Printed)
-
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOLASTSAVEDBY, aAnalysis.SavedBy
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOREVISION, aAnalysis.Revision
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOTEMPLATE, aAnalysis.Template
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name
- Else
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOISSUE_CLASS, _
- getDocOverallIssueClassificationAsString(aAnalysis.DocOverallIssueClass)
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOMACRO_CLASS, _
- getDocOverallMacroClassAsString(aAnalysis.MacroOverallClass)
- SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTMODIFIED, CheckDate(aAnalysis.Modified)
- SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Function CheckDate(myDate As Date) As Variant
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckDate"
-
- Dim lowerNTDateLimit As Date
- If Not IsDate(myDate) Then
- CheckDate = RID_STR_COMMON_NA
- Exit Function
- End If
-
- lowerNTDateLimit = DateSerial(1980, 1, 1)
- CheckDate = IIf(myDate < lowerNTDateLimit, RID_STR_COMMON_NA, myDate)
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : date " & myDate & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function WriteDocIssues(wsIssues As Worksheet, row As Long, _
- aAnalysis As DocumentAnalysis, fileName As String) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteDocIssues"
-
- Const CNAME = 1
- Const CAPPLICATION = CNAME + 1
- Const CISSUE_COLUMNOFFSET = CAPPLICATION
-
- If aAnalysis.IssuesCount = 0 Then
- WriteDocIssues = row
- Exit Function
- End If
- SetWorksheetCellValueToString wsIssues, row, CNAME, fileName
- SetWorksheetCellValueToString wsIssues, row, CAPPLICATION, aAnalysis.Application
-
- Dim index As Integer
- For index = 1 To aAnalysis.TotalIssueTypes
- If aAnalysis.IssuesCountArray(index) > 0 Then
- SetWorksheetCellValueToString wsIssues, row, CISSUE_COLUMNOFFSET + index, aAnalysis.IssuesCountArray(index)
- End If
- Next index
- SetWorksheetCellValueToString wsIssues, row, CISSUE_COLUMNOFFSET + aAnalysis.TotalIssueTypes + 1, aAnalysis.name
-
- WriteDocIssues = row + 1
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Sub ProcessIssuesForDAW(logWb As WorkBook, aAnalysis As DocumentAnalysis, fileName As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "ProcessIssuesForDAW"
-
- Dim myIssue As IssueInfo
- Dim issueClass As EnumDocOverallIssueClass
-
- Dim index As Integer
- For index = 1 To aAnalysis.Issues.count
- Set myIssue = aAnalysis.Issues(index)
-
- If Not isMacroIssue(myIssue) Then
- issueClass = getDocIssueClassification(logWb, myIssue)
- CountDocIssuesForDoc issueClass, aAnalysis
- SetOverallDocIssueClassification issueClass, aAnalysis
- End If
-
- Set myIssue = Nothing
- Next index
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Function ProcessIssuesAndWriteDocIssueDetails(logWb As WorkBook, wsIssueDetails As Worksheet, DetailsRow As Long, _
- aAnalysis As DocumentAnalysis, fileName As String) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "ProcessIssueAndWriteDocIssueDetails"
-
- Dim myIssue As IssueInfo
- Dim rowIndex As Long
- Dim issueClass As EnumDocOverallIssueClass
- Dim issueCost As Long
-
- rowIndex = DetailsRow
-
- Dim index As Integer
- For index = 1 To aAnalysis.Issues.count
- Set myIssue = aAnalysis.Issues(index)
-
- ' Process Document Issues and Costs for the Document
- ' Will be output to List of Documents sheet by WriteDocProperties( )
- If Not isMacroIssue(myIssue) Then
- issueClass = getDocIssueClassification(logWb, myIssue)
- CountDocIssuesForDoc issueClass, aAnalysis
- SetOverallDocIssueClassification issueClass, aAnalysis
- issueCost = getDocIssueCost(logWb, aAnalysis, myIssue)
- aAnalysis.DocIssuesCosts = aAnalysis.DocIssuesCosts + issueCost
- If myIssue.Preparable Then
- aAnalysis.PreparableIssuesCosts = aAnalysis.PreparableIssuesCosts + issueCost
- End If
- End If
-
- 'Collate Issue and Factor counts across all Documents
- 'Will be output to the Issues Analyzed sheet by WriteIssueCounts( )
- CollateIssueAndFactorCountsAcrossAllDocs aAnalysis, myIssue, fileName
-
- OutputCommonIssueDetails wsIssueDetails, rowIndex, aAnalysis, myIssue, fileName
- OutputCommonIssueAttributes wsIssueDetails, rowIndex, myIssue
- rowIndex = rowIndex + 1
- Set myIssue = Nothing
- Next index
-
- ProcessIssuesAndWriteDocIssueDetails = rowIndex
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function getDocIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis, myIssue As IssueInfo) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "getDocIssueCost"
-
- Dim issueKey As String
- Dim ret As Long
- ret = 0
-
- issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML
-
- ret = getIssueValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, issueKey, 1, CCOST_COL_OFFSET)
-
-FinalExit:
- getDocIssueCost = ret
- Exit Function
-
-HandleErrors:
- ret = 0
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Function getMacroIssueCosts(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long
- 'Error handling not required
- getMacroIssueCosts = getVBAMacroIssueCost(logWb, aAnalysis) '+ getMacroExtRefIssueCost(logWb, aAnalysis)
- 'NOTE: Currently not counting External Refs as Macro Cost
- 'could be added if porting off Windows
-
-End Function
-
-Function getVBAMacroIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long
- Const CMACRO_ROW_OFFSET_UNIQUE_LINES_COST = 4
- Const CMACRO_ROW_OFFSET_USER_FORMS_COUNT_COST = 5
- Const CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_COUNT_COST = 6
- Const CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_TYPE_COUNT_COST = 7
-
- Const CMACRO_NUM_OF_LINES_FACTOR_KEY = "_UniqueLineCount"
- Const CMACRO_USER_FORMS_COUNT_FACTOR_KEY = "_UserFormsCount"
- Const CMACRO_USER_FORMS_CONTROL_COUNT_FACTOR_KEY = "_UserFormsControlCount"
- Const CMACRO_USER_FORMS_CONTROL_TYPE_COUNT_FACTOR_KEY = "_UserFormsControlTypeCount"
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "getVBAMacroIssueCost"
-
- Dim baseIssueKey As String
- Dim ret As Long
- ret = 0
-
- If Not aAnalysis.HasMacros Then GoTo FinalExit
-
- 'Fetch VBA Macro Cost Factors - if required
- baseIssueKey = getAppSpecificApplicationName & "_" & CSTR_ISSUE_VBA_MACROS & "_" & CSTR_SUBISSUE_PROPERTIES
-
- 'Num Lines - Costing taken from "Lines in Unique Modules"
- If aAnalysis.MacroTotalNumLines > 0 Then
- ret = ret + aAnalysis.MacroTotalNumLines * _
- getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
- baseIssueKey & CMACRO_NUM_OF_LINES_FACTOR_KEY, baseIssueKey, _
- CMACRO_ROW_OFFSET_UNIQUE_LINES_COST, CCOST_COL_OFFSET)
- End If
- 'User Forms Count
- If aAnalysis.MacroNumUserForms > 0 Then
- ret = ret + aAnalysis.MacroNumUserForms * _
- getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
- baseIssueKey & CMACRO_USER_FORMS_COUNT_FACTOR_KEY, baseIssueKey, _
- CMACRO_ROW_OFFSET_USER_FORMS_COUNT_COST, CCOST_COL_OFFSET)
- End If
- 'User Forms Control Count
- If aAnalysis.MacroNumUserFormControls > 0 Then
- ret = ret + aAnalysis.MacroNumUserFormControls * _
- getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
- baseIssueKey & CMACRO_USER_FORMS_CONTROL_COUNT_FACTOR_KEY, baseIssueKey, _
- CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_COUNT_COST, CCOST_COL_OFFSET)
- End If
- 'User Forms Control Type Count
- If aAnalysis.MacroNumUserFormControlTypes > 0 Then
- ret = ret + aAnalysis.MacroNumUserFormControlTypes * getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
- baseIssueKey & CMACRO_USER_FORMS_CONTROL_TYPE_COUNT_FACTOR_KEY, baseIssueKey, CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_TYPE_COUNT_COST, CCOST_COL_OFFSET)
- End If
-
-
-FinalExit:
- getVBAMacroIssueCost = ret
- Exit Function
-
-HandleErrors:
- ret = 0
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Function getMacroExtRefIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long
- Const CMACRO_ROW_OFFSET_NUM_EXTERNAL_REFS_COST = 2
- Const CMACRO_NUM_EXTERNAL_REFS_FACTOR_KEY = "_ExternalRefs"
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "getMacroExtRefIssueCost"
- Dim baseIssueKey As String
- Dim ret As Long
- ret = 0
-
- If aAnalysis.MacroNumExternalRefs <= 0 Then GoTo FinalExit
-
- 'Fetch External Ref Cost Factors
- baseIssueKey = getAppSpecificApplicationName & "_" & CSTR_ISSUE_PORTABILITY & "_" & _
- CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO
- ret = ret + aAnalysis.MacroNumExternalRefs * _
- getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
- baseIssueKey & CMACRO_NUM_EXTERNAL_REFS_FACTOR_KEY, baseIssueKey, _
- CMACRO_ROW_OFFSET_NUM_EXTERNAL_REFS_COST, CCOST_COL_OFFSET)
-
-FinalExit:
- getMacroExtRefIssueCost = ret
- Exit Function
-
-HandleErrors:
- ret = 0
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Function getIssueValueFromXLSorDict(logWb As WorkBook, aAnalysis As DocumentAnalysis, dict As Scripting.Dictionary, _
- key As String, row As Long, column As Long) As Long
- 'Error handling not required
- getIssueValueFromXLSorDict = getValueFromXLSorDict(logWb, aAnalysis, dict, key, key, row, column)
-End Function
-
-Function getValueFromXLSorDict(logWb As WorkBook, aAnalysis As DocumentAnalysis, dict As Scripting.Dictionary, _
- dictKey As String, xlsKey As String, row As Long, column As Long) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "getValueFromXLSorDict"
-
- Dim ret As Long
- ret = 0
-
- If dict.Exists(dictKey) Then
- ret = dict.item(dictKey)
- Else
- On Error Resume Next
- ret = logWb.Names(xlsKey).RefersToRange.Cells(row, column).value
- 'Log as error missing key
- If Err.Number <> 0 Then
- WriteDebug currentFunctionName & _
- " : Issue Cost Key - " & xlsKey & ": label missing from results.xlt Costs sheet, check sheet and add/ check spelling label" & Err.Number & " " & Err.Description & " " & Err.Source
- WriteDebug currentFunctionName & " : dictKey " & dictKey & " : xlsKey " & xlsKey & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- ret = 0
- End If
- On Error GoTo HandleErrors
- dict.Add dictKey, ret
- End If
-
-FinalExit:
- getValueFromXLSorDict = ret
- Exit Function
-
-HandleErrors:
- ret = 0
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Function isMacroIssue(myIssue As IssueInfo)
- 'Error handling not required
- isMacroIssue = False
-
- If myIssue.IssueTypeXML = CSTR_ISSUE_VBA_MACROS Or _
- (myIssue.IssueTypeXML = CSTR_ISSUE_PORTABILITY And _
- myIssue.SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO) Then
- isMacroIssue = True
- End If
-End Function
-Sub CountDocIssuesForDoc(issueClass As EnumDocOverallIssueClass, aAnalysis As DocumentAnalysis)
- 'Error handling not required
-
- If issueClass = enMinor Then
- aAnalysis.MinorIssuesCount = aAnalysis.MinorIssuesCount + 1
- End If
- ' Macro issues are counted during analysis
- ' Complex issues is calculated from: mIssues.count - mMinorIssuesCount - mMacroIssuesCount
-End Sub
-Sub SetOverallDocIssueClassification(issueClass As EnumDocOverallIssueClass, aAnalysis As DocumentAnalysis)
- 'Error handling not required
-
- If aAnalysis.DocOverallIssueClass = enComplex Then Exit Sub
-
- If issueClass = enComplex Then
- aAnalysis.DocOverallIssueClass = enComplex
- Else
- aAnalysis.DocOverallIssueClass = enMinor
- End If
-End Sub
-Function getDocIssueClassification(logWb As WorkBook, myIssue As IssueInfo) As EnumDocOverallIssueClass
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "getDocIssueClassification"
- Dim issueKey As String
- Dim bRet As Boolean
- bRet = False
- getDocIssueClassification = enMinor
-
- issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML
- If mIssuesClassificationDict.Exists(issueKey) Then
- bRet = mIssuesClassificationDict.item(issueKey)
- Else
- On Error Resume Next
- bRet = logWb.Names(issueKey).RefersToRange.Cells(1, 0).value
- 'Log as error missing key
- If Err.Number <> 0 Then
- WriteDebug currentFunctionName & _
- " : Issue Cost Key - " & issueKey & ": label missing from results.xlt Costs sheet, check sheet and add/ check spelling label" & Err.Number & " " & Err.Description & " " & Err.Source
- bRet = False
- End If
- On Error GoTo HandleErrors
- mIssuesClassificationDict.Add issueKey, bRet
- End If
-
-
-FinalExit:
- If bRet Then
- getDocIssueClassification = enComplex
- End If
- Exit Function
-
-HandleErrors:
- bRet = False
- WriteDebug currentFunctionName & " : issueKey " & issueKey & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function getDocOverallIssueClassificationAsString(docIssueClass As EnumDocOverallIssueClass) As String
- Dim Str As String
- 'Error handling not required
-
- Select Case docIssueClass
- Case enComplex
- Str = RID_STR_COMMON_ISSUE_CLASS_COMPLEX
- Case enMinor
- Str = RID_STR_COMMON_ISSUE_CLASS_MINOR
- Case Else
- Str = RID_STR_COMMON_ISSUE_CLASS_NONE
- End Select
-
- getDocOverallIssueClassificationAsString = Str
-End Function
-
-Public Function getDocOverallMacroClassAsString(docMacroClass As EnumDocOverallMacroClass) As String
- Dim Str As String
- 'Error handling not required
-
- Select Case docMacroClass
- Case enMacroComplex
- Str = RID_STR_COMMON_MACRO_CLASS_COMPLEX
- Case enMacroMedium
- Str = RID_STR_COMMON_MACRO_CLASS_MEDIUM
- Case enMacroSimple
- Str = RID_STR_COMMON_MACRO_CLASS_SIMPLE
- Case Else
- Str = RID_STR_COMMON_MACRO_CLASS_NONE
- End Select
-
- getDocOverallMacroClassAsString = Str
-End Function
-
-Function WriteDocRefDetails(wsRefDetails As Worksheet, DetailsRow As Long, _
- aAnalysis As DocumentAnalysis, fileName As String) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteDocRefDetails"
-
- Dim myIssue As IssueInfo
- Dim rowIndex As Long
- rowIndex = DetailsRow
-
- Dim index As Integer
-
- 'Output References for Docs with Macros
- If aAnalysis.HasMacros And (aAnalysis.References.count > 0) Then
- For index = 1 To aAnalysis.References.count
- Set myIssue = aAnalysis.References(index)
- OutputReferenceAttributes wsRefDetails, rowIndex, aAnalysis, myIssue, fileName
- rowIndex = rowIndex + 1
- Set myIssue = Nothing
- Next index
- End If
-
- WriteDocRefDetails = rowIndex
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : path " & aAnalysis.name & ": " & _
- " : row " & DetailsRow & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Sub OutputReferenceAttributes(wsIssueDetails As Worksheet, rowIndex As Long, _
- aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OutputReferenceAttributes"
-
- Dim strAttributes As String
-
- With myIssue
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDOCNAME, fileName
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDOCAPPLICATION, aAnalysis.Application
-
- strAttributes = .Values(RID_STR_COMMON_ATTRIBUTE_MAJOR) & "." & .Values(RID_STR_COMMON_ATTRIBUTE_MINOR)
- strAttributes = IIf(strAttributes = "0.0" Or strAttributes = ".", .Values(RID_STR_COMMON_ATTRIBUTE_NAME), _
- .Values(RID_STR_COMMON_ATTRIBUTE_NAME) & " " & .Values(RID_STR_COMMON_ATTRIBUTE_MAJOR) & _
- "." & .Values(RID_STR_COMMON_ATTRIBUTE_MINOR))
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETREFERENCE, strAttributes
-
- If .Values(RID_STR_COMMON_ATTRIBUTE_TYPE) = RID_STR_COMMON_ATTRIBUTE_PROJECT Then
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDESCRIPTION, RID_STR_COMMON_ATTRIBUTE_PROJECT
- Else
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDESCRIPTION, _
- IIf(.Values(RID_STR_COMMON_ATTRIBUTE_DESCRIPTION) <> "", .Values(RID_STR_COMMON_ATTRIBUTE_DESCRIPTION), RID_STR_COMMON_NA)
- End If
-
-
- If .Values(RID_STR_COMMON_ATTRIBUTE_ISBROKEN) <> RID_STR_COMMON_ATTRIBUTE_BROKEN Then
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETLOCATION, _
- .Values(RID_STR_COMMON_ATTRIBUTE_FILE)
- Else
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETLOCATION, _
- RID_STR_COMMON_NA
- End If
-
- 'Reference Details
- strAttributes = RID_STR_COMMON_ATTRIBUTE_TYPE & ": " & .Values(RID_STR_COMMON_ATTRIBUTE_TYPE) & vbLf
- strAttributes = strAttributes & RID_STR_COMMON_ATTRIBUTE_PROPERTIES & ": " & _
- .Values(RID_STR_COMMON_ATTRIBUTE_BUILTIN) & " " & .Values(RID_STR_COMMON_ATTRIBUTE_ISBROKEN)
- strAttributes = IIf(.Values(RID_STR_COMMON_ATTRIBUTE_GUID) <> "", _
- strAttributes & vbLf & RID_STR_COMMON_ATTRIBUTE_GUID & ": " & .Values(RID_STR_COMMON_ATTRIBUTE_GUID), _
- strAttributes)
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETATTRIBUTES, strAttributes
-
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETNAMEANDPATH, aAnalysis.name
- End With
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : path " & aAnalysis.name & ": " & _
- " : rowIndex " & rowIndex & ": " & _
- " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub OutputCommonIssueAttributes(wsIssueDetails As Worksheet, rowIndex As Long, _
- myIssue As IssueInfo)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OutputCommonIssueAttributes"
-
- Dim index As Integer
- Dim strAttributes As String
-
- strAttributes = ""
- For index = 1 To myIssue.Attributes.count
- strAttributes = strAttributes & myIssue.Attributes(index) & " - " & _
- myIssue.Values(index)
- strAttributes = strAttributes & IIf(index <> myIssue.Attributes.count, vbLf, "")
-
- Next index
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETATTRIBUTES, strAttributes
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : rowIndex " & rowIndex & ": " & _
- " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-'Store issue cost and factor costs across all documents
-Sub CollateIssueAndFactorCountsAcrossAllDocs(aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String)
- Const CSTR_USER_FORM = "User Form"
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CollateIssueAndFactorCountsAcrossAllDocs"
-
- 'Don't want to cost ISSUE_INFORMATION issues
- If myIssue.IssueTypeXML = CSTR_ISSUE_INFORMATION Then Exit Sub
-
- Dim issueKey As String
- issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML
-
- 'Store costing metrics for Issue
- AddIssueAndOneToDict issueKey
-
- 'Store prepeared issue for costing metrics
- If myIssue.Preparable Then
- AddPreparedIssueAndOneToDict issueKey & "_Prepared"
- End If
-
- 'Additional costing Factors output for VB macros
- If (myIssue.IssueTypeXML = CSTR_ISSUE_VBA_MACROS) And _
- (myIssue.SubTypeXML <> CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION) Then
-
- 'Unique Macro Module and Line count
- AddMacroModuleHashToMacroDict myIssue
-
- 'Line count
- AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_NUMLINES, myIssue, _
- RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES
-
- 'User From info
- If myIssue.SubLocation = CSTR_USER_FORM Then
- AddIssueAndOneToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_USERFORMS_COUNT
-
- AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROL_COUNT, myIssue, _
- RID_STR_COMMON_ATTRIBUTE_CONTROLS
- End If
- 'Additional costing Factors output for External References
- ElseIf (myIssue.IssueTypeXML = CSTR_ISSUE_PORTABILITY And _
- myIssue.SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO) Then
-
- AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO_COUNT, myIssue, _
- RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : path " & aAnalysis.name & ": " & _
- " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub OutputCommonIssueDetails(wsIssueDetails As Worksheet, rowIndex As Long, _
- aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String)
- Const CSTR_USER_FORM = "User Form"
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OutputCommonIssueDetails"
-
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETDOCNAME, fileName
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETDOCAPPLICATION, aAnalysis.Application
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETTYPE, myIssue.IssueType
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETSUBTYPE, myIssue.SubType
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETLOCATION, myIssue.Location
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETSUBLOCATION, _
- IIf(myIssue.SubLocation = "", RID_STR_COMMON_NA, myIssue.SubLocation)
- SetWorksheetCellValueToVariant wsIssueDetails, rowIndex, CISSUE_DETLINE, _
- IIf(myIssue.Line = -1, RID_STR_COMMON_NA, myIssue.Line)
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETCOLUMN, _
- IIf(myIssue.column = "", RID_STR_COMMON_NA, myIssue.column)
- SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETNAMEANDPATH, aAnalysis.name
-
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : path " & aAnalysis.name & ": " & _
- " : rowIndex " & rowIndex & ": " & _
- " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub AddIssueAndBoolValToDict(issueKey As String, issue As IssueInfo, valKey As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddIssueAndBoolValToDict"
-
- If mIssuesDict.Exists(issueKey) Then
- mIssuesDict.item(issueKey) = mIssuesDict.item(issueKey) + _
- IIf(issue.Values(valKey) > 0, 1, 0)
- Else
- mIssuesDict.Add issueKey, IIf(issue.Values(valKey) > 0, 1, 0)
- End If
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : issueKey " & issueKey & ": " & _
- " : valKey " & valKey & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub AddIssueAndValToDict(issueKey As String, issue As IssueInfo, valKey As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddIssueAndValToDict"
-
- If mIssuesDict.Exists(issueKey) Then
- mIssuesDict.item(issueKey) = mIssuesDict.item(issueKey) + issue.Values(valKey)
- Else
- mIssuesDict.Add issueKey, issue.Values(valKey)
- End If
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : issueKey " & issueKey & ": " & _
- " : valKey " & valKey & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub AddMacroModuleHashToMacroDict(issue As IssueInfo)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- Dim issueKey As String
- Dim issueVal As String
- currentFunctionName = "AddMacroModuleHashToMacroDict"
-
- issueKey = issue.Values(RID_STR_COMMON_ATTRIBUTE_SIGNATURE)
- If issueKey = RID_STR_COMMON_NA Then Exit Sub
-
- If Not mMacroDict.Exists(issueKey) Then
- mMacroDict.Add issueKey, issue.Values(RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES)
- End If
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : issueKey " & issueKey & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub AddIssueAndOneToDict(key As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddIssueAndOneToDict"
-
- If mIssuesDict.Exists(key) Then
- mIssuesDict.item(key) = mIssuesDict.item(key) + 1
- Else
- mIssuesDict.Add key, 1
- End If
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : key " & key & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub AddPreparedIssueAndOneToDict(key As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddPreparedIssueAndOneToDict"
-
- If mPreparedIssuesDict.Exists(key) Then
- mPreparedIssuesDict.item(key) = mPreparedIssuesDict.item(key) + 1
- Else
- mPreparedIssuesDict.Add key, 1
- End If
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : key " & key & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Function GetExcelInstance() As Excel.Application
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetExcelInstance"
-
- Dim xl As Excel.Application
- On Error Resume Next
- 'Try and get an existing instance
- Set xl = GetObject(, "Excel.Application")
- If Err.Number = 429 Then
- Set xl = CreateObject("Excel.Application")
- ElseIf Err.Number <> 0 Then
- Set xl = Nothing
- MsgBox "Error: " & Err.Description
- Exit Function
- End If
- Set GetExcelInstance = xl
- Set xl = Nothing
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Sub WriteOverview(logWb As WorkBook, DocCount As DocumentCount, templateCount As DocumentCount, _
- macroClasses As DocMacroClassifications, issueClasses As DocIssueClassifications)
- Const COV_ISSUECLASS_COMPLEX = "MAW_ISSUECLASS_COMPLEX"
- Const COV_ISSUECLASS_MINOR = "MAW_ISSUECLASS_MINOR"
- Const COV_ISSUECLASS_NONE = "MAW_ISSUECLASS_NONE"
-
- Const COV_MACROCLASS_COMPLEX = "MAW_MACROCLASS_COMPLEX"
- Const COV_MACROCLASS_MEDIUM = "MAW_MACROCLASS_MEDIUM"
- Const COV_MACROCLASS_SIMPLE = "MAW_MACROCLASS_SIMPLE"
- Const COV_MACROCLASS_NONE = "MAW_MACROCLASS_NONE"
-
- Const COV_ISSUECOUNT_COMPLEX = "MAW_ISSUECOUNT_COMPLEX"
- Const COV_ISSUECOUNT_MINOR = "MAW_ISSUECOUNT_MINOR"
-
- Const COV_MODDATES_LESS3MONTHS = "MAW_MODDATES_LESS3MONTHS"
- Const COV_MODDATES_3TO6MONTHS = "MAW_MODDATES_3TO6MONTHS"
- Const COV_MODDATES_6TO12MONTHS = "MAW_MODDATES_6TO12MONTHS"
- Const COV_MODDATES_MORE12MONTHS = "MAW_MODDATES_MORE12MONTHS"
-
- Const COV_DOC_MIGRATION_COSTS = "Document_Migration_Costs"
- Const COV_DOC_PREPARABLE_COSTS = "Document_Migration_Preparable_Costs"
- Const COV_MACRO_MIGRATION_COSTS = "Macro_Migration_Costs"
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteOverview"
-
- Dim appName As String
- appName = getAppSpecificApplicationName
-
- 'OV - Title
- SetWorkbookNameValueToString logWb, COVERVIEW_TITLE_LABEL, GetTitle
- SetWorkbookNameValueToVariant logWb, "AnalysisDate", Now
- SetWorkbookNameValueToString logWb, "AnalysisVersion", _
- RID_STR_COMMON_OV_VERSION_STR & ": " & GetTitle & " " & GetVersion
-
- 'OV - Number of Documents Analyzed
- AddLongToWorkbookNameValue logWb, CNUMBERDOC_ALL & getAppSpecificDocExt, DocCount.numDocsAnalyzed
- AddLongToWorkbookNameValue logWb, CNUMBERDOC_ALL & getAppSpecificTemplateExt, templateCount.numDocsAnalyzed
-
- 'OV - Documents with Document Migration Issues (excludes macro issues)
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_COMPLEX, issueClasses.complex
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_MINOR, issueClasses.Minor
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_NONE, issueClasses.None
-
- 'OV - Documents with Macro Migration Issues
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_COMPLEX, macroClasses.complex
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_MEDIUM, macroClasses.Medium
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_SIMPLE, macroClasses.Simple
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_NONE, macroClasses.None
-
- 'OV - Document Modification Dates
- Dim modDates As DocModificationDates
- Call GetDocModificationDates(modDates)
-
- SetWorkbookNameValueToLong logWb, COV_MODDATES_LESS3MONTHS, modDates.lessThanThreemonths
- SetWorkbookNameValueToLong logWb, COV_MODDATES_3TO6MONTHS, modDates.threeToSixmonths
- SetWorkbookNameValueToLong logWb, COV_MODDATES_6TO12MONTHS, modDates.sixToTwelvemonths
- SetWorkbookNameValueToLong logWb, COV_MODDATES_MORE12MONTHS, modDates.greaterThanOneYear
-
-
- If InDocPreparation Then
- 'OV - Document Migration Issues(excludes macro issues)
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECOUNT_COMPLEX, _
- DocCount.numComplexIssues + templateCount.numComplexIssues
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECOUNT_MINOR, _
- DocCount.numMinorIssues + templateCount.numMinorIssues
-
- 'OV - Document Migration Costs
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_DOC_MIGRATION_COSTS, _
- DocCount.totalDocIssuesCosts + templateCount.totalDocIssuesCosts
-
- 'OV - Document Migration Preparable Costs
- AddLongToWorkbookNameValue logWb, COV_DOC_PREPARABLE_COSTS, _
- DocCount.totalPreparableIssuesCosts + templateCount.totalPreparableIssuesCosts
-
- 'OV - Macro Migration Costs
- AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACRO_MIGRATION_COSTS, _
- DocCount.totalMacroCosts + templateCount.totalMacroCosts
- End If
-
- 'OV - Internal Attributes
- AddLongToWorkbookNameValue logWb, appName & "_" & "TotalDocsAnalysedWithIssues", _
- DocCount.numDocsAnalyzedWithIssues + templateCount.numDocsAnalyzedWithIssues
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : Problem writing overview: " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetupDAWResultsSpreadsheet(logWb As WorkBook, fontName As String, fontSize As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupDAWResultsSpreadsheet"
- Dim bSetupRun As Boolean
- bSetupRun = CBool(GetWorkbookNameValueAsLong(logWb, COV_DAW_SETUP_SHEETS_RUN_LBL))
-
- If bSetupRun Then Exit Sub
-
- 'Setup Text Boxes
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_COMMENT_TXB, _
- RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_BODY, _
- CCOMMENTS_FONT_SIZE, fontName
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_LEGEND_TXB, _
- RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY, fontSize, fontName
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_COMMENT_TXB, _
- RID_STR_COMMON_OV_DOC_MACRO_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_MACRO_COMMENT_BODY, _
- CCOMMENTS_FONT_SIZE, fontName
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_LEGEND_TXB, _
- RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY, fontSize, fontName
- Dim monthLimit As Long
- monthLimit = GetIssuesLimitInDays / CNUMDAYS_IN_MONTH
- SetWorkbookNameValueToString logWb, COV_HIGH_LEVEL_ANALYSIS_LBL, _
- IIf(monthLimit <> CMAX_LIMIT, _
- ReplaceTopicTokens(RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_DAW, CR_TOPIC, CStr(monthLimit)), _
- RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT)
-
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_COMMENT_TXB, _
- RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_BODY, _
- CCOMMENTS_FONT_SIZE, fontName
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_LEGEND_DAW_TXB, _
- RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_DAW_LEGEND_BODY, fontSize, fontName
-
- 'Setup Chart Titles
- SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_CHART, _
- RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE
- SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_CHART, _
- RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE
- SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_CHART, _
- RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE
-
- 'Set selection to top cell of Overview
- logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW).Range("A1").Select
-
- bSetupRun = True
- SetWorkbookNameValueToBoolean logWb, COV_DAW_SETUP_SHEETS_RUN_LBL, bSetupRun
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : Problem setting up spreadsheet for DAW: " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetupPAWResultsSpreadsheet(logWb As WorkBook, fontName As String, fontSize As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupPAWResultsSpreadsheet"
- Dim bSetupRun As Boolean
- bSetupRun = CBool(GetWorkbookNameValueAsLong(logWb, COV_PAW_SETUP_SHEETS_RUN_LBL))
-
- If bSetupRun Then Exit Sub
-
- 'Costs
- logWb.Names(COV_COSTS_PREPISSUE_COUNT_COL_LBL).RefersToRange.EntireColumn.Hidden = False
-
- 'Setup Text Boxes
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_LEGEND_TXB, _
- RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY, fontSize, fontName
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_LEGEND_TXB, _
- RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY, fontSize, fontName
- SetWorkbookNameValueToString logWb, COV_HIGH_LEVEL_ANALYSIS_LBL, _
- RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT
- SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_LEGEND_PAW_TXB, _
- RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_PAW_LEGEND_BODY, fontSize, fontName
-
- 'Setup Chart Titles
- SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_CHART, _
- RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE
- SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_CHART, _
- RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE
- SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_CHART, _
- RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE
-
- 'Set selection to top cell of Overview
- logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW).Range("A1").Select
-
- bSetupRun = True
- SetWorkbookNameValueToBoolean logWb, COV_PAW_SETUP_SHEETS_RUN_LBL, bSetupRun
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : Problem setting up spreadsheet for PAW: " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetupPrintRanges(logWb As WorkBook, docPropRow As Long, appIssuesRow As Long, issueDetailsRow As Long, _
- refDetailsRow As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupPrintRanges"
-
- 'Set Print Ranges
- If InDocPreparation Then
-
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP).PageSetup.PrintArea = "$A1:$U" & (docPropRow + mDocPropRowOffset)
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS).PageSetup.PrintArea = "$A1:$J" & issueDetailsRow
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS).PageSetup.PrintArea = "$A1:$G" & refDetailsRow
- If getAppSpecificApplicationName = CAPPNAME_WORD Then
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD).PageSetup.PrintArea = _
- "$A1:$N" & appIssuesRow
- ElseIf getAppSpecificApplicationName = CAPPNAME_EXCEL Then
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL).PageSetup.PrintArea = _
- "$A1:$M" & appIssuesRow
- Else
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT).PageSetup.PrintArea = _
- "$A1:$K" & appIssuesRow
- End If
- Else
- logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP).PageSetup.PrintArea = "$A1:$U" & (docPropRow + mDocPropRowOffset)
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : Problem setting print ranges: " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetupSheetChartTitles(logWb As WorkBook, namedWorksheet As String, namedChart As String, _
- chartTitle As String)
- Const CCHART_TITLE_FONT_SIZE = 11
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupSheetChartTitles"
-
- With logWb.Sheets(namedWorksheet).ChartObjects(namedChart).Chart
- .HasTitle = True
- .chartTitle.Characters.Text = chartTitle
- .chartTitle.Font.Size = CCHART_TITLE_FONT_SIZE
- End With
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " namedWorkSheet: " & namedWorksheet & _
- " namedChart: " & namedChart & _
- " chartTitle: " & chartTitle & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetupSheetTextBox(logWb As WorkBook, namedWorksheet As String, _
- textBoxName As String, textBoxTitle As String, textBoxBody As String, _
- textSize As Long, fontName As String)
-
- Const CMAX_INSERTABLE_STRING_LEN = 255
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupSheetTextBox"
-
- Dim strTextBody As String
- Dim allText As String
- strTextBody = ReplaceTopic2Tokens(textBoxBody, CR_STR, Chr(10), CR_PRODUCT, RID_STR_COMMON_OV_PRODUCT_STR)
-
- 'Setup Text Boxes
- logWb.Sheets(namedWorksheet).Activate
- logWb.Sheets(namedWorksheet).Shapes(textBoxName).Select
-
- '*** Workaround Excel bug: 213841 XL: Passed Strings Longer Than 255 Characters Are Truncated
- Dim I As Long
- logWb.Application.Selection.Text = ""
-
- logWb.Application.Selection.Characters.Text = textBoxTitle & Chr(10)
-
- With logWb.Application.Selection
- For I = 0 To Int(Len(strTextBody) / CMAX_INSERTABLE_STRING_LEN)
- .Characters(.Characters.count + 1).Text = Mid(strTextBody, _
- (I * CMAX_INSERTABLE_STRING_LEN) + 1, CMAX_INSERTABLE_STRING_LEN)
- Next
- End With
-
- 'Highlight title only
- With logWb.Application.Selection.Characters(start:=1, Length:=Len(textBoxTitle)).Font
- .name = fontName
- .FontStyle = "Bold"
- .Size = textSize
- End With
- With logWb.Application.Selection.Characters(start:=Len(textBoxTitle) + 1, _
- Length:=Len(strTextBody) + 1).Font
- .name = fontName
- .FontStyle = "Regular"
- .Size = textSize
- End With
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " namedWorkSheet: " & namedWorksheet & _
- " textBoxName: " & textBoxName & _
- " textBoxTitle: " & textBoxTitle & _
- " textBoxBody: " & textBoxBody & _
- " textSize: " & textSize & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Function GetWorkbookNameValueAsLong(logWb As WorkBook, name As String) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetWorkbookNameValueAsLong"
-
- GetWorkbookNameValueAsLong = logWb.Names(name).RefersToRange.Cells(1, 1).value
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- GetWorkbookNameValueAsLong = 0
- WriteDebug currentFunctionName & " : name " & name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetWorksheetCellValueAsLong(logWs As Worksheet, row As Long, col As Long) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetWorksheetCellValueAsLong"
-
- GetWorksheetCellValueAsLong = logWs.Cells(row, col).value
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : row " & row & _
- " : col " & col & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetWorksheetCellValueAsString(logWs As Worksheet, row As Long, col As Long) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetWorksheetCellValueToString"
-
- GetWorksheetCellValueAsString = logWs.Cells(row, col).value
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- GetWorksheetCellValueAsString = ""
-
- WriteDebug currentFunctionName & _
- " : row " & row & _
- " : col " & col & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Sub SetWorksheetCellValueToLong(logWs As Worksheet, row As Long, col As Long, val As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorksheetCellValueToLong"
-
- logWs.Cells(row, col) = val
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : row " & row & _
- " : col " & col & _
- " : val " & val & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub SetWorksheetCellValueToInteger(logWs As Worksheet, row As Long, col As Long, intVal As Integer)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorksheetCellValueToInteger"
-
- logWs.Cells(row, col) = intVal
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : row " & row & _
- " : col " & col & _
- " : intVal " & intVal & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetWorksheetCellValueToVariant(logWs As Worksheet, row As Long, col As Long, varVal As Variant)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorksheetCellValueToInteger"
-
- logWs.Cells(row, col) = varVal
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : row " & row & _
- " : col " & col & _
- " : varVal " & varVal & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetWorksheetCellValueToString(logWs As Worksheet, row As Long, col As Long, strVal As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorksheetCellValueToString"
-
- logWs.Cells(row, col) = strVal
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : row " & row & _
- " : col " & col & _
- " : strVal " & strVal & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetWorkbookNameValueToBoolean(logWb As WorkBook, name As String, bVal As Boolean)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorkbookNameValueToBoolean"
-
- logWb.Names(name).RefersToRange.Cells(1, 1) = bVal
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : name " & name & " : boolean value " & bVal & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetWorkbookNameValueToString(logWb As WorkBook, name As String, val As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorkbookNameValueToString"
-
- logWb.Names(name).RefersToRange.Cells(1, 1) = val
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetWorkbookNameValueToLong(logWb As WorkBook, name As String, val As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorkbookNameValueToLong"
-
- logWb.Names(name).RefersToRange.Cells(1, 1) = val
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetWorkbookNameValueToVariant(logWb As WorkBook, name As String, val As Variant)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetWorkbookNameValueToVariant"
-
- logWb.Names(name).RefersToRange.Cells(1, 1) = val
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub AddLongToWorkbookNameValue(logWb As WorkBook, name As String, val As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddLongToWorkbookNameValue"
-
- logWb.Names(name).RefersToRange.Cells(1, 1) = logWb.Names(name).RefersToRange.Cells(1, 1).value + val
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub AddVariantToWorkbookNameValue(logWb As WorkBook, name As String, varVal As Variant)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddVariantToWorkbookNameValue"
-
- logWb.Names(name).RefersToRange.Cells(1, 1) = logWb.Names(name).RefersToRange.Cells(1, 1).value + varVal
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : name " & name & " : value " & varVal & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SaveAnalysisResultsVariables(logWb As WorkBook, offsetDocIssueDetailsRow As Long, _
- offsetDocRefDetailsRow As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SaveAnalysisResultsVariables"
-
- 'OV - Internal Attributes
- SetWorkbookNameValueToLong logWb, "TotalIssuesAnalysed", offsetDocIssueDetailsRow
- SetWorkbookNameValueToLong logWb, "TotalRefsAnalysed", offsetDocRefDetailsRow
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : offsetDocIssueDetailsRow " & offsetDocIssueDetailsRow & _
- " : offsetDocRefDetailsRow " & offsetDocRefDetailsRow & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub SetupAnalysisResultsVariables(logWb As WorkBook, _
- offsetDocPropRow As Long, offsetDocIssuesRow As Long, _
- offsetDocIssueDetailsRow As Long, offsetDocRefDetailsRow As Long)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupAnalysisResultsVariables"
-
- offsetDocPropRow = GetWorkbookNameValueAsLong(logWb, CTOTAL_DOCS_ANALYZED)
- offsetDocIssueDetailsRow = GetWorkbookNameValueAsLong(logWb, "TotalIssuesAnalysed")
- offsetDocRefDetailsRow = GetWorkbookNameValueAsLong(logWb, "TotalRefsAnalysed")
- offsetDocIssuesRow = GetWorkbookNameValueAsLong(logWb, getAppSpecificApplicationName & "_" & "TotalDocsAnalysedWithIssues")
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : offsetDocPropRow " & offsetDocPropRow & _
- " : offsetDocIssueDetailsRow " & offsetDocIssueDetailsRow & _
- " : offsetDocRefDetailsRow " & offsetDocRefDetailsRow & _
- " : offsetDocIssuesRow " & offsetDocIssuesRow & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteToIni(key As String, value As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteToIni"
-
- If mIniFilePath = "" Then Exit Sub
-
- Call WritePrivateProfileString("Analysis", key, value, mIniFilePath)
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : key " & key & " : value " & value & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteToLog(key As String, value As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteToLog"
-
- If mLogFilePath = "" Then Exit Sub
-
- Dim sSection As String
- sSection = getAppSpecificApplicationName
-
- Call WritePrivateProfileString(sSection, key, value, mLogFilePath)
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : key " & key & " : value " & value & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub WriteDebug(value As String)
- On Error Resume Next 'Ignore errors in our error writing routines - could get circular dependency otherwise
- Static ErrCount As Long
-
- If mLogFilePath = "" Then Exit Sub
-
- Dim sSection As String
- sSection = getAppSpecificApplicationName & "Debug"
-
- If mDebugLevel > 0 Then
- Call WritePrivateProfileString(sSection, "Doc" & mDocIndex & "_debug" & ErrCount, value, mLogFilePath)
- ErrCount = ErrCount + 1
- Else
- Debug.Print
- End If
-End Sub
-Sub WriteDebugLevelTwo(value As String)
- On Error Resume Next 'Ignore errors in our error writing routines - could get circular dependency otherwise
- Static ErrCountTwo As Long
-
- If mLogFilePath = "" Then Exit Sub
-
- Dim sSection As String
- sSection = getAppSpecificApplicationName & "Debug"
-
- If mDebugLevel > 1 Then
- Call WritePrivateProfileString(sSection, "Doc" & mDocIndex & "_debug" & ErrCountTwo, "Level2: " & value, mLogFilePath)
- ErrCountTwo = ErrCountTwo + 1
- Else
- Debug.Print
- End If
-End Sub
-
-Public Function ProfileLoadDict(dict As Scripting.Dictionary, _
- lpSectionName As String, _
- inifile As String) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "ProfileLoadDict"
- Dim success As Long
- Dim c As Long
- Dim nSize As Long
- Dim KeyData As String
- Dim lpKeyName As String
- Dim ret As String
-
- ret = Space$(2048)
- nSize = Len(ret)
- success = GetPrivateProfileString( _
- lpSectionName, vbNullString, "", ret, nSize, inifile)
-
- If success Then
- ret = Left$(ret, success)
-
- Do Until ret = ""
- lpKeyName = StripNulls(ret)
- KeyData = ProfileGetItem( _
- lpSectionName, lpKeyName, "", inifile)
- dict.Add lpKeyName, KeyData
- Loop
- End If
- ProfileLoadDict = dict.count
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : dict.Count " & dict.count & _
- " : lpSectionName " & lpSectionName & _
- " : inifile " & inifile & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Private Function StripNulls(startStrg As String) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "StripNulls"
- Dim pos As Long
- Dim item As String
-
- pos = InStr(1, startStrg, Chr$(0))
-
- If pos Then
-
- item = Mid$(startStrg, 1, pos - 1)
- startStrg = Mid$(startStrg, pos + 1, Len(startStrg))
- StripNulls = item
-
- End If
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : startStrg " & startStrg & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Public Function ProfileGetItem(lpSectionName As String, _
- lpKeyName As String, _
- defaultValue As String, _
- inifile As String) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "ProfileGetItem"
-
- Dim success As Long
- Dim nSize As Long
- Dim ret As String
- ret = Space$(2048)
- nSize = Len(ret)
- success = GetPrivateProfileString(lpSectionName, _
- lpKeyName, _
- defaultValue, _
- ret, _
- nSize, _
- inifile)
- If success Then
- ProfileGetItem = Left$(ret, success)
- Else
- ProfileGetItem = defaultValue
- End If
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- " : lpSectionName " & lpSectionName & _
- " : lpKeyName " & lpKeyName & _
- " : defaultValue " & defaultValue & _
- " : inifile " & inifile & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Public Function GetDefaultPassword() As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetDefaultPassword"
-
- Static myPassword As String
-
- If myPassword = "" Then
- myPassword = ProfileGetItem("Analysis", CDEFAULT_PASSWORD, "", mIniFilePath)
- End If
-
- GetDefaultPassword = myPassword
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Public Function GetVersion() As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetVersion"
-
- Static myVersion As String
-
- If myVersion = "" Then
- myVersion = ProfileGetItem("Analysis", CVERSION, "", mIniFilePath)
- End If
-
- GetVersion = myVersion
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-Public Function GetTitle() As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetTitle"
-
- Static myTitle As String
-
- If myTitle = "" Then
- myTitle = ProfileGetItem("Analysis", CTITLE, RID_STR_COMMON_ANALYSIS_STR, mIniFilePath)
- End If
-
- GetTitle = myTitle
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Sub SetPrepareToNone()
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetPrepareToNone"
-
- Call WritePrivateProfileString("Analysis", CDOPREPARE, CStr(0), mIniFilePath)
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Function CheckForAbort() As Boolean
- Dim currentFunctionName As String
- Dim bAbort As Boolean
-
- currentFunctionName = "CheckForAbort"
- bAbort = False
-
- On Error GoTo HandleErrors
-
- bAbort = CBool(ProfileGetItem("Analysis", C_ABORT_ANALYSIS, "false", mIniFilePath))
-
- 'reset the flag
- If (bAbort) Then Call WriteToIni(C_ABORT_ANALYSIS, "false")
-
-FinalExit:
- CheckForAbort = bAbort
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function CheckDoPrepare() As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckDoPrepare"
-
- Static bDoPrepare As Boolean
- Static myDoPrepare As String
-
- If myDoPrepare = "" Then
- bDoPrepare = CBool(ProfileGetItem("Analysis", _
- CDOPREPARE, "False", mIniFilePath))
- myDoPrepare = "OK"
- End If
-
- CheckDoPrepare = bDoPrepare
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function GetIssuesLimitInDays() As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
-
- currentFunctionName = "GetIssuesLimitInDays"
-
- Static issuesLimit As Long
- Static myDoPrepare As String
-
- If issuesLimit = 0 Then
- issuesLimit = CLng(ProfileGetItem("Analysis", _
- CISSUES_LIMIT, CMAX_LIMIT, mIniFilePath)) * CNUMDAYS_IN_MONTH
- End If
-
- GetIssuesLimitInDays = issuesLimit
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Public Sub AddIssueDetailsNote(myIssue As IssueInfo, noteNum As Long, noteStr As String, _
- Optional preStr As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "AddIssueDetailsNote"
-
- If IsMissing(preStr) Then
- preStr = RID_STR_COMMON_NOTE_PRE
- End If
- myIssue.Attributes.Add preStr & "[" & noteNum & "]"
- myIssue.Values.Add noteStr
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : noteNum " & noteNum & " : noteStr " & noteStr & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Public Sub SetupWizardVariables( _
- fileList As String, storeToDir As String, resultsFile As String, _
- logFile As String, resultsTemplate As String, bOverwriteFile As Boolean, _
- bNewResultsFile As Boolean, statFileName As String, debugLevel As Long, _
- outputType As String, singleFile As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupWizardVariables"
-
- If mIniFilePath = "" Then
- mIniFilePath = GetAppDataFolder & "\Sun\AnalysisWizard\" & CWIZARD & ".ini"
- End If
-
- statFileName = ProfileGetItem("Analysis", CSTAT_FILE, "", mIniFilePath)
- fileList = ProfileGetItem("Analysis", CFILE_LIST, "", mIniFilePath)
- storeToDir = ProfileGetItem("Analysis", COUTPUT_DIR, "", mIniFilePath)
- resultsFile = ProfileGetItem("Analysis", CRESULTS_FILE, "", mIniFilePath)
- logFile = ProfileGetItem("Analysis", CLOG_FILE, "", mIniFilePath)
- resultsTemplate = ProfileGetItem("Analysis", CRESULTS_TEMPLATE, "", mIniFilePath)
- bOverwriteFile = IIf(ProfileGetItem("Analysis", CRESULTS_EXIST, COVERWRITE_FILE, mIniFilePath) = COVERWRITE_FILE, _
- True, False)
- bNewResultsFile = CBool(ProfileGetItem("Analysis", CNEW_RESULTS_FILE, "True", mIniFilePath))
- debugLevel = CLng(ProfileGetItem("Analysis", CDEBUG_LEVEL, "1", mIniFilePath))
- outputType = ProfileGetItem("Analysis", COUTPUT_TYPE, COUTPUT_TYPE_XLS, mIniFilePath)
- singleFile = ProfileGetItem("Analysis", CSINGLE_FILE, "", mIniFilePath)
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & _
- ": mIniFilePath " & mIniFilePath & ": " & _
- Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Public Sub SetupSearchTypes(searchTypes As Collection)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetupSearchTypes"
-
- Dim bDocument As Boolean
- Dim bTemplate As Boolean
-
- bDocument = CBool(ProfileGetItem("Analysis", LCase("type" & getAppSpecificApplicationName & "doc"), "False", mIniFilePath))
- bTemplate = CBool(ProfileGetItem("Analysis", LCase("type" & getAppSpecificApplicationName & "dot"), "False", mIniFilePath))
- If bDocument = True Then searchTypes.Add "*" & getAppSpecificDocExt
- If bTemplate = True Then searchTypes.Add "*" & getAppSpecificTemplateExt
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & ": searchTypes.Count " & searchTypes.count & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteXMLHeader(out As TextStream)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLHeader"
-
- out.WriteLine "<?xml version=""1.0"" encoding=""ISO-8859-1""?>"
- out.WriteLine "<!DOCTYPE results SYSTEM 'analysis.dtd'>"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub WriteXMLResultsStartTag(out As TextStream)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLResultsStartTag"
-
- out.WriteLine "<results generated-by=""" & IIf(InDocPreparation, "documentanalysis_preparation", "documentanalysis") & """"
- out.WriteLine " version=""" & GetVersion & """ timestamp=""" & Now & """"
- out.WriteLine " type=""" & getAppSpecificApplicationName & """ >"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Sub WriteXMLResultsEndTag(out As TextStream)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLResultsEndTag"
-
- out.WriteLine "</results>"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteXMLDocProperties(out As TextStream, aAnalysis As DocumentAnalysis)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLDocProperties"
-
- out.WriteLine "<document location=""" & EncodeXML(aAnalysis.name) & """"
- out.WriteLine " application=""" & aAnalysis.Application & """"
- out.WriteLine " issues-count=""" & (aAnalysis.IssuesCount) & """"
- out.WriteLine " pages=""" & aAnalysis.PageCount & """"
- out.WriteLine " created=""" & CheckDate(aAnalysis.Created) & """"
- out.WriteLine " modified=""" & CheckDate(aAnalysis.Modified) & """"
- out.WriteLine " accessed=""" & CheckDate(aAnalysis.Accessed) & """"
- out.WriteLine " printed=""" & CheckDate(aAnalysis.Printed) & """"
- out.WriteLine " last-save-by=""" & aAnalysis.SavedBy & """"
- out.WriteLine " revision=""" & aAnalysis.Revision & """"
- out.WriteLine " based-on-template=""" & EncodeXML(aAnalysis.Template) & """"
- out.WriteLine ">"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteXMLDocPropertiesEndTag(out As TextStream)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLDocPropertiesEndTag"
-
- out.WriteLine "</document>"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteXMLDocRefDetails(out As TextStream, aAnalysis As DocumentAnalysis)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLDocRefDetails"
- Dim myIssue As IssueInfo
-
- 'Output References for Docs with Macros
- If aAnalysis.HasMacros And (aAnalysis.References.count > 0) Then
- out.WriteLine "<references>"
- For Each myIssue In aAnalysis.References
- OutputXMLReferenceAttributes out, aAnalysis, myIssue
- Next myIssue
- out.WriteLine "</references>"
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub OutputXMLReferenceAttributes(out As TextStream, aAnalysis As DocumentAnalysis, myIssue As IssueInfo)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OutputXMLReferenceAttributes"
- Dim strAttributes As String
-
- With myIssue
- out.WriteLine "<reference"
-
- strAttributes = .Values("Major") & "." & .Values("Minor")
- strAttributes = IIf(strAttributes = "0.0" Or strAttributes = ".", .Values("Name"), _
- .Values("Name") & " " & .Values("Major") & "." & .Values("Minor"))
- out.WriteLine " name=""" & EncodeXML(strAttributes) & """"
-
- If .Values("Type") = "Project" Then
- strAttributes = "Project reference"
- Else
- strAttributes = IIf(.Values("Description") <> "", .Values("Description"), RID_STR_COMMON_NA)
- End If
- out.WriteLine " description=""" & EncodeXML(strAttributes) & """"
- If .Values("IsBroken") <> RID_STR_COMMON_ATTRIBUTE_BROKEN Then
- out.WriteLine " location=""" & .Values("File") & """"
- End If
- out.WriteLine " type=""" & .Values("Type") & """"
- strAttributes = IIf(.Values("GUID") <> "", .Values("GUID"), RID_STR_COMMON_NA)
- out.WriteLine " GUID=""" & strAttributes & """"
- out.WriteLine " is-broken=""" & .Values("IsBroken") & """"
- out.WriteLine " builtin=""" & .Values("BuiltIn") & """"
-
- out.WriteLine " />"
- End With
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteXMLDocIssueDetails(out As TextStream, aAnalysis As DocumentAnalysis)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLDocIssueDetails"
-
- Dim myIssue As IssueInfo
-
- If aAnalysis.Issues.count = 0 Then Exit Sub
-
- out.WriteLine "<issues>"
- For Each myIssue In aAnalysis.Issues
- OutputXMLCommonIssueDetails out, aAnalysis, myIssue
- OutputXMLCommonIssueAttributes out, myIssue
- out.WriteLine "</issue>"
- Next myIssue
- out.WriteLine "</issues>"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub OutputXMLCommonIssueDetails(out As TextStream, aAnalysis As DocumentAnalysis, myIssue As IssueInfo)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OutputXMLCommonIssueDetails"
-
- out.WriteLine "<issue category=""" & myIssue.IssueTypeXML & """"
- out.WriteLine " type=""" & myIssue.SubTypeXML & """"
-
- 'NOTE: Dropping severity - now stored in results.xlt, do not want to open it to fetch this data
- 'out.WriteLine " severity=""" & IIf(CheckForMinorIssue(aAnalysis, myIssue), "Minor", "Major") & """"
- out.WriteLine " prepared=""" & IIf((myIssue.Preparable), "True", "False") & """ >"
-
- out.WriteLine "<location type=""" & myIssue.locationXML & """ >"
-
- If myIssue.SubLocation <> "" Then
- out.WriteLine "<property name=""sublocation"" value=""" & myIssue.SubLocation & """ />"
- End If
- If myIssue.Line <> -1 Then
- out.WriteLine "<property name=""line"" value=""" & myIssue.Line & """ />"
- End If
- If myIssue.column <> "" Then
- out.WriteLine "<property name=""column"" value=""" & myIssue.column & """ />"
- End If
- out.WriteLine "</location>"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub OutputXMLCommonIssueAttributes(out As TextStream, myIssue As IssueInfo)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "OutputXMLCommonIssueAttributes"
-
- Dim index As Integer
- Dim valStr As String
- Dim attStr As String
-
- If myIssue.Attributes.count = 0 Then Exit Sub
-
- out.WriteLine "<details>"
- For index = 1 To myIssue.Attributes.count
- attStr = myIssue.Attributes(index)
- If InStr(attStr, RID_STR_COMMON_NOTE_PRE & "[") = 1 Then
- attStr = Right$(attStr, Len(attStr) - Len(RID_STR_COMMON_NOTE_PRE & "["))
- attStr = Left$(attStr, Len(attStr) - 1)
- out.WriteLine "<note index=""" & attStr & """ value=""" & EncodeXML(myIssue.Values(index)) & """ />"
- Else
- out.WriteLine "<property name=""" & EncodeXML(myIssue.Attributes(index)) & """ value=""" & EncodeXML(myIssue.Values(index)) & """ />"
- End If
- Next index
-
- out.WriteLine "</details>"
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-
-Sub WriteXMLOutput(storeToDir As String, resultsFile As String, _
- bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, AnalysedDocs As Collection, _
- fso As Scripting.FileSystemObject)
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteXMLOutput"
-
- Dim xmlOutput As TextStream
- Dim xmlOrigOutput As TextStream
- Dim origOutput As String
- Dim analysis As DocumentAnalysis
- Dim outFilePath As String
-
- outFilePath = storeToDir & "\" & fso.GetBaseName(resultsFile) & "_" & _
- getAppSpecificApplicationName & ".xml"
-
- Set xmlOutput = fso.CreateTextFile(outFilePath, True)
- WriteXMLHeader xmlOutput
-
- 'Set xmlOrigOutput = fso.OpenTextFile(outFilePath, ForReading)
- 'Set xmlOutput = fso.OpenTextFile(outFilePath, ForWriting)
-
- WriteXMLResultsStartTag xmlOutput
- For Each analysis In AnalysedDocs
- WriteXMLDocProperties xmlOutput, analysis
- WriteXMLDocRefDetails xmlOutput, analysis
- WriteXMLDocIssueDetails xmlOutput, analysis
- WriteXMLDocPropertiesEndTag xmlOutput
- Next analysis
- WriteXMLResultsEndTag xmlOutput
-
-FinalExit:
- xmlOutput.Close
- Set xmlOutput = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : path " & outFilePath & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Private Function EncodeUrl(ByVal sUrl As String) As String
- Const MAX_PATH As Long = 260
- Const ERROR_SUCCESS As Long = 0
- Const URL_DONT_SIMPLIFY As Long = &H8000000
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "EncodeUrl"
-
- Dim sUrlEsc As String
- Dim dwSize As Long
- Dim dwFlags As Long
-
- If Len(sUrl) > 0 Then
-
- sUrlEsc = Space$(MAX_PATH)
- dwSize = Len(sUrlEsc)
- dwFlags = URL_DONT_SIMPLIFY
-
- If UrlEscape(sUrl, _
- sUrlEsc, _
- dwSize, _
- dwFlags) = ERROR_SUCCESS Then
-
- EncodeUrl = Left$(sUrlEsc, dwSize)
-
- End If 'If UrlEscape
- End If 'If Len(sUrl) > 0
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : sUrl " & sUrl & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Private Function EncodeXML(Str As String) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "EncodeXML"
-
- Str = Replace(Str, "^", "^")
- Str = Replace(Str, "&", "&")
- Str = Replace(Str, "`", "'")
- Str = Replace(Str, "{", "{")
- Str = Replace(Str, "}", "}")
- Str = Replace(Str, "|", "|")
- Str = Replace(Str, "]", "]")
- Str = Replace(Str, "[", "[")
- Str = Replace(Str, """", """)
- Str = Replace(Str, "<", "<")
- Str = Replace(Str, ">", ">")
-
- 'str = Replace(str, "\", "\")
- 'str = Replace(str, "#", "#")
- 'str = Replace(str, "?", "?")
- 'str = Replace(str, "/", "/")
-
- EncodeXML = Str
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : string " & Str & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-
-Function ReplaceTopicTokens(sString As String, _
- sToken As String, _
- sReplacement As String) As String
- On Error Resume Next
-
- Dim p As Integer
- Dim sTmp As String
-
- sTmp = sString
- Do
- p = InStr(sTmp, sToken)
- If p Then
- sTmp = Left(sTmp, p - 1) + sReplacement + Mid(sTmp, p + Len(sToken))
- End If
- Loop While p > 0
-
-
- ReplaceTopicTokens = sTmp
-
-End Function
-
-Function ReplaceTopic2Tokens(sString As String, _
- sToken1 As String, _
- sReplacement1 As String, _
- sToken2 As String, _
- sReplacement2 As String) As String
- On Error Resume Next
-
- ReplaceTopic2Tokens = _
- ReplaceTopicTokens(ReplaceTopicTokens(sString, sToken1, sReplacement1), _
- sToken2, sReplacement2)
-End Function
-
-'Language setting functions
-Function GetResourceDataFileName(thisDir As String) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetResourceDataFileName"
-
- Dim fso As FileSystemObject
- Set fso = New FileSystemObject
-
- 'A debug method - if a file called debug.dat exists load it.
- If fso.FileExists(fso.GetAbsolutePathName(thisDir & "\debug.dat")) Then
- GetResourceDataFileName = fso.GetAbsolutePathName(thisDir & "\debug.dat")
- GoTo FinalExit
- End If
-
- Dim isoLangStr As String
- Dim isoCountryStr As String
- Dim langDir As String
-
- langDir = thisDir & "\" & "lang"
-
- Dim userLCID As Long
- userLCID = GetUserDefaultLangID()
- Dim sysLCID As Long
- sysLCID = GetSystemDefaultLangID()
-
- isoLangStr = GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME)
- isoCountryStr = GetUserLocaleInfo(userLCID, LOCALE_SISO3166CTRYNAME)
-
- 'check for locale data in following order:
- ' user language
- ' isoLangStr & "_" & isoCountryStr & ".dat"
- ' isoLangStr & ".dat"
- ' system language
- ' isoLangStr & "_" & isoCountryStr & ".dat"
- ' isoLangStr & ".dat"
- ' "en_US" & ".dat"
-
- If fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")) Then
- GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")
- ElseIf fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")) Then
- GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")
- Else
- isoLangStr = GetUserLocaleInfo(sysLCID, LOCALE_SISO639LANGNAME)
- isoCountryStr = GetUserLocaleInfo(sysLCID, LOCALE_SISO3166CTRYNAME)
-
- If fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")) Then
- GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")
- ElseIf fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")) Then
- GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")
- Else
- GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & "en-US.dat")
- End If
- End If
-FinalExit:
- Set fso = Nothing
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Public Function GetUserLocaleInfo(ByVal dwLocaleID As Long, ByVal dwLCType As Long) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetUserLocaleInfo"
- Dim sReturn As String
- Dim r As Long
-
- 'call the function passing the Locale type
- 'variable to retrieve the required size of
- 'the string buffer needed
- r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn))
-
- 'if successful..
- If r Then
- 'pad the buffer with spaces
- sReturn = Space$(r)
-
- 'and call again passing the buffer
- r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn))
-
- 'if successful (r > 0)
- If r Then
- 'r holds the size of the string
- 'including the terminating null
- GetUserLocaleInfo = Left$(sReturn, r - 1)
- End If
- End If
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-' This function returns the Application Data Folder Path
-Function GetAppDataFolder() As String
- Dim idlstr As Long
- Dim sPath As String
- Dim IDL As ITEMIDLIST
- Const NOERROR = 0
- Const MAX_LENGTH = 260
- Const CSIDL_APPDATA = &H1A
-
- On Error GoTo Err_GetFolder
-
- ' Fill the idl structure with the specified folder item.
- idlstr = SHGetSpecialFolderLocation(0, CSIDL_APPDATA, IDL)
-
- If idlstr = NOERROR Then
- ' Get the path from the idl list, and return
- ' the folder with a slash at the end.
- sPath = Space$(MAX_LENGTH)
- idlstr = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)
- If idlstr Then
- GetAppDataFolder = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
- End If
- End If
-
-Exit_GetFolder:
- Exit Function
-
-Err_GetFolder:
- MsgBox "An Error was Encountered" & Chr(13) & Err.Description, _
- vbCritical Or vbOKOnly
- Resume Exit_GetFolder
-
-End Function
-
-Sub WriteToStatFile(statFileName As String, statValue As Integer, _
- currDocument As String, fso As Scripting.FileSystemObject)
-
- On Error Resume Next
-
- Dim fileCont As TextStream
-
- Set fileCont = fso.OpenTextFile(statFileName, ForWriting, True, TristateTrue)
- If (statValue = C_STAT_STARTING) Then
- fileCont.WriteLine ("analysing=" & currDocument)
- ElseIf (statValue = C_STAT_DONE) Then
- fileCont.WriteLine ("analysed=" & currDocument)
- ElseIf (statValue = C_STAT_FINISHED) Then
- fileCont.WriteLine ("finished")
- End If
-
- fileCont.Close
-End Sub
-
-' The function FindIndex looks for a document in the given document list
-' starting at the position lastIndex in that list. If the document could
-' not be found, the function starts searching from the beginning
-
-Function FindIndex(myDocument As String, _
- myDocList As Collection, _
- lastIndex As Long) As Long
-
- Dim lastEntry As Long
- Dim curIndex As Long
- Dim curEntry As String
- Dim entryFound As Boolean
-
- entryFound = False
- lastEntry = myDocList.count
-
- If (lastIndex > lastEntry) Then lastIndex = lastEntry
-
- If (lastIndex > 1) Then
- curIndex = lastIndex
- Else
- curIndex = 1
- End If
-
- While Not entryFound And curIndex <= lastEntry
- curEntry = myDocList.item(curIndex)
- If (curEntry = myDocument) Then
- entryFound = True
- Else
- curIndex = curIndex + 1
- End If
- Wend
-
- If (Not entryFound) Then
- curIndex = 1
- While Not entryFound And curIndex < lastIndex
- curEntry = myDocList.item(curIndex)
- If (curEntry = myDocument) Then
- entryFound = True
- Else
- curIndex = curIndex + 1
- End If
- Wend
- End If
-
- If entryFound Then
- FindIndex = curIndex
- Else
- FindIndex = 0
- End If
-
-End Function
-
-' The sub GetIndexValues calulates the start index of the analysis and the index
-' of the file after which the next intermediate reult will be written
-Function GetIndexValues(startIndex As Long, nextCheck As Long, _
- myFiles As Collection) As Boolean
-
- Dim lastCheckpoint As String
- Dim nextFile As String
- Dim newResultsFile As Boolean
-
- lastCheckpoint = ProfileGetItem(C_ANALYSIS, C_LAST_CHECKPOINT, "", mIniFilePath)
- nextFile = ProfileGetItem(C_ANALYSIS, C_NEXT_FILE, "", mIniFilePath)
- newResultsFile = True
-
- If (nextFile = "") Then
- ' No Analysis done yet
- startIndex = 1
- nextCheck = C_MAX_CHECK
- Else
- If (lastCheckpoint = "") Then
- startIndex = 1
- Else
- startIndex = FindIndex(lastCheckpoint, myFiles, 1) + 1
- If (startIndex > 0) Then newResultsFile = False
- End If
-
- nextCheck = FindIndex(nextFile, myFiles, startIndex - 1)
-
- If (nextCheck = 0) Then ' Next file not in file list, restarting
- startIndex = 1
- nextCheck = C_MAX_CHECK
- newResultsFile = True
- ElseIf (nextCheck < startIndex) Then 'we are done?
- nextCheck = startIndex + C_MAX_CHECK
- ElseIf (nextCheck = startIndex) Then 'skip this one
- WriteToLog C_ERROR_HANDLING_DOC & nextCheck, nextFile
- startIndex = startIndex + 1
- nextCheck = startIndex + C_MAX_CHECK
- Else 'last time an error occured with that file, write before analysing
- nextCheck = nextCheck - 1
- End If
- End If
- GetIndexValues = newResultsFile
-End Function
-
-Private Sub GetDocModificationDates(docCounts As DocModificationDates)
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetDocModificationDates"
-
- docCounts.lessThanThreemonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_3_MONTH, "0", mIniFilePath))
- docCounts.threeToSixmonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_6_MONTH, "0", mIniFilePath))
- docCounts.sixToTwelvemonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_12_MONTH, "0", mIniFilePath))
- docCounts.greaterThanOneYear = CLng(ProfileGetItem("Analysis", C_DOCS_MORE_12_MONTH, "0", mIniFilePath))
-
-FinalExit:
- Exit Sub
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
+Attribute VB_Name = "AnalysisDriver" +'************************************************************************* +' +' Licensed to the Apache Software Foundation (ASF) under one +' or more contributor license agreements. See the NOTICE file +' distributed with this work for additional information +' regarding copyright ownership. The ASF licenses this file +' to you under the Apache License, Version 2.0 (the +' "License"); you may not use this file except in compliance +' with the License. You may obtain a copy of the License at +' +' http://www.apache.org/licenses/LICENSE-2.0 +' +' Unless required by applicable law or agreed to in writing, +' software distributed under the License is distributed on an +' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +' KIND, either express or implied. See the License for the +' specific language governing permissions and limitations +' under the License. +' +'************************************************************************* +Option Explicit + +' Declare Public variables. +Public Type ShortItemId + cb As Long + abID As Byte +End Type + +Public Type ITEMIDLIST + mkid As ShortItemId +End Type + +Public Declare Function FindWindow Lib "user32" Alias _ + "FindWindowA" (ByVal lpClassName As String, _ + ByVal lpWindowName As Long) As Long + +Private Declare Function GetTickCount Lib "kernel32" () As Long + +'This function saves the passed value to the file, +'under the section and key names specified. +'If the ini file, lpFileName, does not exist, it is created. +'If the section, lpSectionName, does not exist, it is created. +'If the key name, lpKeyName, does not exist, it is created. +'If the key name exists, it's value, lpString, is replaced. +Private Declare Function WritePrivateProfileString Lib "kernel32" _ + Alias "WritePrivateProfileStringA" _ + (ByVal lpSectionName As String, _ + ByVal lpKeyName As Any, _ + ByVal lpString As Any, _ + ByVal lpFileName As String) As Long + +Private Declare Function GetPrivateProfileString Lib "kernel32" _ + Alias "GetPrivateProfileStringA" _ + (ByVal lpSectionName As String, _ + ByVal lpKeyName As Any, _ + ByVal lpDefault As String, _ + ByVal lpReturnedString As String, _ + ByVal nSize As Long, _ + ByVal lpFileName As String) As Long + +Private Declare Function UrlEscape Lib "shlwapi" _ + Alias "UrlEscapeA" _ + (ByVal pszURL As String, _ + ByVal pszEscaped As String, _ + pcchEscaped As Long, _ + ByVal dwFlags As Long) As Long + +Public Declare Function SHGetPathFromIDList Lib "shell32.dll" _ + (ByVal pidl As Long, ByVal pszPath As String) As Long + +Public Declare Function SHGetSpecialFolderLocation Lib _ + "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder _ + As Long, pidl As ITEMIDLIST) As Long + +Public Const LOCALE_ILANGUAGE As Long = &H1 'language id +Public Const LOCALE_SLANGUAGE As Long = &H2 'localized name of lang +Public Const LOCALE_SENGLANGUAGE As Long = &H1001 'English name of lang +Public Const LOCALE_SABBREVLANGNAME As Long = &H3 'abbreviated lang name +Public Const LOCALE_SNATIVELANGNAME As Long = &H4 'native name of lang +Public Const LOCALE_ICOUNTRY As Long = &H5 'country code +Public Const LOCALE_SCOUNTRY As Long = &H6 'localized name of country +Public Const LOCALE_SENGCOUNTRY As Long = &H1002 'English name of country +Public Const LOCALE_SABBREVCTRYNAME As Long = &H7 'abbreviated country name +Public Const LOCALE_SNATIVECTRYNAME As Long = &H8 'native name of country +Public Const LOCALE_SINTLSYMBOL As Long = &H15 'intl monetary symbol +Public Const LOCALE_IDEFAULTLANGUAGE As Long = &H9 'def language id +Public Const LOCALE_IDEFAULTCOUNTRY As Long = &HA 'def country code +Public Const LOCALE_IDEFAULTCODEPAGE As Long = &HB 'def oem code page +Public Const LOCALE_IDEFAULTANSICODEPAGE As Long = &H1004 'def ansi code page +Public Const LOCALE_IDEFAULTMACCODEPAGE As Long = &H1011 'def mac code page + +Public Const LOCALE_IMEASURE As Long = &HD '0 = metric, 1 = US +Public Const LOCALE_SSHORTDATE As Long = &H1F 'short date format string + +'#if(WINVER >= &H0400) +Public Const LOCALE_SISO639LANGNAME As Long = &H59 'ISO abbreviated language name +Public Const LOCALE_SISO3166CTRYNAME As Long = &H5A 'ISO abbreviated country name +'#endif /* WINVER >= as long = &H0400 */ + +'#if(WINVER >= &H0500) +Public Const LOCALE_SNATIVECURRNAME As Long = &H1008 'native name of currency +Public Const LOCALE_IDEFAULTEBCDICCODEPAGE As Long = &H1012 'default ebcdic code page +Public Const LOCALE_SSORTNAME As Long = &H1013 'sort name +'#endif /* WINVER >= &H0500 */ + +Public Declare Function GetSystemDefaultLangID Lib "kernel32" () As Long +Public Declare Function GetUserDefaultLangID Lib "kernel32" () As Long + +Public Declare Function GetLocaleInfo Lib "kernel32" _ + Alias "GetLocaleInfoA" _ + (ByVal Locale As Long, _ + ByVal LCType As Long, _ + ByVal lpLCData As String, _ + ByVal cchData As Long) As Long + + +Public Const CWIZARD = "analysis" + +Const CROWOFFSET = 2 +Const CDOCPROP_PAW_ROWOFFSET = 3 +Private mDocPropRowOffset As Long + +Const CNUMBERDOC_ALL = "All" +Const CTOTAL_DOCS_ANALYZED = "TotalDocsAnalysed" +Const CNUMDAYS_IN_MONTH = 30 +Const CMAX_LIMIT = 10000 + +Const CISSUE_DETDOCNAME = 1 +Const CISSUE_DETDOCAPPLICATION = CISSUE_DETDOCNAME + 1 +Const CISSUE_DETTYPE = CISSUE_DETDOCAPPLICATION + 1 +Const CISSUE_DETSUBTYPE = CISSUE_DETTYPE + 1 +Const CISSUE_DETLOCATION = CISSUE_DETSUBTYPE + 1 +Const CISSUE_DETSUBLOCATION = CISSUE_DETLOCATION + 1 +Const CISSUE_DETLINE = CISSUE_DETSUBLOCATION + 1 +Const CISSUE_DETCOLUMN = CISSUE_DETLINE + 1 +Const CISSUE_DETATTRIBUTES = CISSUE_DETCOLUMN + 1 +Const CISSUE_DETNAMEANDPATH = CISSUE_DETATTRIBUTES + 1 + +Const CREF_DETDOCNAME = 1 +Const CREF_DETDOCAPPLICATION = CREF_DETDOCNAME + 1 +Const CREF_DETREFERENCE = CREF_DETDOCAPPLICATION + 1 +Const CREF_DETDESCRIPTION = CREF_DETREFERENCE + 1 +Const CREF_DETLOCATION = CREF_DETDESCRIPTION + 1 +Const CREF_DETATTRIBUTES = CREF_DETLOCATION + 1 +Const CREF_DETNAMEANDPATH = CREF_DETATTRIBUTES + 1 + +Const CINPUT_DIR = "indir" +Const COUTPUT_DIR = "outdir" +Const CRESULTS_FILE = "resultsfile" +Const CLOG_FILE = "logfile" +Const CRESULTS_TEMPLATE = "resultstemplate" +Const CRESULTS_EXIST = "resultsexist" +Const COVERWRITE_FILE = "overwritefile" +Const CNEW_RESULTS_FILE = "newresultsfile" +Const CINCLUDE_SUBDIRS = "includesubdirs" +Const CDEBUG_LEVEL = "debuglevel" +Const COUTPUT_TYPE = "outputtype" +Const COUTPUT_TYPE_XLS = "xls" +Const COUTPUT_TYPE_XML = "xml" +Const COUTPUT_TYPE_BOTH = "both" +Const COVERVIEW_TITLE_LABEL = "OV_Document_Analysis_Overview_lbl" +Const CDEFAULT_PASSWORD = "defaultpassword" +Const CVERSION = "version" +Const CTITLE = "title" +Const CDOPREPARE = "prepare" +Const CISSUES_LIMIT = "issuesmonthlimit" +Const CSINGLE_FILE = "singlefile" +Const CFILE_LIST = "filelist" +Const CSTAT_FILE = "statfilename" +Const C_ABORT_ANALYSIS = "abortanalysis" +Const C_DOCS_LESS_3_MONTH = "DocumentsYoungerThan3Month" +Const C_DOCS_LESS_6_MONTH = "DocumentsYoungerThan6Month" +Const C_DOCS_LESS_12_MONTH = "DocumentsYoungerThan12Month" +Const C_DOCS_MORE_12_MONTH = "DocumentsOlderThan12Month" + +Private Const C_ANALYSIS As String = "Analysis" +Private Const C_LAST_CHECKPOINT As String = "LastCheckpoint" +Private Const C_NEXT_FILE As String = "NextFile" +Private Const C_MAX_CHECK_INI As String = "FilesBeforeSave" +Private Const C_MAX_WAIT_BEFORE_WRITE_INI As String = "SecondsBeforeSave" +Private Const C_MAX_RANGE_PROCESS_TIME_INI As String = "ExcelMaxRangeProcessTime" +Private Const C_ERROR_HANDLING_DOC As String = "_ERROR_HANDLING_DOC_" +Private Const C_MAX_CHECK As Long = 100 +Private Const C_MAX_WAIT_BEFORE_WRITE As Long = 300 ' sec +Private Const C_MAX_RANGE_PROCESS_TIME As Integer = 30 'sec + +Private Const C_STAT_STARTING As Integer = 1 +Private Const C_STAT_DONE As Integer = 2 +Private Const C_STAT_FINISHED As Integer = 3 + +Private Type DocumentCount + numDocsAnalyzed As Long + numDocsAnalyzedWithIssues As Long + numMinorIssues As Long + numComplexIssues As Long + numMacroIssues As Long + numPreparableIssues As Long + totalMacroCosts As Long + totalDocIssuesCosts As Long + totalPreparableIssuesCosts As Long +End Type + +Private Type DocModificationDates + lessThanThreemonths As Long + threeToSixmonths As Long + sixToTwelvemonths As Long + greaterThanOneYear As Long +End Type + +Private Type DocMacroClassifications + None As Long + Simple As Long + Medium As Long + complex As Long +End Type + +Private Type DocIssueClassifications + None As Long + Minor As Long + complex As Long +End Type + +Const CCOST_COL_OFFSET = -1 + +Private mLogFilePath As String +Private mDocIndex As String +Private mDebugLevel As Long +Private mIniFilePath As String +Private mUserFormTypesDict As Scripting.Dictionary +Private mIssuesDict As Scripting.Dictionary +Private mMacroDict As Scripting.Dictionary +Private mPreparedIssuesDict As Scripting.Dictionary +Private mIssuesClassificationDict As Scripting.Dictionary +Private mIssuesCostDict As Scripting.Dictionary +Private mIssuesLimit As Date + +Public Const CWORD_DRIVER_FILE = "_OOoDocAnalysisWordDriver.doc" +Public Const CEXCEL_DRIVER_FILE = "_OOoDocAnalysisExcelDriver.xls" +Public Const CPP_DRIVER_FILE = "_OOoDocAnalysisPPTDriver.ppt" +Public Const CWORD_DRIVER_FILE_TEMP = "~$OoDocAnalysisWordDriver.doc" +Public Const CEXCEL_DRIVER_FILE_TEMP = "~$OoDocAnalysisExcelDriver.xls" +Public Const CPP_DRIVER_FILE_TEMP = "~$OoDocAnalysisPPTDriver.ppt" + +'Doc Properties Offsets - used in WriteDocProperties and GetPreparableFilesFromDocProps +Const CDOCINFONAME = 1 +Const CDOCINFOAPPLICATION = CDOCINFONAME + 1 + +Const CDOCINFOISSUE_CLASS = CDOCINFOAPPLICATION + 1 +Const CDOCINFOCOMPLEXISSUES = CDOCINFOISSUE_CLASS + 1 +Const CDOCINFOMINORISSUES = CDOCINFOCOMPLEXISSUES + 1 +Const CDOCINFOPREPAREDISSUES = CDOCINFOMINORISSUES + 1 + +Const CDOCINFOMACRO_CLASS = CDOCINFOPREPAREDISSUES + 1 +Const CDOCINFOMACRO_USERFORMS = CDOCINFOMACRO_CLASS + 1 +Const CDOCINFOMACRO_LINESOFCODE = CDOCINFOMACRO_USERFORMS + 1 + +Const CDOCINFODOCISSUECOSTS = CDOCINFOMACRO_LINESOFCODE + 1 +Const CDOCINFOPREPARABLEISSUECOSTS = CDOCINFODOCISSUECOSTS + 1 +Const CDOCINFOMACROISSUECOSTS = CDOCINFOPREPARABLEISSUECOSTS + 1 + +Const CDOCINFONUMBERPAGES = CDOCINFOMACROISSUECOSTS + 1 +Const CDOCINFOCREATED = CDOCINFONUMBERPAGES + 1 +Const CDOCINFOLASTMODIFIED = CDOCINFOCREATED + 1 +Const CDOCINFOLASTACCESSED = CDOCINFOLASTMODIFIED + 1 +Const CDOCINFOLASTPRINTED = CDOCINFOLASTACCESSED + 1 +Const CDOCINFOLASTSAVEDBY = CDOCINFOLASTPRINTED + 1 +Const CDOCINFOREVISION = CDOCINFOLASTSAVEDBY + 1 +Const CDOCINFOTEMPLATE = CDOCINFOREVISION + 1 +Const CDOCINFONAMEANDPATH = CDOCINFOTEMPLATE + 1 + +'Overview shapes +Const COV_DOC_MOD_DATES_CHART = "Chart 21" +Const COV_DOC_MACRO_CHART = "Chart 22" +Const COV_DOC_ANALYSIS_CHART = "Chart 23" + +Const COV_DOC_MOD_DATES_COMMENT_TXB = "Text Box 25" +Const COV_DOC_MOD_DATES_LEGEND_TXB = "Text Box 12" + +Const COV_DOC_MACRO_COMMENT_TXB = "Text Box 26" +Const COV_DOC_MACRO_LEGEND_TXB = "Text Box 16" + +Const COV_DOC_ANALYSIS_COMMENT_TXB = "Text Box 27" +Const COV_DOC_ANALYSIS_LEGEND_DAW_TXB = "Text Box 28" +Const COV_DOC_ANALYSIS_LEGEND_PAW_TXB = "Text Box 18" + +Const COV_HIGH_LEVEL_ANALYSIS_RANGE = "OV_High_Level_Analysis_Range" +Const COV_COST_RANGE = "OV_Cost_Range" + +'Sheet labels +Const COV_HIGH_LEVEL_ANALYSIS_LBL = "OV_High_level_analysis_lbl" +Const COV_DP_PREPISSUES_COL_LBL = "DocProperties_PreparedIssues_Column" +Const COV_COSTS_PREPISSUE_COUNT_COL_LBL = "Costs_PreparedIssueCount_Column" +Const CDP_DAW_HIDDEN_COLS_LBL = "DP_DAW_HIDDEN_COLS_RANGE" +Const CDP_DAW_HIDDEN_COLS2_LBL = "DP_DAW_HIDDEN_COLS_RANGE2" +Const CDP_DAW_HIDDEN_ROW_LBL = "DP_DAW_HIDDEN_ROW_RANGE" + +Const COV_DAW_SETUP_SHEETS_RUN_LBL = "OV_DAW_SETUP_SHEETS_RUN" +Const COV_PAW_SETUP_SHEETS_RUN_LBL = "OV_PAW_SETUP_SHEETS_RUN" +Const COV_Internal_Attributes_Cols_LBL = "OV_Internal_Attributes_Cols" + +Const CR_STR = "<CR>" +Const CR_TOPIC = "<TOPIC>" +Const CR_PRODUCT = "<PRODUCT>" + +Const CLEGEND_FONT_SIZE = 8 +Const CCOMMENTS_FONT_SIZE = 10 + +Dim mTstart As Single +Dim mTend As Single +Public gExcelMaxRangeProcessTime As Integer + +Sub AnalyseDirectory() + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AnalyseDirectory" + + Dim iniFilePath As String + Dim startDir As String + Dim fileList As String + Dim storeToDir As String + Dim resultsFile As String + Dim resultsTemplate As String + Dim statFileName As String + Dim bOverwriteResultsFile As Boolean + Dim bNewResultsFile As Boolean + Dim outputType As String + Dim singleFile As String + Dim nTimeNeeded As Long + Dim nIncrementFileCounter As Long + Dim nMaxWaitBeforeWrite As Long + Dim fso As Scripting.FileSystemObject + Set fso = New Scripting.FileSystemObject + + SetAppToMinimized + + If InDocPreparation Then + mDocPropRowOffset = CDOCPROP_PAW_ROWOFFSET + Else + mDocPropRowOffset = CROWOFFSET + End If + + 'Get Wizard input variables + SetupWizardVariables fileList, storeToDir, resultsFile, _ + mLogFilePath, resultsTemplate, bOverwriteResultsFile, bNewResultsFile, _ + statFileName, mDebugLevel, outputType, singleFile + + startDir = ProfileGetItem("Analysis", CINPUT_DIR, "", mIniFilePath) + + nIncrementFileCounter = CLng(ProfileGetItem("Analysis", _ + C_MAX_CHECK_INI, C_MAX_CHECK, mIniFilePath)) + nMaxWaitBeforeWrite = CLng(ProfileGetItem("Analysis", _ + C_MAX_WAIT_BEFORE_WRITE_INI, C_MAX_WAIT_BEFORE_WRITE, mIniFilePath)) + gExcelMaxRangeProcessTime = CInt(ProfileGetItem("Analysis", _ + C_MAX_RANGE_PROCESS_TIME_INI, C_MAX_RANGE_PROCESS_TIME, mIniFilePath)) + LocalizeResources + + 'Setup File List + 'For Prepare - get list from results spreadsheet with docs analysis found as preparable + 'If no results spreadsheet then just try to prepare all the docs - run over full analysis list + Dim myFiles As Collection + Set myFiles = New Collection + Dim sAnalysisOrPrep As String + If InDocPreparation And CheckDoPrepare Then + sAnalysisOrPrep = "Prepared" + If fso.FileExists(storeToDir & "\" & resultsFile) Then + If Not GetPrepareFilesToAnalyze(storeToDir & "\" & resultsFile, myFiles, fso) Then + SetPrepareToNone + WriteDebug currentFunctionName & ": No files to analyse!" + GoTo FinalExit 'No files to prepare - exit + End If + Else + If Not GetFilesToAnalyze(fileList, singleFile, myFiles) Then + SetPrepareToNone + WriteDebug currentFunctionName & ": No files to analyse! Filelist (" & fileList & ") empty?" + GoTo FinalExit 'No files to prepare - exit + End If + End If + Else + sAnalysisOrPrep = "Analyzed" + If Not GetFilesToAnalyze(fileList, singleFile, myFiles) Then + WriteDebug currentFunctionName & ": No files to analyse! Filelist (" & fileList & ") empty?" + GoTo FinalExit + End If + End If + + Dim index As Long + Dim numFiles As Long + Dim nextSave As Long + Dim startIndex As Long + Dim bResultsWaiting As Boolean + Dim AnalysedDocs As Collection + Dim startDate As Date + Dim currentDate As Date + + Set AnalysedDocs = New Collection + numFiles = myFiles.count + bResultsWaiting = False + + If (singleFile <> "") Then + ' No recovery handling for single file analysis and the value in the + ' ini file should be used for bNewResultsFile + startIndex = 1 + Else + bNewResultsFile = bNewResultsFile And GetIndexValues(startIndex, nextSave, myFiles) + End If + + startDate = Now() + + ' Analyse all files + For index = startIndex To numFiles + Set mIssuesClassificationDict = New Scripting.Dictionary + mIssuesClassificationDict.CompareMode = TextCompare + Set mIssuesCostDict = New Scripting.Dictionary + 'mIssuesCostDict.CompareMode = TextCompare + + Set mUserFormTypesDict = New Scripting.Dictionary + Set mIssuesDict = New Scripting.Dictionary + Set mMacroDict = New Scripting.Dictionary + Set mPreparedIssuesDict = New Scripting.Dictionary + + 'Write to Application log + Dim myAnalyser As MigrationAnalyser + Set myAnalyser = New MigrationAnalyser + + If (CheckForAbort) Then GoTo FinalExit + + 'Log Analysis + WriteToStatFile statFileName, C_STAT_STARTING, myFiles.item(index), fso + WriteToLog "Analyzing", myFiles.item(index) + WriteToIni C_NEXT_FILE, myFiles.item(index) + mDocIndex = index + + 'Do Analysis + myAnalyser.DoAnalyse myFiles.item(index), mUserFormTypesDict, startDir, storeToDir, fso + + AnalysedDocs.Add myAnalyser.Results + bResultsWaiting = True + + WriteToLog sAnalysisOrPrep, index & "of" & numFiles & _ + " " & getAppSpecificApplicationName & " Documents" + WriteToLog "Analyzing", "Done" + WriteToLog sAnalysisOrPrep & "Doc" & index, myFiles.item(index) + Set myAnalyser = Nothing + + If (CheckForAbort) Then GoTo FinalExit + + 'No need to output results spreadsheet, just doing prepare + If CheckDoPrepare Then GoTo CONTINUE_FOR + + nTimeNeeded = val(DateDiff("s", startDate, Now())) + If ((nTimeNeeded > nMaxWaitBeforeWrite) Or _ + (index >= nextSave)) Then + If WriteResults(storeToDir, resultsFile, resultsTemplate, _ + bOverwriteResultsFile, bNewResultsFile, _ + outputType, AnalysedDocs, fso) Then + nextSave = index + C_MAX_CHECK + bResultsWaiting = False + Set AnalysedDocs = New Collection + WriteToIni C_LAST_CHECKPOINT, myFiles.item(index) + startDate = Now() + Else + 'write error + End If + End If + WriteToStatFile statFileName, C_STAT_DONE, myFiles.item(index), fso +CONTINUE_FOR: + Next index + + If (bResultsWaiting) Then + If WriteResults(storeToDir, resultsFile, resultsTemplate, _ + bOverwriteResultsFile, bNewResultsFile, _ + outputType, AnalysedDocs, fso) Then + WriteToIni C_LAST_CHECKPOINT, myFiles.item(index - 1) + Else + 'write error + End If + End If + WriteToStatFile statFileName, C_STAT_FINISHED, "", fso + +FinalExit: + + Set fso = Nothing + Set myFiles = Nothing + Set mIssuesClassificationDict = Nothing + Set mIssuesCostDict = Nothing + Set mUserFormTypesDict = Nothing + Set mIssuesDict = Nothing + Set mMacroDict = Nothing + Set mPreparedIssuesDict = Nothing + + Set AnalysedDocs = Nothing + + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Function WriteResults(storeToDir As String, resultsFile As String, resultsTemplate As String, _ + bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, _ + outputType As String, AnalysedDocs As Collection, _ + fso As FileSystemObject) As Boolean + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteResults" + + If InDocPreparation Then + If outputType = COUTPUT_TYPE_XML Or outputType = COUTPUT_TYPE_BOTH Then + WriteXMLOutput storeToDir, resultsFile, _ + bOverwriteResultsFile, bNewResultsFile, AnalysedDocs, fso + End If + End If + + If outputType = COUTPUT_TYPE_XLS Or outputType = COUTPUT_TYPE_BOTH Then + WriteXLSOutput storeToDir, resultsFile, fso.GetAbsolutePathName(resultsTemplate), _ + bOverwriteResultsFile, bNewResultsFile, AnalysedDocs, fso + End If + + WriteResults = True + bNewResultsFile = False + +FinalExit: + Exit Function + +HandleErrors: + WriteResults = False + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetFilesToAnalyze_old(startDir As String, bIncludeSubdirs As Boolean, _ + myFiles As Collection) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetFilesToAnalyze" + Dim fso As New FileSystemObject + Dim theResultsFile As String + theResultsFile = ProfileGetItem("Analysis", CINPUT_DIR, "c:\", mIniFilePath) & "\" & ProfileGetItem("Analysis", CRESULTS_FILE, "", mIniFilePath) + + GetFilesToAnalyze = False + + Dim searchTypes As Collection + Set searchTypes = New Collection + SetupSearchTypes searchTypes + If searchTypes.count = 0 Then + GoTo FinalExit + End If + + Dim myDocFiles As CollectedFiles + Set myDocFiles = New CollectedFiles + With myDocFiles + .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CWORD_DRIVER_FILE) + .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CEXCEL_DRIVER_FILE) + .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CPP_DRIVER_FILE) + .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CWORD_DRIVER_FILE_TEMP) + .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CEXCEL_DRIVER_FILE_TEMP) + .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CPP_DRIVER_FILE_TEMP) + .BannedList.Add theResultsFile + End With + myDocFiles.Search rootDir:=startDir, FileSpecs:=searchTypes, _ + IncludeSubdirs:=bIncludeSubdirs + + If getAppSpecificApplicationName = CAPPNAME_WORD Then + Set myFiles = myDocFiles.WordFiles + ElseIf getAppSpecificApplicationName = CAPPNAME_EXCEL Then + Set myFiles = myDocFiles.ExcelFiles + ElseIf getAppSpecificApplicationName = CAPPNAME_POWERPOINT Then + Set myFiles = myDocFiles.PowerPointFiles + Else + WriteDebug currentFunctionName & " : invalid application " & getAppSpecificApplicationName + GoTo FinalExit + End If + + GetFilesToAnalyze = True + +FinalExit: + Set searchTypes = Nothing + Set myDocFiles = Nothing + + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetFilesToAnalyze(fileList As String, startFile As String, _ + myFiles As Collection) As Boolean + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetFilesToAnalyze" + + Dim fso As New FileSystemObject + Dim fileContent As TextStream + Dim fileName As String + + GetFilesToAnalyze = False + + If (startFile = "") Then + If (fso.FileExists(fileList)) Then + Set fileContent = fso.OpenTextFile(fileList, ForReading, False, TristateTrue) + While (Not fileContent.AtEndOfStream) + fileName = fileContent.ReadLine + fileName = Trim(fileName) + If (fileName <> "") Then + myFiles.Add (fileName) + End If + Wend + fileContent.Close + End If + Else + myFiles.Add (startFile) + End If + + If (myFiles.count <> 0) Then GetFilesToAnalyze = True + +FinalExit: + Set fileContent = Nothing + Set fso = Nothing + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetPrepareFilesToAnalyze(resultsFilePath As String, myFiles As Collection, _ + fso As FileSystemObject) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetPrepareFilesToAnalyze" + + GetPrepareFilesToAnalyze = False + + If Not fso.FileExists(resultsFilePath) Then + WriteDebug currentFunctionName & ": results file does not exist : " & resultsFilePath + GoTo FinalExit + End If + + 'Open results spreadsheet + Dim xl As Excel.Application + If getAppSpecificApplicationName = CAPPNAME_EXCEL Then + Set xl = Application + xl.Visible = True + Else + Set xl = GetExcelInstance + xl.Visible = False + End If + Dim logWb As WorkBook + Set logWb = xl.Workbooks.Open(resultsFilePath) + + Dim wsDocProp As Worksheet + Set wsDocProp = logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP) + + Dim startRow As Long + Dim endRow As Long + startRow = mDocPropRowOffset + 1 + endRow = GetWorkbookNameValueAsLong(logWb, CTOTAL_DOCS_ANALYZED) + mDocPropRowOffset + + GetPreparableFilesFromDocProps wsDocProp, startRow, endRow, fso, myFiles + + GetPrepareFilesToAnalyze = (myFiles.count > 0) + +FinalExit: + Set wsDocProp = Nothing + If Not logWb Is Nothing Then logWb.Close + Set logWb = Nothing + + If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then + If Not xl Is Nothing Then + If xl.Workbooks.count = 0 Then + xl.Quit + End If + End If + End If + Set xl = Nothing + + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetPreparableFilesFromDocProps(wsDocProp As Worksheet, startRow As Long, _ + endRow As Long, fso As FileSystemObject, myFiles As Collection) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetPreparableFilesFromDocProps" + GetPreparableFilesFromDocProps = False + + Dim index As Long + Dim fileName As String + Dim fileExt As String + Dim docExt As String + Dim templateExt As String + + docExt = getAppSpecificDocExt + templateExt = getAppSpecificTemplateExt + + For index = startRow To endRow + If GetWorksheetCellValueAsLong(wsDocProp, index, CDOCINFOPREPAREDISSUES) > 0 Then + fileName = GetWorksheetCellValueAsString(wsDocProp, index, CDOCINFONAME) + fileExt = "." & fso.GetExtensionName(fileName) + 'Don't have to worry about search types - just looking at existing results + 'so just check both legal extensions for this application + If fileExt = docExt Or fileExt = templateExt Then + myFiles.Add GetWorksheetCellValueAsString(wsDocProp, index, CDOCINFONAMEANDPATH) + End If + End If + Next index + + GetPreparableFilesFromDocProps = myFiles.count > 0 +FinalExit: + Exit Function + +HandleErrors: + GetPreparableFilesFromDocProps = False + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Sub OpenXLSResultFile(resultsFile As String, _ + resultsTemplate As String, _ + bNewResultsFile As Boolean, _ + excelApp As Excel.Application, _ + resultSheet As Excel.WorkBook) + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OpenXLSResultFile" + + If getAppSpecificApplicationName = CAPPNAME_EXCEL Then + Set excelApp = Application + excelApp.Visible = True + Else + Set excelApp = GetExcelInstance + excelApp.Visible = False + End If + + If bNewResultsFile Then + Set resultSheet = excelApp.Workbooks.Add(Template:=resultsTemplate) + Localize_WorkBook resultSheet + Else + Set resultSheet = excelApp.Workbooks.Open(resultsFile) + End If + +FinalExit: + Exit Sub + +HandleErrors: + excelApp.DisplayAlerts = False + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub CloseXLSResultFile(excelApp As Excel.Application, _ + resultSheet As Excel.WorkBook) + + On Error Resume Next + + If Not resultSheet Is Nothing Then resultSheet.Close + Set resultSheet = Nothing + + If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then + If Not excelApp Is Nothing Then + excelApp.Visible = True + If excelApp.Workbooks.count = 0 Then + excelApp.Quit + End If + End If + End If + Set excelApp = Nothing + + Exit Sub +End Sub + +Sub WriteXLSOutput(storeToDir As String, resultsFile As String, resultsTemplate As String, _ + bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, AnalysedDocs As Collection, _ + fso As Scripting.FileSystemObject) + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXLSOutput" + + Dim offsetDocPropRow As Long + Dim offsetDocIssuesRow As Long + Dim offsetDocIssueDetailsRow As Long + Dim offsetDocRefDetailsRow As Long + + Const COVERVIEW_SHEET_IDX = 1 + Const CDOCLIST_SHEET_IDX = 2 + Const CISSUES_ANALYSED_SHEET = 3 + Const CISSUE_DETAILS_SHEET = 4 + Const CWORD_ISSUES_SHEET = 5 + Const CEXCEL_ISSUES_SHEET = 6 + Const CPOWERPOINT_ISSUES_SHEET = 7 + Const CREFERENCE_ISSUES_SHEET = 8 + + 'Begin writing stats to excel + Dim xl As Excel.Application + If getAppSpecificApplicationName = CAPPNAME_EXCEL Then + Set xl = Application + xl.Visible = True + Else + Set xl = GetExcelInstance + xl.Visible = False + End If + + Dim logWb As WorkBook + + If bNewResultsFile Then + Set logWb = xl.Workbooks.Add(Template:=resultsTemplate) + Localize_WorkBook logWb + Else + Set logWb = xl.Workbooks.Open(storeToDir & "\" & resultsFile) + End If + + SetupAnalysisResultsVariables logWb, offsetDocPropRow, _ + offsetDocIssuesRow, offsetDocIssueDetailsRow, offsetDocRefDetailsRow + + ' Iterate through results and write info + Dim aAnalysis As DocumentAnalysis + Dim row As Long + Dim docCounts As DocumentCount + Dim templateCounts As DocumentCount + + Dim issuesRow As Long + Dim issueDetailsRow As Long + Dim refDetailsRow As Long + + Dim wsOverview As Worksheet + Dim wsCosts As Worksheet + Dim wsPgStats As Worksheet + Dim wsIssues As Worksheet + Dim wsIssueDetails As Worksheet + Dim wsRefDetails As Worksheet + + Set wsOverview = logWb.Sheets(COVERVIEW_SHEET_IDX) + Set wsPgStats = logWb.Sheets(CDOCLIST_SHEET_IDX) + + 'Some localized names might be longer than 31 chars, excel doesn't + 'allow such names! + On Error Resume Next + wsOverview.name = RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW + wsPgStats.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP + On Error GoTo HandleErrors + + If InDocPreparation Then + Set wsCosts = logWb.Sheets(CISSUES_ANALYSED_SHEET) + Dim appName As String + appName = getAppSpecificApplicationName + Select Case appName + Case "Word" + Set wsIssues = logWb.Worksheets(CWORD_ISSUES_SHEET) + Case "Excel" + Set wsIssues = logWb.Worksheets(CEXCEL_ISSUES_SHEET) + Case "PowerPoint" + Set wsIssues = logWb.Worksheets(CPOWERPOINT_ISSUES_SHEET) + Case Default + Err.Raise Number:=-1, Description:="BadAppName" + End Select + Set wsIssueDetails = logWb.Sheets(CISSUE_DETAILS_SHEET) + Set wsRefDetails = logWb.Sheets(CREFERENCE_ISSUES_SHEET) + issuesRow = 1 + CROWOFFSET + offsetDocIssuesRow + issueDetailsRow = 1 + CROWOFFSET + offsetDocIssueDetailsRow + refDetailsRow = 1 + CROWOFFSET + offsetDocRefDetailsRow + ' localize PAW worksheets + Dim wsWordIssues As Worksheet + Dim wsExcelIssues As Worksheet + Dim wsPowerPointIssues As Worksheet + Set wsWordIssues = logWb.Worksheets(CWORD_ISSUES_SHEET) + Set wsExcelIssues = logWb.Worksheets(CEXCEL_ISSUES_SHEET) + Set wsPowerPointIssues = logWb.Worksheets(CPOWERPOINT_ISSUES_SHEET) + + On Error Resume Next + wsCosts.name = RID_STR_COMMON_RESULTS_SHEET_NAME_COSTS + wsIssueDetails.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS + wsRefDetails.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS + wsWordIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD + wsExcelIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL + wsPowerPointIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT + On Error GoTo HandleErrors + End If + + Dim fileName As String + Dim macroClasses As DocMacroClassifications + Dim issueClasses As DocIssueClassifications + + For row = 1 To AnalysedDocs.count 'Need Row count - so not using Eor Each + Set aAnalysis = AnalysedDocs.item(row) + fileName = fso.GetFileName(aAnalysis.name) + + If InDocPreparation Then + issuesRow = WriteDocIssues(wsIssues, issuesRow, aAnalysis, fileName) + issueDetailsRow = _ + ProcessIssuesAndWriteDocIssueDetails(logWb, wsIssueDetails, issueDetailsRow, aAnalysis, fileName) + refDetailsRow = _ + WriteDocRefDetails(wsRefDetails, refDetailsRow, aAnalysis, fileName) + aAnalysis.MacroCosts = getMacroIssueCosts(logWb, aAnalysis) + WriteDocProperties wsPgStats, row + offsetDocPropRow, aAnalysis, fileName + Else + ProcessIssuesForDAW logWb, aAnalysis, fileName + WriteDocProperties wsPgStats, row + offsetDocPropRow, aAnalysis, fileName + End If + + UpdateAllCounts aAnalysis, docCounts, templateCounts, macroClasses, issueClasses, fso + + Set aAnalysis = Nothing + Next row + + ' We change the font used for text box shapes here for the japanese + ' version, because office 2000 sometimes displays squares instead of + ' chars + Dim langStr As String + Dim userLCID As Long + Dim textSize As Long + Dim fontName As String + + userLCID = GetUserDefaultLangID() + langStr = GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME) + + If (langStr = "ja") Then + WriteDebug currentFunctionName & " : Setting font to MS PGothic for 'ja' locale" + fontName = "MS PGothic" + textSize = 10 + Else + fontName = "Arial" + textSize = CLEGEND_FONT_SIZE + End If + + 'DAW - PAW switches + If InDocPreparation Then + SaveAnalysisResultsVariables logWb, issueDetailsRow - (1 + CROWOFFSET), _ + refDetailsRow - (1 + CROWOFFSET) + + WriteOverview logWb, docCounts, templateCounts, macroClasses, issueClasses + + SetupPAWResultsSpreadsheet logWb, fontName, textSize + WriteIssueCounts logWb + Else + WriteOverview logWb, docCounts, templateCounts, macroClasses, issueClasses + + 'StartTiming + SetupDAWResultsSpreadsheet logWb, fontName, textSize + 'EndTiming "SetupDAWResultsSpreadsheet" + End If + + SetupPrintRanges logWb, row, issuesRow, issueDetailsRow, refDetailsRow + + If resultsFile <> "" Then + 'Overwrite existing results file without prompting + If bOverwriteResultsFile Or (Not bNewResultsFile) Then + xl.DisplayAlerts = False + End If + + logWb.SaveAs fileName:=storeToDir & "\" & resultsFile + xl.DisplayAlerts = True + End If + +FinalExit: + If Not xl Is Nothing Then + xl.Visible = True + End If + + Set wsOverview = Nothing + Set wsPgStats = Nothing + + If InDocPreparation Then + Set wsCosts = Nothing + Set wsIssues = Nothing + Set wsIssueDetails = Nothing + Set wsRefDetails = Nothing + End If + + If Not logWb Is Nothing Then logWb.Close + Set logWb = Nothing + + If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then + If Not xl Is Nothing Then + If xl.Workbooks.count = 0 Then + xl.Quit + End If + End If + End If + Set xl = Nothing + + Exit Sub + +HandleErrors: + xl.DisplayAlerts = False + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Public Sub StartTiming() + mTstart = 0 + mTend = 0 + mTstart = GetTickCount() +End Sub +Public Sub EndTiming(what As String) + mTend = GetTickCount() + WriteDebug "Timing: " & what & ": " & (FormatNumber((mTend - mTstart) / 1000, 0) & " seconds") + mTstart = 0 + mTend = 0 +End Sub +Sub WriteIssueCounts(logWb As WorkBook) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteIssueCounts" + + Dim Str As String + Dim str1 As String + Dim val1 As Long + Dim count As Long + Dim vKeyArray As Variant + Dim vItemArray As Variant + Dim vPrepKeyArray As Variant + Dim vPrepItemArray As Variant + + vKeyArray = mIssuesDict.Keys + vItemArray = mIssuesDict.Items + + vPrepKeyArray = mPreparedIssuesDict.Keys + vPrepItemArray = mPreparedIssuesDict.Items + + 'Write Issue Counts across all Documents + For count = 0 To mIssuesDict.count - 1 + str1 = vKeyArray(count) + val1 = CInt(vItemArray(count)) + logWb.Names(str1).RefersToRange.Cells(1, 1) = _ + logWb.Names(str1).RefersToRange.Cells(1, 1).value + vItemArray(count) + 'DEBUG: str = str & "Key: " & str1 & " Value: " & val1 & vbLf + Next count + + 'Write Prepared Issues Counts across all Documents + For count = 0 To mPreparedIssuesDict.count - 1 + str1 = vPrepKeyArray(count) + val1 = CInt(vPrepItemArray(count)) + AddVariantToWorkbookNameValue logWb, str1, vPrepItemArray(count) + 'DEBUG: str = str & "Key: " & str1 & " Value: " & val1 & vbLf + Next count + + 'User Form control type count across all analyzed documents of this type + str1 = getAppSpecificApplicationName & "_" & _ + CSTR_ISSUE_VBA_MACROS & "_" & _ + CSTR_SUBISSUE_PROPERTIES & "_" & _ + CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROLTYPE_COUNT + SetWorkbookNameValueToLong logWb, str1, mUserFormTypesDict.count + + 'Add list of User Form controls and counts to ...USERFORMS_CONTROLTYPE_COUNT field + If mUserFormTypesDict.count > 0 Then + vKeyArray = mUserFormTypesDict.Keys + vItemArray = mUserFormTypesDict.Items + + Str = RID_STR_COMMON_ATTRIBUTE_CONTROLS & ": " + For count = 0 To mUserFormTypesDict.count - 1 + Str = Str & vbLf & vKeyArray(count) & " " & vItemArray(count) + Next count + WriteUserFromControlTypesComment logWb, str1, Str + End If + 'DEBUG: MsgBox str & vbLf & mIssuesDict.count + + WriteUniqueModuleCount logWb + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : logging costs : " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub WriteUniqueModuleCount(logWb As WorkBook) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteUniqueModuleCount" + + Dim strLabel As String + Dim uniqueLineCount As Long + Dim uniqueModuleCount As Long + Dim count As Long + Dim vItemArray As Variant + + vItemArray = mMacroDict.Items + + 'Write Issues Costs + uniqueLineCount = 0 + For count = 0 To mMacroDict.count - 1 + uniqueLineCount = uniqueLineCount + CInt(vItemArray(count)) + Next count + uniqueModuleCount = mMacroDict.count + + + strLabel = getAppSpecificApplicationName & "_" & _ + CSTR_ISSUE_VBA_MACROS & "_" & _ + CSTR_SUBISSUE_PROPERTIES & "_" & _ + CSTR_SUBISSUE_VBA_MACROS_UNIQUE_MODULE_COUNT + SetWorkbookNameValueToLong logWb, strLabel, uniqueModuleCount + + strLabel = getAppSpecificApplicationName & "_" & _ + CSTR_ISSUE_VBA_MACROS & "_" & _ + CSTR_SUBISSUE_PROPERTIES & "_" & _ + CSTR_SUBISSUE_VBA_MACROS_UNIQUE_LINE_COUNT + SetWorkbookNameValueToLong logWb, strLabel, uniqueLineCount + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : logging Unique Module/ Line Counts : " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteUserFromControlTypesComment(logWb As WorkBook, name As String, comment As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteUserFromControlTypesComment" + + On Error Resume Next 'Ignore error if trying to add comment again - would happen on append to results + logWb.Names(name).RefersToRange.Cells(1, 1).AddComment + + On Error GoTo HandleErrors + logWb.Names(name).RefersToRange.Cells(1, 1).comment.Text Text:=comment + 'Autosize not supported - Office 2000 + 'logWb.Names(name).RefersToRange.Cells(1, 1).comment.AutoSize = True + logWb.Names(name).RefersToRange.Cells(1, 1).comment.Visible = False + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : name : " & name & _ + " : comment : " & comment & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub UpdateAllCounts(aAnalysis As DocumentAnalysis, counts As DocumentCount, templateCounts As DocumentCount, _ + macroClasses As DocMacroClassifications, issueClasses As DocIssueClassifications, _ + fso As FileSystemObject) + Const CMODDATE_LESS3MONTHS = 91 + Const CMODDATE_LESS6MONTHS = 182 + Const CMODDATE_LESS12MONTHS = 365 + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "UpdateAllCounts" + 'DocIssue Classification occurs in setDocOverallIssueClassification under + ' ProcessIssuesAndWriteDocIssueDetails when all DocIssues are being traversed. + 'MacroClass for the Doc is setup at the end of the Analyze_Macros in DoAnalysis + 'Mod Dates are determined in SetDocProperties in DoAnalysis + + 'DocMacroClassifications + Select Case aAnalysis.MacroOverallClass + Case enMacroComplex + macroClasses.complex = macroClasses.complex + 1 + Case enMacroMedium + macroClasses.Medium = macroClasses.Medium + 1 + Case enMacroSimple + macroClasses.Simple = macroClasses.Simple + 1 + Case Else + macroClasses.None = macroClasses.None + 1 + End Select + + 'DocIssueClassifications + aAnalysis.BelowIssuesLimit = True + Select Case aAnalysis.DocOverallIssueClass + Case enComplex + issueClasses.complex = issueClasses.complex + 1 + Case enMinor + issueClasses.Minor = issueClasses.Minor + 1 + Case Else + issueClasses.None = issueClasses.None + 1 + End Select + + 'DocumentCounts + Dim extStr As String + extStr = "." & LCase(fso.GetExtensionName(aAnalysis.name)) + If extStr = getAppSpecificDocExt Then + UpdateDocCounts counts, aAnalysis + ElseIf extStr = getAppSpecificTemplateExt Then + UpdateDocCounts templateCounts, aAnalysis + Else + WriteDebug currentFunctionName & " : path " & aAnalysis.name & _ + ": unhandled file extesnion " & extStr & " : " & Err.Number & " " & Err.Description & " " & Err.Source + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub UpdateDocCounts(counts As DocumentCount, aAnalysis As DocumentAnalysis) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "UpdateDocCounts" + + counts.numDocsAnalyzed = counts.numDocsAnalyzed + 1 + If aAnalysis.IssuesCount > 0 Then 'During Analysis incremented + counts.numDocsAnalyzedWithIssues = counts.numDocsAnalyzedWithIssues + 1 + + If aAnalysis.BelowIssuesLimit Then + counts.numMinorIssues = _ + counts.numMinorIssues + aAnalysis.MinorIssuesCount + 'MinorIssuesCount incemented as all DocIssues are being traversed are being written out - ProcessIssuesAndWriteDocIssueDetails + counts.numComplexIssues = counts.numComplexIssues + aAnalysis.ComplexIssuesCount 'Calculated + counts.totalDocIssuesCosts = counts.totalDocIssuesCosts + _ + aAnalysis.DocIssuesCosts + counts.totalPreparableIssuesCosts = counts.totalPreparableIssuesCosts + _ + aAnalysis.PreparableIssuesCosts + End If + + counts.numMacroIssues = counts.numMacroIssues + aAnalysis.MacroIssuesCount 'During Analysis incremented + counts.totalMacroCosts = counts.totalMacroCosts + aAnalysis.MacroCosts + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + + +Sub WriteDocProperties(wsPgStats As Worksheet, row As Long, aAnalysis As DocumentAnalysis, _ + fileName As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteDocProperties" + + Dim rowIndex As Long + rowIndex = row + mDocPropRowOffset + + If aAnalysis.Application = RID_STR_COMMON_CANNOT_OPEN Then + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name + + GoTo FinalExit + End If + + If InDocPreparation Then + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application + + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFODOCISSUECOSTS, aAnalysis.DocIssuesCosts + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOPREPARABLEISSUECOSTS, aAnalysis.PreparableIssuesCosts + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACROISSUECOSTS, aAnalysis.MacroCosts + + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOISSUE_CLASS, _ + getDocOverallIssueClassificationAsString(aAnalysis.DocOverallIssueClass) + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOCOMPLEXISSUES, aAnalysis.ComplexIssuesCount + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMINORISSUES, aAnalysis.MinorIssuesCount + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOPREPAREDISSUES, aAnalysis.PreparableIssuesCount + + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOMACRO_CLASS, _ + getDocOverallMacroClassAsString(aAnalysis.MacroOverallClass) + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACRO_USERFORMS, aAnalysis.MacroNumUserForms + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACRO_LINESOFCODE, aAnalysis.MacroTotalNumLines + + SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFONUMBERPAGES, aAnalysis.PageCount + SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOCREATED, CheckDate(aAnalysis.Created) + SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTMODIFIED, CheckDate(aAnalysis.Modified) + SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTACCESSED, CheckDate(aAnalysis.Accessed) + SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTPRINTED, CheckDate(aAnalysis.Printed) + + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOLASTSAVEDBY, aAnalysis.SavedBy + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOREVISION, aAnalysis.Revision + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOTEMPLATE, aAnalysis.Template + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name + Else + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOISSUE_CLASS, _ + getDocOverallIssueClassificationAsString(aAnalysis.DocOverallIssueClass) + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOMACRO_CLASS, _ + getDocOverallMacroClassAsString(aAnalysis.MacroOverallClass) + SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTMODIFIED, CheckDate(aAnalysis.Modified) + SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Function CheckDate(myDate As Date) As Variant + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckDate" + + Dim lowerNTDateLimit As Date + If Not IsDate(myDate) Then + CheckDate = RID_STR_COMMON_NA + Exit Function + End If + + lowerNTDateLimit = DateSerial(1980, 1, 1) + CheckDate = IIf(myDate < lowerNTDateLimit, RID_STR_COMMON_NA, myDate) +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : date " & myDate & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function WriteDocIssues(wsIssues As Worksheet, row As Long, _ + aAnalysis As DocumentAnalysis, fileName As String) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteDocIssues" + + Const CNAME = 1 + Const CAPPLICATION = CNAME + 1 + Const CISSUE_COLUMNOFFSET = CAPPLICATION + + If aAnalysis.IssuesCount = 0 Then + WriteDocIssues = row + Exit Function + End If + SetWorksheetCellValueToString wsIssues, row, CNAME, fileName + SetWorksheetCellValueToString wsIssues, row, CAPPLICATION, aAnalysis.Application + + Dim index As Integer + For index = 1 To aAnalysis.TotalIssueTypes + If aAnalysis.IssuesCountArray(index) > 0 Then + SetWorksheetCellValueToString wsIssues, row, CISSUE_COLUMNOFFSET + index, aAnalysis.IssuesCountArray(index) + End If + Next index + SetWorksheetCellValueToString wsIssues, row, CISSUE_COLUMNOFFSET + aAnalysis.TotalIssueTypes + 1, aAnalysis.name + + WriteDocIssues = row + 1 +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Sub ProcessIssuesForDAW(logWb As WorkBook, aAnalysis As DocumentAnalysis, fileName As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "ProcessIssuesForDAW" + + Dim myIssue As IssueInfo + Dim issueClass As EnumDocOverallIssueClass + + Dim index As Integer + For index = 1 To aAnalysis.Issues.count + Set myIssue = aAnalysis.Issues(index) + + If Not isMacroIssue(myIssue) Then + issueClass = getDocIssueClassification(logWb, myIssue) + CountDocIssuesForDoc issueClass, aAnalysis + SetOverallDocIssueClassification issueClass, aAnalysis + End If + + Set myIssue = Nothing + Next index + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Function ProcessIssuesAndWriteDocIssueDetails(logWb As WorkBook, wsIssueDetails As Worksheet, DetailsRow As Long, _ + aAnalysis As DocumentAnalysis, fileName As String) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "ProcessIssueAndWriteDocIssueDetails" + + Dim myIssue As IssueInfo + Dim rowIndex As Long + Dim issueClass As EnumDocOverallIssueClass + Dim issueCost As Long + + rowIndex = DetailsRow + + Dim index As Integer + For index = 1 To aAnalysis.Issues.count + Set myIssue = aAnalysis.Issues(index) + + ' Process Document Issues and Costs for the Document + ' Will be output to List of Documents sheet by WriteDocProperties( ) + If Not isMacroIssue(myIssue) Then + issueClass = getDocIssueClassification(logWb, myIssue) + CountDocIssuesForDoc issueClass, aAnalysis + SetOverallDocIssueClassification issueClass, aAnalysis + issueCost = getDocIssueCost(logWb, aAnalysis, myIssue) + aAnalysis.DocIssuesCosts = aAnalysis.DocIssuesCosts + issueCost + If myIssue.Preparable Then + aAnalysis.PreparableIssuesCosts = aAnalysis.PreparableIssuesCosts + issueCost + End If + End If + + 'Collate Issue and Factor counts across all Documents + 'Will be output to the Issues Analyzed sheet by WriteIssueCounts( ) + CollateIssueAndFactorCountsAcrossAllDocs aAnalysis, myIssue, fileName + + OutputCommonIssueDetails wsIssueDetails, rowIndex, aAnalysis, myIssue, fileName + OutputCommonIssueAttributes wsIssueDetails, rowIndex, myIssue + rowIndex = rowIndex + 1 + Set myIssue = Nothing + Next index + + ProcessIssuesAndWriteDocIssueDetails = rowIndex + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function getDocIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis, myIssue As IssueInfo) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "getDocIssueCost" + + Dim issueKey As String + Dim ret As Long + ret = 0 + + issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML + + ret = getIssueValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, issueKey, 1, CCOST_COL_OFFSET) + +FinalExit: + getDocIssueCost = ret + Exit Function + +HandleErrors: + ret = 0 + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Function getMacroIssueCosts(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long + 'Error handling not required + getMacroIssueCosts = getVBAMacroIssueCost(logWb, aAnalysis) '+ getMacroExtRefIssueCost(logWb, aAnalysis) + 'NOTE: Currently not counting External Refs as Macro Cost + 'could be added if porting off Windows + +End Function + +Function getVBAMacroIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long + Const CMACRO_ROW_OFFSET_UNIQUE_LINES_COST = 4 + Const CMACRO_ROW_OFFSET_USER_FORMS_COUNT_COST = 5 + Const CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_COUNT_COST = 6 + Const CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_TYPE_COUNT_COST = 7 + + Const CMACRO_NUM_OF_LINES_FACTOR_KEY = "_UniqueLineCount" + Const CMACRO_USER_FORMS_COUNT_FACTOR_KEY = "_UserFormsCount" + Const CMACRO_USER_FORMS_CONTROL_COUNT_FACTOR_KEY = "_UserFormsControlCount" + Const CMACRO_USER_FORMS_CONTROL_TYPE_COUNT_FACTOR_KEY = "_UserFormsControlTypeCount" + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "getVBAMacroIssueCost" + + Dim baseIssueKey As String + Dim ret As Long + ret = 0 + + If Not aAnalysis.HasMacros Then GoTo FinalExit + + 'Fetch VBA Macro Cost Factors - if required + baseIssueKey = getAppSpecificApplicationName & "_" & CSTR_ISSUE_VBA_MACROS & "_" & CSTR_SUBISSUE_PROPERTIES + + 'Num Lines - Costing taken from "Lines in Unique Modules" + If aAnalysis.MacroTotalNumLines > 0 Then + ret = ret + aAnalysis.MacroTotalNumLines * _ + getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _ + baseIssueKey & CMACRO_NUM_OF_LINES_FACTOR_KEY, baseIssueKey, _ + CMACRO_ROW_OFFSET_UNIQUE_LINES_COST, CCOST_COL_OFFSET) + End If + 'User Forms Count + If aAnalysis.MacroNumUserForms > 0 Then + ret = ret + aAnalysis.MacroNumUserForms * _ + getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _ + baseIssueKey & CMACRO_USER_FORMS_COUNT_FACTOR_KEY, baseIssueKey, _ + CMACRO_ROW_OFFSET_USER_FORMS_COUNT_COST, CCOST_COL_OFFSET) + End If + 'User Forms Control Count + If aAnalysis.MacroNumUserFormControls > 0 Then + ret = ret + aAnalysis.MacroNumUserFormControls * _ + getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _ + baseIssueKey & CMACRO_USER_FORMS_CONTROL_COUNT_FACTOR_KEY, baseIssueKey, _ + CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_COUNT_COST, CCOST_COL_OFFSET) + End If + 'User Forms Control Type Count + If aAnalysis.MacroNumUserFormControlTypes > 0 Then + ret = ret + aAnalysis.MacroNumUserFormControlTypes * getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _ + baseIssueKey & CMACRO_USER_FORMS_CONTROL_TYPE_COUNT_FACTOR_KEY, baseIssueKey, CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_TYPE_COUNT_COST, CCOST_COL_OFFSET) + End If + + +FinalExit: + getVBAMacroIssueCost = ret + Exit Function + +HandleErrors: + ret = 0 + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Function getMacroExtRefIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long + Const CMACRO_ROW_OFFSET_NUM_EXTERNAL_REFS_COST = 2 + Const CMACRO_NUM_EXTERNAL_REFS_FACTOR_KEY = "_ExternalRefs" + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "getMacroExtRefIssueCost" + Dim baseIssueKey As String + Dim ret As Long + ret = 0 + + If aAnalysis.MacroNumExternalRefs <= 0 Then GoTo FinalExit + + 'Fetch External Ref Cost Factors + baseIssueKey = getAppSpecificApplicationName & "_" & CSTR_ISSUE_PORTABILITY & "_" & _ + CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO + ret = ret + aAnalysis.MacroNumExternalRefs * _ + getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _ + baseIssueKey & CMACRO_NUM_EXTERNAL_REFS_FACTOR_KEY, baseIssueKey, _ + CMACRO_ROW_OFFSET_NUM_EXTERNAL_REFS_COST, CCOST_COL_OFFSET) + +FinalExit: + getMacroExtRefIssueCost = ret + Exit Function + +HandleErrors: + ret = 0 + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Function getIssueValueFromXLSorDict(logWb As WorkBook, aAnalysis As DocumentAnalysis, dict As Scripting.Dictionary, _ + key As String, row As Long, column As Long) As Long + 'Error handling not required + getIssueValueFromXLSorDict = getValueFromXLSorDict(logWb, aAnalysis, dict, key, key, row, column) +End Function + +Function getValueFromXLSorDict(logWb As WorkBook, aAnalysis As DocumentAnalysis, dict As Scripting.Dictionary, _ + dictKey As String, xlsKey As String, row As Long, column As Long) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "getValueFromXLSorDict" + + Dim ret As Long + ret = 0 + + If dict.Exists(dictKey) Then + ret = dict.item(dictKey) + Else + On Error Resume Next + ret = logWb.Names(xlsKey).RefersToRange.Cells(row, column).value + 'Log as error missing key + If Err.Number <> 0 Then + WriteDebug currentFunctionName & _ + " : Issue Cost Key - " & xlsKey & ": label missing from results.xlt Costs sheet, check sheet and add/ check spelling label" & Err.Number & " " & Err.Description & " " & Err.Source + WriteDebug currentFunctionName & " : dictKey " & dictKey & " : xlsKey " & xlsKey & " : " & Err.Number & " " & Err.Description & " " & Err.Source + ret = 0 + End If + On Error GoTo HandleErrors + dict.Add dictKey, ret + End If + +FinalExit: + getValueFromXLSorDict = ret + Exit Function + +HandleErrors: + ret = 0 + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Function isMacroIssue(myIssue As IssueInfo) + 'Error handling not required + isMacroIssue = False + + If myIssue.IssueTypeXML = CSTR_ISSUE_VBA_MACROS Or _ + (myIssue.IssueTypeXML = CSTR_ISSUE_PORTABILITY And _ + myIssue.SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO) Then + isMacroIssue = True + End If +End Function +Sub CountDocIssuesForDoc(issueClass As EnumDocOverallIssueClass, aAnalysis As DocumentAnalysis) + 'Error handling not required + + If issueClass = enMinor Then + aAnalysis.MinorIssuesCount = aAnalysis.MinorIssuesCount + 1 + End If + ' Macro issues are counted during analysis + ' Complex issues is calculated from: mIssues.count - mMinorIssuesCount - mMacroIssuesCount +End Sub +Sub SetOverallDocIssueClassification(issueClass As EnumDocOverallIssueClass, aAnalysis As DocumentAnalysis) + 'Error handling not required + + If aAnalysis.DocOverallIssueClass = enComplex Then Exit Sub + + If issueClass = enComplex Then + aAnalysis.DocOverallIssueClass = enComplex + Else + aAnalysis.DocOverallIssueClass = enMinor + End If +End Sub +Function getDocIssueClassification(logWb As WorkBook, myIssue As IssueInfo) As EnumDocOverallIssueClass + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "getDocIssueClassification" + Dim issueKey As String + Dim bRet As Boolean + bRet = False + getDocIssueClassification = enMinor + + issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML + If mIssuesClassificationDict.Exists(issueKey) Then + bRet = mIssuesClassificationDict.item(issueKey) + Else + On Error Resume Next + bRet = logWb.Names(issueKey).RefersToRange.Cells(1, 0).value + 'Log as error missing key + If Err.Number <> 0 Then + WriteDebug currentFunctionName & _ + " : Issue Cost Key - " & issueKey & ": label missing from results.xlt Costs sheet, check sheet and add/ check spelling label" & Err.Number & " " & Err.Description & " " & Err.Source + bRet = False + End If + On Error GoTo HandleErrors + mIssuesClassificationDict.Add issueKey, bRet + End If + + +FinalExit: + If bRet Then + getDocIssueClassification = enComplex + End If + Exit Function + +HandleErrors: + bRet = False + WriteDebug currentFunctionName & " : issueKey " & issueKey & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function getDocOverallIssueClassificationAsString(docIssueClass As EnumDocOverallIssueClass) As String + Dim Str As String + 'Error handling not required + + Select Case docIssueClass + Case enComplex + Str = RID_STR_COMMON_ISSUE_CLASS_COMPLEX + Case enMinor + Str = RID_STR_COMMON_ISSUE_CLASS_MINOR + Case Else + Str = RID_STR_COMMON_ISSUE_CLASS_NONE + End Select + + getDocOverallIssueClassificationAsString = Str +End Function + +Public Function getDocOverallMacroClassAsString(docMacroClass As EnumDocOverallMacroClass) As String + Dim Str As String + 'Error handling not required + + Select Case docMacroClass + Case enMacroComplex + Str = RID_STR_COMMON_MACRO_CLASS_COMPLEX + Case enMacroMedium + Str = RID_STR_COMMON_MACRO_CLASS_MEDIUM + Case enMacroSimple + Str = RID_STR_COMMON_MACRO_CLASS_SIMPLE + Case Else + Str = RID_STR_COMMON_MACRO_CLASS_NONE + End Select + + getDocOverallMacroClassAsString = Str +End Function + +Function WriteDocRefDetails(wsRefDetails As Worksheet, DetailsRow As Long, _ + aAnalysis As DocumentAnalysis, fileName As String) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteDocRefDetails" + + Dim myIssue As IssueInfo + Dim rowIndex As Long + rowIndex = DetailsRow + + Dim index As Integer + + 'Output References for Docs with Macros + If aAnalysis.HasMacros And (aAnalysis.References.count > 0) Then + For index = 1 To aAnalysis.References.count + Set myIssue = aAnalysis.References(index) + OutputReferenceAttributes wsRefDetails, rowIndex, aAnalysis, myIssue, fileName + rowIndex = rowIndex + 1 + Set myIssue = Nothing + Next index + End If + + WriteDocRefDetails = rowIndex + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & _ + " : path " & aAnalysis.name & ": " & _ + " : row " & DetailsRow & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Sub OutputReferenceAttributes(wsIssueDetails As Worksheet, rowIndex As Long, _ + aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OutputReferenceAttributes" + + Dim strAttributes As String + + With myIssue + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDOCNAME, fileName + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDOCAPPLICATION, aAnalysis.Application + + strAttributes = .Values(RID_STR_COMMON_ATTRIBUTE_MAJOR) & "." & .Values(RID_STR_COMMON_ATTRIBUTE_MINOR) + strAttributes = IIf(strAttributes = "0.0" Or strAttributes = ".", .Values(RID_STR_COMMON_ATTRIBUTE_NAME), _ + .Values(RID_STR_COMMON_ATTRIBUTE_NAME) & " " & .Values(RID_STR_COMMON_ATTRIBUTE_MAJOR) & _ + "." & .Values(RID_STR_COMMON_ATTRIBUTE_MINOR)) + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETREFERENCE, strAttributes + + If .Values(RID_STR_COMMON_ATTRIBUTE_TYPE) = RID_STR_COMMON_ATTRIBUTE_PROJECT Then + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDESCRIPTION, RID_STR_COMMON_ATTRIBUTE_PROJECT + Else + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDESCRIPTION, _ + IIf(.Values(RID_STR_COMMON_ATTRIBUTE_DESCRIPTION) <> "", .Values(RID_STR_COMMON_ATTRIBUTE_DESCRIPTION), RID_STR_COMMON_NA) + End If + + + If .Values(RID_STR_COMMON_ATTRIBUTE_ISBROKEN) <> RID_STR_COMMON_ATTRIBUTE_BROKEN Then + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETLOCATION, _ + .Values(RID_STR_COMMON_ATTRIBUTE_FILE) + Else + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETLOCATION, _ + RID_STR_COMMON_NA + End If + + 'Reference Details + strAttributes = RID_STR_COMMON_ATTRIBUTE_TYPE & ": " & .Values(RID_STR_COMMON_ATTRIBUTE_TYPE) & vbLf + strAttributes = strAttributes & RID_STR_COMMON_ATTRIBUTE_PROPERTIES & ": " & _ + .Values(RID_STR_COMMON_ATTRIBUTE_BUILTIN) & " " & .Values(RID_STR_COMMON_ATTRIBUTE_ISBROKEN) + strAttributes = IIf(.Values(RID_STR_COMMON_ATTRIBUTE_GUID) <> "", _ + strAttributes & vbLf & RID_STR_COMMON_ATTRIBUTE_GUID & ": " & .Values(RID_STR_COMMON_ATTRIBUTE_GUID), _ + strAttributes) + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETATTRIBUTES, strAttributes + + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETNAMEANDPATH, aAnalysis.name + End With +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : path " & aAnalysis.name & ": " & _ + " : rowIndex " & rowIndex & ": " & _ + " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub OutputCommonIssueAttributes(wsIssueDetails As Worksheet, rowIndex As Long, _ + myIssue As IssueInfo) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OutputCommonIssueAttributes" + + Dim index As Integer + Dim strAttributes As String + + strAttributes = "" + For index = 1 To myIssue.Attributes.count + strAttributes = strAttributes & myIssue.Attributes(index) & " - " & _ + myIssue.Values(index) + strAttributes = strAttributes & IIf(index <> myIssue.Attributes.count, vbLf, "") + + Next index + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETATTRIBUTES, strAttributes + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : rowIndex " & rowIndex & ": " & _ + " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +'Store issue cost and factor costs across all documents +Sub CollateIssueAndFactorCountsAcrossAllDocs(aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String) + Const CSTR_USER_FORM = "User Form" + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CollateIssueAndFactorCountsAcrossAllDocs" + + 'Don't want to cost ISSUE_INFORMATION issues + If myIssue.IssueTypeXML = CSTR_ISSUE_INFORMATION Then Exit Sub + + Dim issueKey As String + issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML + + 'Store costing metrics for Issue + AddIssueAndOneToDict issueKey + + 'Store prepeared issue for costing metrics + If myIssue.Preparable Then + AddPreparedIssueAndOneToDict issueKey & "_Prepared" + End If + + 'Additional costing Factors output for VB macros + If (myIssue.IssueTypeXML = CSTR_ISSUE_VBA_MACROS) And _ + (myIssue.SubTypeXML <> CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION) Then + + 'Unique Macro Module and Line count + AddMacroModuleHashToMacroDict myIssue + + 'Line count + AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_NUMLINES, myIssue, _ + RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES + + 'User From info + If myIssue.SubLocation = CSTR_USER_FORM Then + AddIssueAndOneToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_USERFORMS_COUNT + + AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROL_COUNT, myIssue, _ + RID_STR_COMMON_ATTRIBUTE_CONTROLS + End If + 'Additional costing Factors output for External References + ElseIf (myIssue.IssueTypeXML = CSTR_ISSUE_PORTABILITY And _ + myIssue.SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO) Then + + AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO_COUNT, myIssue, _ + RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : path " & aAnalysis.name & ": " & _ + " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub OutputCommonIssueDetails(wsIssueDetails As Worksheet, rowIndex As Long, _ + aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String) + Const CSTR_USER_FORM = "User Form" + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OutputCommonIssueDetails" + + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETDOCNAME, fileName + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETDOCAPPLICATION, aAnalysis.Application + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETTYPE, myIssue.IssueType + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETSUBTYPE, myIssue.SubType + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETLOCATION, myIssue.Location + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETSUBLOCATION, _ + IIf(myIssue.SubLocation = "", RID_STR_COMMON_NA, myIssue.SubLocation) + SetWorksheetCellValueToVariant wsIssueDetails, rowIndex, CISSUE_DETLINE, _ + IIf(myIssue.Line = -1, RID_STR_COMMON_NA, myIssue.Line) + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETCOLUMN, _ + IIf(myIssue.column = "", RID_STR_COMMON_NA, myIssue.column) + SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETNAMEANDPATH, aAnalysis.name + + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : path " & aAnalysis.name & ": " & _ + " : rowIndex " & rowIndex & ": " & _ + " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub AddIssueAndBoolValToDict(issueKey As String, issue As IssueInfo, valKey As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddIssueAndBoolValToDict" + + If mIssuesDict.Exists(issueKey) Then + mIssuesDict.item(issueKey) = mIssuesDict.item(issueKey) + _ + IIf(issue.Values(valKey) > 0, 1, 0) + Else + mIssuesDict.Add issueKey, IIf(issue.Values(valKey) > 0, 1, 0) + End If +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : issueKey " & issueKey & ": " & _ + " : valKey " & valKey & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub AddIssueAndValToDict(issueKey As String, issue As IssueInfo, valKey As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddIssueAndValToDict" + + If mIssuesDict.Exists(issueKey) Then + mIssuesDict.item(issueKey) = mIssuesDict.item(issueKey) + issue.Values(valKey) + Else + mIssuesDict.Add issueKey, issue.Values(valKey) + End If +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : issueKey " & issueKey & ": " & _ + " : valKey " & valKey & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub AddMacroModuleHashToMacroDict(issue As IssueInfo) + On Error GoTo HandleErrors + Dim currentFunctionName As String + Dim issueKey As String + Dim issueVal As String + currentFunctionName = "AddMacroModuleHashToMacroDict" + + issueKey = issue.Values(RID_STR_COMMON_ATTRIBUTE_SIGNATURE) + If issueKey = RID_STR_COMMON_NA Then Exit Sub + + If Not mMacroDict.Exists(issueKey) Then + mMacroDict.Add issueKey, issue.Values(RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES) + End If +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : issueKey " & issueKey & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub AddIssueAndOneToDict(key As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddIssueAndOneToDict" + + If mIssuesDict.Exists(key) Then + mIssuesDict.item(key) = mIssuesDict.item(key) + 1 + Else + mIssuesDict.Add key, 1 + End If +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : key " & key & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub AddPreparedIssueAndOneToDict(key As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddPreparedIssueAndOneToDict" + + If mPreparedIssuesDict.Exists(key) Then + mPreparedIssuesDict.item(key) = mPreparedIssuesDict.item(key) + 1 + Else + mPreparedIssuesDict.Add key, 1 + End If +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : key " & key & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Function GetExcelInstance() As Excel.Application + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetExcelInstance" + + Dim xl As Excel.Application + On Error Resume Next + 'Try and get an existing instance + Set xl = GetObject(, "Excel.Application") + If Err.Number = 429 Then + Set xl = CreateObject("Excel.Application") + ElseIf Err.Number <> 0 Then + Set xl = Nothing + MsgBox "Error: " & Err.Description + Exit Function + End If + Set GetExcelInstance = xl + Set xl = Nothing +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Sub WriteOverview(logWb As WorkBook, DocCount As DocumentCount, templateCount As DocumentCount, _ + macroClasses As DocMacroClassifications, issueClasses As DocIssueClassifications) + Const COV_ISSUECLASS_COMPLEX = "MAW_ISSUECLASS_COMPLEX" + Const COV_ISSUECLASS_MINOR = "MAW_ISSUECLASS_MINOR" + Const COV_ISSUECLASS_NONE = "MAW_ISSUECLASS_NONE" + + Const COV_MACROCLASS_COMPLEX = "MAW_MACROCLASS_COMPLEX" + Const COV_MACROCLASS_MEDIUM = "MAW_MACROCLASS_MEDIUM" + Const COV_MACROCLASS_SIMPLE = "MAW_MACROCLASS_SIMPLE" + Const COV_MACROCLASS_NONE = "MAW_MACROCLASS_NONE" + + Const COV_ISSUECOUNT_COMPLEX = "MAW_ISSUECOUNT_COMPLEX" + Const COV_ISSUECOUNT_MINOR = "MAW_ISSUECOUNT_MINOR" + + Const COV_MODDATES_LESS3MONTHS = "MAW_MODDATES_LESS3MONTHS" + Const COV_MODDATES_3TO6MONTHS = "MAW_MODDATES_3TO6MONTHS" + Const COV_MODDATES_6TO12MONTHS = "MAW_MODDATES_6TO12MONTHS" + Const COV_MODDATES_MORE12MONTHS = "MAW_MODDATES_MORE12MONTHS" + + Const COV_DOC_MIGRATION_COSTS = "Document_Migration_Costs" + Const COV_DOC_PREPARABLE_COSTS = "Document_Migration_Preparable_Costs" + Const COV_MACRO_MIGRATION_COSTS = "Macro_Migration_Costs" + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteOverview" + + Dim appName As String + appName = getAppSpecificApplicationName + + 'OV - Title + SetWorkbookNameValueToString logWb, COVERVIEW_TITLE_LABEL, GetTitle + SetWorkbookNameValueToVariant logWb, "AnalysisDate", Now + SetWorkbookNameValueToString logWb, "AnalysisVersion", _ + RID_STR_COMMON_OV_VERSION_STR & ": " & GetTitle & " " & GetVersion + + 'OV - Number of Documents Analyzed + AddLongToWorkbookNameValue logWb, CNUMBERDOC_ALL & getAppSpecificDocExt, DocCount.numDocsAnalyzed + AddLongToWorkbookNameValue logWb, CNUMBERDOC_ALL & getAppSpecificTemplateExt, templateCount.numDocsAnalyzed + + 'OV - Documents with Document Migration Issues (excludes macro issues) + AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_COMPLEX, issueClasses.complex + AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_MINOR, issueClasses.Minor + AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_NONE, issueClasses.None + + 'OV - Documents with Macro Migration Issues + AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_COMPLEX, macroClasses.complex + AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_MEDIUM, macroClasses.Medium + AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_SIMPLE, macroClasses.Simple + AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_NONE, macroClasses.None + + 'OV - Document Modification Dates + Dim modDates As DocModificationDates + Call GetDocModificationDates(modDates) + + SetWorkbookNameValueToLong logWb, COV_MODDATES_LESS3MONTHS, modDates.lessThanThreemonths + SetWorkbookNameValueToLong logWb, COV_MODDATES_3TO6MONTHS, modDates.threeToSixmonths + SetWorkbookNameValueToLong logWb, COV_MODDATES_6TO12MONTHS, modDates.sixToTwelvemonths + SetWorkbookNameValueToLong logWb, COV_MODDATES_MORE12MONTHS, modDates.greaterThanOneYear + + + If InDocPreparation Then + 'OV - Document Migration Issues(excludes macro issues) + AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECOUNT_COMPLEX, _ + DocCount.numComplexIssues + templateCount.numComplexIssues + AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECOUNT_MINOR, _ + DocCount.numMinorIssues + templateCount.numMinorIssues + + 'OV - Document Migration Costs + AddLongToWorkbookNameValue logWb, appName & "_" & COV_DOC_MIGRATION_COSTS, _ + DocCount.totalDocIssuesCosts + templateCount.totalDocIssuesCosts + + 'OV - Document Migration Preparable Costs + AddLongToWorkbookNameValue logWb, COV_DOC_PREPARABLE_COSTS, _ + DocCount.totalPreparableIssuesCosts + templateCount.totalPreparableIssuesCosts + + 'OV - Macro Migration Costs + AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACRO_MIGRATION_COSTS, _ + DocCount.totalMacroCosts + templateCount.totalMacroCosts + End If + + 'OV - Internal Attributes + AddLongToWorkbookNameValue logWb, appName & "_" & "TotalDocsAnalysedWithIssues", _ + DocCount.numDocsAnalyzedWithIssues + templateCount.numDocsAnalyzedWithIssues + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : Problem writing overview: " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetupDAWResultsSpreadsheet(logWb As WorkBook, fontName As String, fontSize As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupDAWResultsSpreadsheet" + Dim bSetupRun As Boolean + bSetupRun = CBool(GetWorkbookNameValueAsLong(logWb, COV_DAW_SETUP_SHEETS_RUN_LBL)) + + If bSetupRun Then Exit Sub + + 'Setup Text Boxes + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_COMMENT_TXB, _ + RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_BODY, _ + CCOMMENTS_FONT_SIZE, fontName + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_LEGEND_TXB, _ + RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY, fontSize, fontName + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_COMMENT_TXB, _ + RID_STR_COMMON_OV_DOC_MACRO_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_MACRO_COMMENT_BODY, _ + CCOMMENTS_FONT_SIZE, fontName + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_LEGEND_TXB, _ + RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY, fontSize, fontName + Dim monthLimit As Long + monthLimit = GetIssuesLimitInDays / CNUMDAYS_IN_MONTH + SetWorkbookNameValueToString logWb, COV_HIGH_LEVEL_ANALYSIS_LBL, _ + IIf(monthLimit <> CMAX_LIMIT, _ + ReplaceTopicTokens(RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_DAW, CR_TOPIC, CStr(monthLimit)), _ + RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT) + + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_COMMENT_TXB, _ + RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_BODY, _ + CCOMMENTS_FONT_SIZE, fontName + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_LEGEND_DAW_TXB, _ + RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_DAW_LEGEND_BODY, fontSize, fontName + + 'Setup Chart Titles + SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_CHART, _ + RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE + SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_CHART, _ + RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE + SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_CHART, _ + RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE + + 'Set selection to top cell of Overview + logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW).Range("A1").Select + + bSetupRun = True + SetWorkbookNameValueToBoolean logWb, COV_DAW_SETUP_SHEETS_RUN_LBL, bSetupRun +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : Problem setting up spreadsheet for DAW: " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetupPAWResultsSpreadsheet(logWb As WorkBook, fontName As String, fontSize As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupPAWResultsSpreadsheet" + Dim bSetupRun As Boolean + bSetupRun = CBool(GetWorkbookNameValueAsLong(logWb, COV_PAW_SETUP_SHEETS_RUN_LBL)) + + If bSetupRun Then Exit Sub + + 'Costs + logWb.Names(COV_COSTS_PREPISSUE_COUNT_COL_LBL).RefersToRange.EntireColumn.Hidden = False + + 'Setup Text Boxes + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_LEGEND_TXB, _ + RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY, fontSize, fontName + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_LEGEND_TXB, _ + RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY, fontSize, fontName + SetWorkbookNameValueToString logWb, COV_HIGH_LEVEL_ANALYSIS_LBL, _ + RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT + SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_LEGEND_PAW_TXB, _ + RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_PAW_LEGEND_BODY, fontSize, fontName + + 'Setup Chart Titles + SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_CHART, _ + RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE + SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_CHART, _ + RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE + SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_CHART, _ + RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE + + 'Set selection to top cell of Overview + logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW).Range("A1").Select + + bSetupRun = True + SetWorkbookNameValueToBoolean logWb, COV_PAW_SETUP_SHEETS_RUN_LBL, bSetupRun + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : Problem setting up spreadsheet for PAW: " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetupPrintRanges(logWb As WorkBook, docPropRow As Long, appIssuesRow As Long, issueDetailsRow As Long, _ + refDetailsRow As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupPrintRanges" + + 'Set Print Ranges + If InDocPreparation Then + + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP).PageSetup.PrintArea = "$A1:$U" & (docPropRow + mDocPropRowOffset) + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS).PageSetup.PrintArea = "$A1:$J" & issueDetailsRow + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS).PageSetup.PrintArea = "$A1:$G" & refDetailsRow + If getAppSpecificApplicationName = CAPPNAME_WORD Then + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD).PageSetup.PrintArea = _ + "$A1:$N" & appIssuesRow + ElseIf getAppSpecificApplicationName = CAPPNAME_EXCEL Then + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL).PageSetup.PrintArea = _ + "$A1:$M" & appIssuesRow + Else + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT).PageSetup.PrintArea = _ + "$A1:$K" & appIssuesRow + End If + Else + logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP).PageSetup.PrintArea = "$A1:$U" & (docPropRow + mDocPropRowOffset) + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : Problem setting print ranges: " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetupSheetChartTitles(logWb As WorkBook, namedWorksheet As String, namedChart As String, _ + chartTitle As String) + Const CCHART_TITLE_FONT_SIZE = 11 + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupSheetChartTitles" + + With logWb.Sheets(namedWorksheet).ChartObjects(namedChart).Chart + .HasTitle = True + .chartTitle.Characters.Text = chartTitle + .chartTitle.Font.Size = CCHART_TITLE_FONT_SIZE + End With + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " namedWorkSheet: " & namedWorksheet & _ + " namedChart: " & namedChart & _ + " chartTitle: " & chartTitle & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetupSheetTextBox(logWb As WorkBook, namedWorksheet As String, _ + textBoxName As String, textBoxTitle As String, textBoxBody As String, _ + textSize As Long, fontName As String) + + Const CMAX_INSERTABLE_STRING_LEN = 255 + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupSheetTextBox" + + Dim strTextBody As String + Dim allText As String + strTextBody = ReplaceTopic2Tokens(textBoxBody, CR_STR, Chr(10), CR_PRODUCT, RID_STR_COMMON_OV_PRODUCT_STR) + + 'Setup Text Boxes + logWb.Sheets(namedWorksheet).Activate + logWb.Sheets(namedWorksheet).Shapes(textBoxName).Select + + '*** Workaround Excel bug: 213841 XL: Passed Strings Longer Than 255 Characters Are Truncated + Dim I As Long + logWb.Application.Selection.Text = "" + + logWb.Application.Selection.Characters.Text = textBoxTitle & Chr(10) + + With logWb.Application.Selection + For I = 0 To Int(Len(strTextBody) / CMAX_INSERTABLE_STRING_LEN) + .Characters(.Characters.count + 1).Text = Mid(strTextBody, _ + (I * CMAX_INSERTABLE_STRING_LEN) + 1, CMAX_INSERTABLE_STRING_LEN) + Next + End With + + 'Highlight title only + With logWb.Application.Selection.Characters(start:=1, Length:=Len(textBoxTitle)).Font + .name = fontName + .FontStyle = "Bold" + .Size = textSize + End With + With logWb.Application.Selection.Characters(start:=Len(textBoxTitle) + 1, _ + Length:=Len(strTextBody) + 1).Font + .name = fontName + .FontStyle = "Regular" + .Size = textSize + End With + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " namedWorkSheet: " & namedWorksheet & _ + " textBoxName: " & textBoxName & _ + " textBoxTitle: " & textBoxTitle & _ + " textBoxBody: " & textBoxBody & _ + " textSize: " & textSize & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Function GetWorkbookNameValueAsLong(logWb As WorkBook, name As String) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetWorkbookNameValueAsLong" + + GetWorkbookNameValueAsLong = logWb.Names(name).RefersToRange.Cells(1, 1).value + +FinalExit: + Exit Function + +HandleErrors: + GetWorkbookNameValueAsLong = 0 + WriteDebug currentFunctionName & " : name " & name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetWorksheetCellValueAsLong(logWs As Worksheet, row As Long, col As Long) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetWorksheetCellValueAsLong" + + GetWorksheetCellValueAsLong = logWs.Cells(row, col).value + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & _ + " : row " & row & _ + " : col " & col & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetWorksheetCellValueAsString(logWs As Worksheet, row As Long, col As Long) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetWorksheetCellValueToString" + + GetWorksheetCellValueAsString = logWs.Cells(row, col).value + +FinalExit: + Exit Function + +HandleErrors: + GetWorksheetCellValueAsString = "" + + WriteDebug currentFunctionName & _ + " : row " & row & _ + " : col " & col & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Sub SetWorksheetCellValueToLong(logWs As Worksheet, row As Long, col As Long, val As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorksheetCellValueToLong" + + logWs.Cells(row, col) = val + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : row " & row & _ + " : col " & col & _ + " : val " & val & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub SetWorksheetCellValueToInteger(logWs As Worksheet, row As Long, col As Long, intVal As Integer) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorksheetCellValueToInteger" + + logWs.Cells(row, col) = intVal + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : row " & row & _ + " : col " & col & _ + " : intVal " & intVal & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetWorksheetCellValueToVariant(logWs As Worksheet, row As Long, col As Long, varVal As Variant) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorksheetCellValueToInteger" + + logWs.Cells(row, col) = varVal + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : row " & row & _ + " : col " & col & _ + " : varVal " & varVal & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetWorksheetCellValueToString(logWs As Worksheet, row As Long, col As Long, strVal As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorksheetCellValueToString" + + logWs.Cells(row, col) = strVal + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : row " & row & _ + " : col " & col & _ + " : strVal " & strVal & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetWorkbookNameValueToBoolean(logWb As WorkBook, name As String, bVal As Boolean) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorkbookNameValueToBoolean" + + logWb.Names(name).RefersToRange.Cells(1, 1) = bVal + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : name " & name & " : boolean value " & bVal & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetWorkbookNameValueToString(logWb As WorkBook, name As String, val As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorkbookNameValueToString" + + logWb.Names(name).RefersToRange.Cells(1, 1) = val + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetWorkbookNameValueToLong(logWb As WorkBook, name As String, val As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorkbookNameValueToLong" + + logWb.Names(name).RefersToRange.Cells(1, 1) = val + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetWorkbookNameValueToVariant(logWb As WorkBook, name As String, val As Variant) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetWorkbookNameValueToVariant" + + logWb.Names(name).RefersToRange.Cells(1, 1) = val + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub AddLongToWorkbookNameValue(logWb As WorkBook, name As String, val As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddLongToWorkbookNameValue" + + logWb.Names(name).RefersToRange.Cells(1, 1) = logWb.Names(name).RefersToRange.Cells(1, 1).value + val + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub AddVariantToWorkbookNameValue(logWb As WorkBook, name As String, varVal As Variant) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddVariantToWorkbookNameValue" + + logWb.Names(name).RefersToRange.Cells(1, 1) = logWb.Names(name).RefersToRange.Cells(1, 1).value + varVal + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : name " & name & " : value " & varVal & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SaveAnalysisResultsVariables(logWb As WorkBook, offsetDocIssueDetailsRow As Long, _ + offsetDocRefDetailsRow As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SaveAnalysisResultsVariables" + + 'OV - Internal Attributes + SetWorkbookNameValueToLong logWb, "TotalIssuesAnalysed", offsetDocIssueDetailsRow + SetWorkbookNameValueToLong logWb, "TotalRefsAnalysed", offsetDocRefDetailsRow +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : offsetDocIssueDetailsRow " & offsetDocIssueDetailsRow & _ + " : offsetDocRefDetailsRow " & offsetDocRefDetailsRow & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub SetupAnalysisResultsVariables(logWb As WorkBook, _ + offsetDocPropRow As Long, offsetDocIssuesRow As Long, _ + offsetDocIssueDetailsRow As Long, offsetDocRefDetailsRow As Long) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupAnalysisResultsVariables" + + offsetDocPropRow = GetWorkbookNameValueAsLong(logWb, CTOTAL_DOCS_ANALYZED) + offsetDocIssueDetailsRow = GetWorkbookNameValueAsLong(logWb, "TotalIssuesAnalysed") + offsetDocRefDetailsRow = GetWorkbookNameValueAsLong(logWb, "TotalRefsAnalysed") + offsetDocIssuesRow = GetWorkbookNameValueAsLong(logWb, getAppSpecificApplicationName & "_" & "TotalDocsAnalysedWithIssues") +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + " : offsetDocPropRow " & offsetDocPropRow & _ + " : offsetDocIssueDetailsRow " & offsetDocIssueDetailsRow & _ + " : offsetDocRefDetailsRow " & offsetDocRefDetailsRow & _ + " : offsetDocIssuesRow " & offsetDocIssuesRow & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteToIni(key As String, value As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteToIni" + + If mIniFilePath = "" Then Exit Sub + + Call WritePrivateProfileString("Analysis", key, value, mIniFilePath) +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : key " & key & " : value " & value & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteToLog(key As String, value As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteToLog" + + If mLogFilePath = "" Then Exit Sub + + Dim sSection As String + sSection = getAppSpecificApplicationName + + Call WritePrivateProfileString(sSection, key, value, mLogFilePath) +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : key " & key & " : value " & value & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub WriteDebug(value As String) + On Error Resume Next 'Ignore errors in our error writing routines - could get circular dependency otherwise + Static ErrCount As Long + + If mLogFilePath = "" Then Exit Sub + + Dim sSection As String + sSection = getAppSpecificApplicationName & "Debug" + + If mDebugLevel > 0 Then + Call WritePrivateProfileString(sSection, "Doc" & mDocIndex & "_debug" & ErrCount, value, mLogFilePath) + ErrCount = ErrCount + 1 + Else + Debug.Print + End If +End Sub +Sub WriteDebugLevelTwo(value As String) + On Error Resume Next 'Ignore errors in our error writing routines - could get circular dependency otherwise + Static ErrCountTwo As Long + + If mLogFilePath = "" Then Exit Sub + + Dim sSection As String + sSection = getAppSpecificApplicationName & "Debug" + + If mDebugLevel > 1 Then + Call WritePrivateProfileString(sSection, "Doc" & mDocIndex & "_debug" & ErrCountTwo, "Level2: " & value, mLogFilePath) + ErrCountTwo = ErrCountTwo + 1 + Else + Debug.Print + End If +End Sub + +Public Function ProfileLoadDict(dict As Scripting.Dictionary, _ + lpSectionName As String, _ + inifile As String) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "ProfileLoadDict" + Dim success As Long + Dim c As Long + Dim nSize As Long + Dim KeyData As String + Dim lpKeyName As String + Dim ret As String + + ret = Space$(2048) + nSize = Len(ret) + success = GetPrivateProfileString( _ + lpSectionName, vbNullString, "", ret, nSize, inifile) + + If success Then + ret = Left$(ret, success) + + Do Until ret = "" + lpKeyName = StripNulls(ret) + KeyData = ProfileGetItem( _ + lpSectionName, lpKeyName, "", inifile) + dict.Add lpKeyName, KeyData + Loop + End If + ProfileLoadDict = dict.count +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & _ + " : dict.Count " & dict.count & _ + " : lpSectionName " & lpSectionName & _ + " : inifile " & inifile & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Private Function StripNulls(startStrg As String) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "StripNulls" + Dim pos As Long + Dim item As String + + pos = InStr(1, startStrg, Chr$(0)) + + If pos Then + + item = Mid$(startStrg, 1, pos - 1) + startStrg = Mid$(startStrg, pos + 1, Len(startStrg)) + StripNulls = item + + End If + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : startStrg " & startStrg & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Public Function ProfileGetItem(lpSectionName As String, _ + lpKeyName As String, _ + defaultValue As String, _ + inifile As String) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "ProfileGetItem" + + Dim success As Long + Dim nSize As Long + Dim ret As String + ret = Space$(2048) + nSize = Len(ret) + success = GetPrivateProfileString(lpSectionName, _ + lpKeyName, _ + defaultValue, _ + ret, _ + nSize, _ + inifile) + If success Then + ProfileGetItem = Left$(ret, success) + Else + ProfileGetItem = defaultValue + End If + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & _ + " : lpSectionName " & lpSectionName & _ + " : lpKeyName " & lpKeyName & _ + " : defaultValue " & defaultValue & _ + " : inifile " & inifile & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Public Function GetDefaultPassword() As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetDefaultPassword" + + Static myPassword As String + + If myPassword = "" Then + myPassword = ProfileGetItem("Analysis", CDEFAULT_PASSWORD, "", mIniFilePath) + End If + + GetDefaultPassword = myPassword +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Public Function GetVersion() As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetVersion" + + Static myVersion As String + + If myVersion = "" Then + myVersion = ProfileGetItem("Analysis", CVERSION, "", mIniFilePath) + End If + + GetVersion = myVersion +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function +Public Function GetTitle() As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetTitle" + + Static myTitle As String + + If myTitle = "" Then + myTitle = ProfileGetItem("Analysis", CTITLE, RID_STR_COMMON_ANALYSIS_STR, mIniFilePath) + End If + + GetTitle = myTitle +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Sub SetPrepareToNone() + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetPrepareToNone" + + Call WritePrivateProfileString("Analysis", CDOPREPARE, CStr(0), mIniFilePath) + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Function CheckForAbort() As Boolean + Dim currentFunctionName As String + Dim bAbort As Boolean + + currentFunctionName = "CheckForAbort" + bAbort = False + + On Error GoTo HandleErrors + + bAbort = CBool(ProfileGetItem("Analysis", C_ABORT_ANALYSIS, "false", mIniFilePath)) + + 'reset the flag + If (bAbort) Then Call WriteToIni(C_ABORT_ANALYSIS, "false") + +FinalExit: + CheckForAbort = bAbort + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function CheckDoPrepare() As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckDoPrepare" + + Static bDoPrepare As Boolean + Static myDoPrepare As String + + If myDoPrepare = "" Then + bDoPrepare = CBool(ProfileGetItem("Analysis", _ + CDOPREPARE, "False", mIniFilePath)) + myDoPrepare = "OK" + End If + + CheckDoPrepare = bDoPrepare +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function GetIssuesLimitInDays() As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + + currentFunctionName = "GetIssuesLimitInDays" + + Static issuesLimit As Long + Static myDoPrepare As String + + If issuesLimit = 0 Then + issuesLimit = CLng(ProfileGetItem("Analysis", _ + CISSUES_LIMIT, CMAX_LIMIT, mIniFilePath)) * CNUMDAYS_IN_MONTH + End If + + GetIssuesLimitInDays = issuesLimit +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Public Sub AddIssueDetailsNote(myIssue As IssueInfo, noteNum As Long, noteStr As String, _ + Optional preStr As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "AddIssueDetailsNote" + + If IsMissing(preStr) Then + preStr = RID_STR_COMMON_NOTE_PRE + End If + myIssue.Attributes.Add preStr & "[" & noteNum & "]" + myIssue.Values.Add noteStr + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : noteNum " & noteNum & " : noteStr " & noteStr & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Public Sub SetupWizardVariables( _ + fileList As String, storeToDir As String, resultsFile As String, _ + logFile As String, resultsTemplate As String, bOverwriteFile As Boolean, _ + bNewResultsFile As Boolean, statFileName As String, debugLevel As Long, _ + outputType As String, singleFile As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupWizardVariables" + + If mIniFilePath = "" Then + mIniFilePath = GetAppDataFolder & "\Sun\AnalysisWizard\" & CWIZARD & ".ini" + End If + + statFileName = ProfileGetItem("Analysis", CSTAT_FILE, "", mIniFilePath) + fileList = ProfileGetItem("Analysis", CFILE_LIST, "", mIniFilePath) + storeToDir = ProfileGetItem("Analysis", COUTPUT_DIR, "", mIniFilePath) + resultsFile = ProfileGetItem("Analysis", CRESULTS_FILE, "", mIniFilePath) + logFile = ProfileGetItem("Analysis", CLOG_FILE, "", mIniFilePath) + resultsTemplate = ProfileGetItem("Analysis", CRESULTS_TEMPLATE, "", mIniFilePath) + bOverwriteFile = IIf(ProfileGetItem("Analysis", CRESULTS_EXIST, COVERWRITE_FILE, mIniFilePath) = COVERWRITE_FILE, _ + True, False) + bNewResultsFile = CBool(ProfileGetItem("Analysis", CNEW_RESULTS_FILE, "True", mIniFilePath)) + debugLevel = CLng(ProfileGetItem("Analysis", CDEBUG_LEVEL, "1", mIniFilePath)) + outputType = ProfileGetItem("Analysis", COUTPUT_TYPE, COUTPUT_TYPE_XLS, mIniFilePath) + singleFile = ProfileGetItem("Analysis", CSINGLE_FILE, "", mIniFilePath) +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & _ + ": mIniFilePath " & mIniFilePath & ": " & _ + Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Public Sub SetupSearchTypes(searchTypes As Collection) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetupSearchTypes" + + Dim bDocument As Boolean + Dim bTemplate As Boolean + + bDocument = CBool(ProfileGetItem("Analysis", LCase("type" & getAppSpecificApplicationName & "doc"), "False", mIniFilePath)) + bTemplate = CBool(ProfileGetItem("Analysis", LCase("type" & getAppSpecificApplicationName & "dot"), "False", mIniFilePath)) + If bDocument = True Then searchTypes.Add "*" & getAppSpecificDocExt + If bTemplate = True Then searchTypes.Add "*" & getAppSpecificTemplateExt +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & ": searchTypes.Count " & searchTypes.count & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteXMLHeader(out As TextStream) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLHeader" + + out.WriteLine "<?xml version=""1.0"" encoding=""ISO-8859-1""?>" + out.WriteLine "<!DOCTYPE results SYSTEM 'analysis.dtd'>" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub WriteXMLResultsStartTag(out As TextStream) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLResultsStartTag" + + out.WriteLine "<results generated-by=""" & IIf(InDocPreparation, "documentanalysis_preparation", "documentanalysis") & """" + out.WriteLine " version=""" & GetVersion & """ timestamp=""" & Now & """" + out.WriteLine " type=""" & getAppSpecificApplicationName & """ >" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Sub WriteXMLResultsEndTag(out As TextStream) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLResultsEndTag" + + out.WriteLine "</results>" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteXMLDocProperties(out As TextStream, aAnalysis As DocumentAnalysis) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLDocProperties" + + out.WriteLine "<document location=""" & EncodeXML(aAnalysis.name) & """" + out.WriteLine " application=""" & aAnalysis.Application & """" + out.WriteLine " issues-count=""" & (aAnalysis.IssuesCount) & """" + out.WriteLine " pages=""" & aAnalysis.PageCount & """" + out.WriteLine " created=""" & CheckDate(aAnalysis.Created) & """" + out.WriteLine " modified=""" & CheckDate(aAnalysis.Modified) & """" + out.WriteLine " accessed=""" & CheckDate(aAnalysis.Accessed) & """" + out.WriteLine " printed=""" & CheckDate(aAnalysis.Printed) & """" + out.WriteLine " last-save-by=""" & aAnalysis.SavedBy & """" + out.WriteLine " revision=""" & aAnalysis.Revision & """" + out.WriteLine " based-on-template=""" & EncodeXML(aAnalysis.Template) & """" + out.WriteLine ">" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteXMLDocPropertiesEndTag(out As TextStream) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLDocPropertiesEndTag" + + out.WriteLine "</document>" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteXMLDocRefDetails(out As TextStream, aAnalysis As DocumentAnalysis) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLDocRefDetails" + Dim myIssue As IssueInfo + + 'Output References for Docs with Macros + If aAnalysis.HasMacros And (aAnalysis.References.count > 0) Then + out.WriteLine "<references>" + For Each myIssue In aAnalysis.References + OutputXMLReferenceAttributes out, aAnalysis, myIssue + Next myIssue + out.WriteLine "</references>" + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub OutputXMLReferenceAttributes(out As TextStream, aAnalysis As DocumentAnalysis, myIssue As IssueInfo) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OutputXMLReferenceAttributes" + Dim strAttributes As String + + With myIssue + out.WriteLine "<reference" + + strAttributes = .Values("Major") & "." & .Values("Minor") + strAttributes = IIf(strAttributes = "0.0" Or strAttributes = ".", .Values("Name"), _ + .Values("Name") & " " & .Values("Major") & "." & .Values("Minor")) + out.WriteLine " name=""" & EncodeXML(strAttributes) & """" + + If .Values("Type") = "Project" Then + strAttributes = "Project reference" + Else + strAttributes = IIf(.Values("Description") <> "", .Values("Description"), RID_STR_COMMON_NA) + End If + out.WriteLine " description=""" & EncodeXML(strAttributes) & """" + If .Values("IsBroken") <> RID_STR_COMMON_ATTRIBUTE_BROKEN Then + out.WriteLine " location=""" & .Values("File") & """" + End If + out.WriteLine " type=""" & .Values("Type") & """" + strAttributes = IIf(.Values("GUID") <> "", .Values("GUID"), RID_STR_COMMON_NA) + out.WriteLine " GUID=""" & strAttributes & """" + out.WriteLine " is-broken=""" & .Values("IsBroken") & """" + out.WriteLine " builtin=""" & .Values("BuiltIn") & """" + + out.WriteLine " />" + End With + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteXMLDocIssueDetails(out As TextStream, aAnalysis As DocumentAnalysis) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLDocIssueDetails" + + Dim myIssue As IssueInfo + + If aAnalysis.Issues.count = 0 Then Exit Sub + + out.WriteLine "<issues>" + For Each myIssue In aAnalysis.Issues + OutputXMLCommonIssueDetails out, aAnalysis, myIssue + OutputXMLCommonIssueAttributes out, myIssue + out.WriteLine "</issue>" + Next myIssue + out.WriteLine "</issues>" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub OutputXMLCommonIssueDetails(out As TextStream, aAnalysis As DocumentAnalysis, myIssue As IssueInfo) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OutputXMLCommonIssueDetails" + + out.WriteLine "<issue category=""" & myIssue.IssueTypeXML & """" + out.WriteLine " type=""" & myIssue.SubTypeXML & """" + + 'NOTE: Dropping severity - now stored in results.xlt, do not want to open it to fetch this data + 'out.WriteLine " severity=""" & IIf(CheckForMinorIssue(aAnalysis, myIssue), "Minor", "Major") & """" + out.WriteLine " prepared=""" & IIf((myIssue.Preparable), "True", "False") & """ >" + + out.WriteLine "<location type=""" & myIssue.locationXML & """ >" + + If myIssue.SubLocation <> "" Then + out.WriteLine "<property name=""sublocation"" value=""" & myIssue.SubLocation & """ />" + End If + If myIssue.Line <> -1 Then + out.WriteLine "<property name=""line"" value=""" & myIssue.Line & """ />" + End If + If myIssue.column <> "" Then + out.WriteLine "<property name=""column"" value=""" & myIssue.column & """ />" + End If + out.WriteLine "</location>" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub OutputXMLCommonIssueAttributes(out As TextStream, myIssue As IssueInfo) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "OutputXMLCommonIssueAttributes" + + Dim index As Integer + Dim valStr As String + Dim attStr As String + + If myIssue.Attributes.count = 0 Then Exit Sub + + out.WriteLine "<details>" + For index = 1 To myIssue.Attributes.count + attStr = myIssue.Attributes(index) + If InStr(attStr, RID_STR_COMMON_NOTE_PRE & "[") = 1 Then + attStr = Right$(attStr, Len(attStr) - Len(RID_STR_COMMON_NOTE_PRE & "[")) + attStr = Left$(attStr, Len(attStr) - 1) + out.WriteLine "<note index=""" & attStr & """ value=""" & EncodeXML(myIssue.Values(index)) & """ />" + Else + out.WriteLine "<property name=""" & EncodeXML(myIssue.Attributes(index)) & """ value=""" & EncodeXML(myIssue.Values(index)) & """ />" + End If + Next index + + out.WriteLine "</details>" + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + + +Sub WriteXMLOutput(storeToDir As String, resultsFile As String, _ + bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, AnalysedDocs As Collection, _ + fso As Scripting.FileSystemObject) + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteXMLOutput" + + Dim xmlOutput As TextStream + Dim xmlOrigOutput As TextStream + Dim origOutput As String + Dim analysis As DocumentAnalysis + Dim outFilePath As String + + outFilePath = storeToDir & "\" & fso.GetBaseName(resultsFile) & "_" & _ + getAppSpecificApplicationName & ".xml" + + Set xmlOutput = fso.CreateTextFile(outFilePath, True) + WriteXMLHeader xmlOutput + + 'Set xmlOrigOutput = fso.OpenTextFile(outFilePath, ForReading) + 'Set xmlOutput = fso.OpenTextFile(outFilePath, ForWriting) + + WriteXMLResultsStartTag xmlOutput + For Each analysis In AnalysedDocs + WriteXMLDocProperties xmlOutput, analysis + WriteXMLDocRefDetails xmlOutput, analysis + WriteXMLDocIssueDetails xmlOutput, analysis + WriteXMLDocPropertiesEndTag xmlOutput + Next analysis + WriteXMLResultsEndTag xmlOutput + +FinalExit: + xmlOutput.Close + Set xmlOutput = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : path " & outFilePath & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Private Function EncodeUrl(ByVal sUrl As String) As String + Const MAX_PATH As Long = 260 + Const ERROR_SUCCESS As Long = 0 + Const URL_DONT_SIMPLIFY As Long = &H8000000 + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "EncodeUrl" + + Dim sUrlEsc As String + Dim dwSize As Long + Dim dwFlags As Long + + If Len(sUrl) > 0 Then + + sUrlEsc = Space$(MAX_PATH) + dwSize = Len(sUrlEsc) + dwFlags = URL_DONT_SIMPLIFY + + If UrlEscape(sUrl, _ + sUrlEsc, _ + dwSize, _ + dwFlags) = ERROR_SUCCESS Then + + EncodeUrl = Left$(sUrlEsc, dwSize) + + End If 'If UrlEscape + End If 'If Len(sUrl) > 0 + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : sUrl " & sUrl & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Private Function EncodeXML(Str As String) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "EncodeXML" + + Str = Replace(Str, "^", "^") + Str = Replace(Str, "&", "&") + Str = Replace(Str, "`", "'") + Str = Replace(Str, "{", "{") + Str = Replace(Str, "}", "}") + Str = Replace(Str, "|", "|") + Str = Replace(Str, "]", "]") + Str = Replace(Str, "[", "[") + Str = Replace(Str, """", """) + Str = Replace(Str, "<", "<") + Str = Replace(Str, ">", ">") + + 'str = Replace(str, "\", "\") + 'str = Replace(str, "#", "#") + 'str = Replace(str, "?", "?") + 'str = Replace(str, "/", "/") + + EncodeXML = Str + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : string " & Str & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + + +Function ReplaceTopicTokens(sString As String, _ + sToken As String, _ + sReplacement As String) As String + On Error Resume Next + + Dim p As Integer + Dim sTmp As String + + sTmp = sString + Do + p = InStr(sTmp, sToken) + If p Then + sTmp = Left(sTmp, p - 1) + sReplacement + Mid(sTmp, p + Len(sToken)) + End If + Loop While p > 0 + + + ReplaceTopicTokens = sTmp + +End Function + +Function ReplaceTopic2Tokens(sString As String, _ + sToken1 As String, _ + sReplacement1 As String, _ + sToken2 As String, _ + sReplacement2 As String) As String + On Error Resume Next + + ReplaceTopic2Tokens = _ + ReplaceTopicTokens(ReplaceTopicTokens(sString, sToken1, sReplacement1), _ + sToken2, sReplacement2) +End Function + +'Language setting functions +Function GetResourceDataFileName(thisDir As String) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetResourceDataFileName" + + Dim fso As FileSystemObject + Set fso = New FileSystemObject + + 'A debug method - if a file called debug.dat exists load it. + If fso.FileExists(fso.GetAbsolutePathName(thisDir & "\debug.dat")) Then + GetResourceDataFileName = fso.GetAbsolutePathName(thisDir & "\debug.dat") + GoTo FinalExit + End If + + Dim isoLangStr As String + Dim isoCountryStr As String + Dim langDir As String + + langDir = thisDir & "\" & "lang" + + Dim userLCID As Long + userLCID = GetUserDefaultLangID() + Dim sysLCID As Long + sysLCID = GetSystemDefaultLangID() + + isoLangStr = GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME) + isoCountryStr = GetUserLocaleInfo(userLCID, LOCALE_SISO3166CTRYNAME) + + 'check for locale data in following order: + ' user language + ' isoLangStr & "_" & isoCountryStr & ".dat" + ' isoLangStr & ".dat" + ' system language + ' isoLangStr & "_" & isoCountryStr & ".dat" + ' isoLangStr & ".dat" + ' "en_US" & ".dat" + + If fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")) Then + GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat") + ElseIf fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")) Then + GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat") + Else + isoLangStr = GetUserLocaleInfo(sysLCID, LOCALE_SISO639LANGNAME) + isoCountryStr = GetUserLocaleInfo(sysLCID, LOCALE_SISO3166CTRYNAME) + + If fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")) Then + GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat") + ElseIf fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")) Then + GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat") + Else + GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & "en-US.dat") + End If + End If +FinalExit: + Set fso = Nothing + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Public Function GetUserLocaleInfo(ByVal dwLocaleID As Long, ByVal dwLCType As Long) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetUserLocaleInfo" + Dim sReturn As String + Dim r As Long + + 'call the function passing the Locale type + 'variable to retrieve the required size of + 'the string buffer needed + r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) + + 'if successful.. + If r Then + 'pad the buffer with spaces + sReturn = Space$(r) + + 'and call again passing the buffer + r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) + + 'if successful (r > 0) + If r Then + 'r holds the size of the string + 'including the terminating null + GetUserLocaleInfo = Left$(sReturn, r - 1) + End If + End If + +FinalExit: + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +' This function returns the Application Data Folder Path +Function GetAppDataFolder() As String + Dim idlstr As Long + Dim sPath As String + Dim IDL As ITEMIDLIST + Const NOERROR = 0 + Const MAX_LENGTH = 260 + Const CSIDL_APPDATA = &H1A + + On Error GoTo Err_GetFolder + + ' Fill the idl structure with the specified folder item. + idlstr = SHGetSpecialFolderLocation(0, CSIDL_APPDATA, IDL) + + If idlstr = NOERROR Then + ' Get the path from the idl list, and return + ' the folder with a slash at the end. + sPath = Space$(MAX_LENGTH) + idlstr = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath) + If idlstr Then + GetAppDataFolder = Left$(sPath, InStr(sPath, Chr$(0)) - 1) + End If + End If + +Exit_GetFolder: + Exit Function + +Err_GetFolder: + MsgBox "An Error was Encountered" & Chr(13) & Err.Description, _ + vbCritical Or vbOKOnly + Resume Exit_GetFolder + +End Function + +Sub WriteToStatFile(statFileName As String, statValue As Integer, _ + currDocument As String, fso As Scripting.FileSystemObject) + + On Error Resume Next + + Dim fileCont As TextStream + + Set fileCont = fso.OpenTextFile(statFileName, ForWriting, True, TristateTrue) + If (statValue = C_STAT_STARTING) Then + fileCont.WriteLine ("analysing=" & currDocument) + ElseIf (statValue = C_STAT_DONE) Then + fileCont.WriteLine ("analysed=" & currDocument) + ElseIf (statValue = C_STAT_FINISHED) Then + fileCont.WriteLine ("finished") + End If + + fileCont.Close +End Sub + +' The function FindIndex looks for a document in the given document list +' starting at the position lastIndex in that list. If the document could +' not be found, the function starts searching from the beginning + +Function FindIndex(myDocument As String, _ + myDocList As Collection, _ + lastIndex As Long) As Long + + Dim lastEntry As Long + Dim curIndex As Long + Dim curEntry As String + Dim entryFound As Boolean + + entryFound = False + lastEntry = myDocList.count + + If (lastIndex > lastEntry) Then lastIndex = lastEntry + + If (lastIndex > 1) Then + curIndex = lastIndex + Else + curIndex = 1 + End If + + While Not entryFound And curIndex <= lastEntry + curEntry = myDocList.item(curIndex) + If (curEntry = myDocument) Then + entryFound = True + Else + curIndex = curIndex + 1 + End If + Wend + + If (Not entryFound) Then + curIndex = 1 + While Not entryFound And curIndex < lastIndex + curEntry = myDocList.item(curIndex) + If (curEntry = myDocument) Then + entryFound = True + Else + curIndex = curIndex + 1 + End If + Wend + End If + + If entryFound Then + FindIndex = curIndex + Else + FindIndex = 0 + End If + +End Function + +' The sub GetIndexValues calulates the start index of the analysis and the index +' of the file after which the next intermediate reult will be written +Function GetIndexValues(startIndex As Long, nextCheck As Long, _ + myFiles As Collection) As Boolean + + Dim lastCheckpoint As String + Dim nextFile As String + Dim newResultsFile As Boolean + + lastCheckpoint = ProfileGetItem(C_ANALYSIS, C_LAST_CHECKPOINT, "", mIniFilePath) + nextFile = ProfileGetItem(C_ANALYSIS, C_NEXT_FILE, "", mIniFilePath) + newResultsFile = True + + If (nextFile = "") Then + ' No Analysis done yet + startIndex = 1 + nextCheck = C_MAX_CHECK + Else + If (lastCheckpoint = "") Then + startIndex = 1 + Else + startIndex = FindIndex(lastCheckpoint, myFiles, 1) + 1 + If (startIndex > 0) Then newResultsFile = False + End If + + nextCheck = FindIndex(nextFile, myFiles, startIndex - 1) + + If (nextCheck = 0) Then ' Next file not in file list, restarting + startIndex = 1 + nextCheck = C_MAX_CHECK + newResultsFile = True + ElseIf (nextCheck < startIndex) Then 'we are done? + nextCheck = startIndex + C_MAX_CHECK + ElseIf (nextCheck = startIndex) Then 'skip this one + WriteToLog C_ERROR_HANDLING_DOC & nextCheck, nextFile + startIndex = startIndex + 1 + nextCheck = startIndex + C_MAX_CHECK + Else 'last time an error occurred with that file, write before analysing + nextCheck = nextCheck - 1 + End If + End If + GetIndexValues = newResultsFile +End Function + +Private Sub GetDocModificationDates(docCounts As DocModificationDates) + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetDocModificationDates" + + docCounts.lessThanThreemonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_3_MONTH, "0", mIniFilePath)) + docCounts.threeToSixmonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_6_MONTH, "0", mIniFilePath)) + docCounts.sixToTwelvemonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_12_MONTH, "0", mIniFilePath)) + docCounts.greaterThanOneYear = CLng(ProfileGetItem("Analysis", C_DOCS_MORE_12_MONTH, "0", mIniFilePath)) + +FinalExit: + Exit Sub +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub diff --git a/migrationanalysis/src/driver_docs/sources/CommonMigrationAnalyser.bas b/migrationanalysis/src/driver_docs/sources/CommonMigrationAnalyser.bas index cad3894a9b63..280f7beed8c0 100644 --- a/migrationanalysis/src/driver_docs/sources/CommonMigrationAnalyser.bas +++ b/migrationanalysis/src/driver_docs/sources/CommonMigrationAnalyser.bas @@ -1,1112 +1,1112 @@ -Attribute VB_Name = "CommonMigrationAnalyser"
-'*************************************************************************
-'
-' Licensed to the Apache Software Foundation (ASF) under one
-' or more contributor license agreements. See the NOTICE file
-' distributed with this work for additional information
-' regarding copyright ownership. The ASF licenses this file
-' to you under the Apache License, Version 2.0 (the
-' "License"); you may not use this file except in compliance
-' with the License. You may obtain a copy of the License at
-'
-' http://www.apache.org/licenses/LICENSE-2.0
-'
-' Unless required by applicable law or agreed to in writing,
-' software distributed under the License is distributed on an
-' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-' KIND, either express or implied. See the License for the
-' specific language governing permissions and limitations
-' under the License.
-'
-'*************************************************************************
-Option Explicit
-
-
-'***********************************************
-'**** APPLICATION COMMON ANALYSIS FUNCTIONS ****
-'***********************************************
-
-'** Common - XML Issue and SubIssue strings
-'For preparation - need access to some Word/ Excel or PP consts
-Public Const CSTR_ISSUE_OBJECTS_GRAPHICS_AND_FRAMES = "ObjectsGraphicsAndFrames"
-Public Const CSTR_SUBISSUE_OBJECT_IN_HEADER_FOOTER = "ObjectInHeaderFooter"
-
-Public Const CSTR_ISSUE_INFORMATION = "Information"
-Public Const CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES = "ContentAndDocumentProperties"
-Public Const CSTR_ISSUE_FORMAT = "Format"
-Public Const CSTR_ISSUE_PORTABILITY = "Portability"
-Public Const CSTR_ISSUE_VBA_MACROS = "VBAMacros"
-
-Public Const CSTR_SUBISSUE_DOCUMENT_PARTS_PROTECTION = "DocumentPartsProtection"
-Public Const CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO = "ExternalReferencesInMacro"
-Public Const CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO_COUNT = "ExternalReferencesInMacroCount"
-Public Const CSTR_SUBISSUE_GRADIENT = "Gradient"
-Public Const CSTR_SUBISSUE_INVALID_PASSWORD_ENTERED = "InvalidPasswordEntered"
-Public Const CSTR_SUBISSUE_LINE = "Line"
-Public Const CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION = "PasswordProtected"
-Public Const CSTR_SUBISSUE_OLD_WORKBOOK_VERSION = "OldWorkbookVersion"
-Public Const CSTR_SUBISSUE_OLE_EMBEDDED = "EmbeddedOLEObject"
-Public Const CSTR_SUBISSUE_OLE_LINKED = "LinkedOLEObject"
-Public Const CSTR_SUBISSUE_OLE_CONTROL = "OLEControl"
-Public Const CSTR_SUBISSUE_OLE_FIELD_LINK = "OLEFieldLink"
-Public Const CSTR_SUBISSUE_OLE_UNKNOWN = "UnknownType"
-Public Const CSTR_SUBISSUE_PASSWORDS_PROTECTION = "PasswordProtection"
-Public Const CSTR_SUBISSUE_PROPERTIES = "Properties"
-Public Const CSTR_SUBISSUE_REFERENCES = "References"
-Public Const CSTR_SUBISSUE_TRANSPARENCY = "Transparency"
-Public Const CSTR_SUBISSUE_VBA_MACROS_NUMLINES = "NumberOfLines"
-Public Const CSTR_SUBISSUE_VBA_MACROS_USERFORMS_COUNT = "UserFormsCount"
-Public Const CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROL_COUNT = "UserFormsControlCount"
-Public Const CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROLTYPE_COUNT = "UserFormsControlTypeCount"
-Public Const CSTR_SUBISSUE_VBA_MACROS_UNIQUE_MODULE_COUNT = "UniqueModuleCount"
-Public Const CSTR_SUBISSUE_VBA_MACROS_UNIQUE_LINE_COUNT = "UniqueLineCount"
-'** END Common - XML Issue and SubIssue strings
-
-'Macro classification bounds
-Public Const CMACRO_LINECOUNT_MEDIUM_LBOUND = 50
-
-'Don't localize folder name
-Public Const CSTR_COMMON_PREPARATION_FOLDER = "prepared"
-
-
-Public Enum EnumDocOverallMacroClass
- enMacroNone = 0
- enMacroSimple = 1
- enMacroMedium = 2
- enMacroComplex = 3
-End Enum
-Public Enum EnumDocOverallIssueClass
- enNone = 0
- enMinor = 1
- enComplex = 2
-End Enum
-
-Sub EmptyCollection(docAnalysis As DocumentAnalysis, coll As Collection)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "EmptyCollection"
- Dim Num As Long
- For Num = 1 To coll.count ' Remove name from the collection.
- coll.Remove 1 ' Default collection numeric indexes
- Next ' begin at 1.
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-Public Function Analyze_Macros(docAnalysis As DocumentAnalysis, _
- userFormTypesDict As Scripting.Dictionary, _
- currDoc As Object)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Macros"
- Dim macroDetails As String
- Dim cmpDetails As String
- Dim myProject As VBProject
- Dim myComponent As VBComponent
- Dim numLines As Long
- Dim myIssue As IssueInfo
- Dim wrd As Object
- Dim bUserFormWithEmptyCodeModule As Boolean
-
- On Error Resume Next
- Set myProject = getAppSpecificVBProject(currDoc)
- If Err.Number <> 0 Then
- ' Failed to get access to VBProject
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & _
- RID_STR_COMMON_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT & ":" & _
- RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE
-
- GoTo FinalExit
- End If
-
- On Error GoTo HandleErrors
- If myProject.Protection = vbext_pp_locked Then
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_VBA_MACROS
- .IssueType = RID_STR_COMMON_ISSUE_VBA_MACROS
- .SubType = RID_STR_COMMON_SUBISSUE_MACRO_PASSWORD_PROTECTION
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_VBA_MACROS
- .SubTypeXML = CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_VBPROJECT_PASSWORD
- .Values.Add RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE
- End With
- docAnalysis.IssuesCountArray(CID_VBA_MACROS) = _
- docAnalysis.IssuesCountArray(CID_VBA_MACROS) + 1
- docAnalysis.Issues.Add myIssue
- docAnalysis.MacroIssuesCount = docAnalysis.MacroIssuesCount + 1
-
- docAnalysis.HasMacros = True
- GoTo FinalExit
- End If
-
- Dim myContolDict As Scripting.Dictionary
- For Each myComponent In myProject.VBComponents
-
- bUserFormWithEmptyCodeModule = False
- If CheckEmptyProject(docAnalysis, myProject, myComponent) Then
- If myComponent.Type <> vbext_ct_MSForm Then
- GoTo FOREACH_CONTINUE
- Else
- bUserFormWithEmptyCodeModule = True
- End If
- End If
-
- Analyze_MacrosForPortabilityIssues docAnalysis, myProject, myComponent
-
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_VBA_MACROS
- .IssueType = RID_STR_COMMON_ISSUE_VBA_MACROS
- .SubType = RID_STR_COMMON_SUBISSUE_PROPERTIES
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_VBA_MACROS
- .SubTypeXML = CSTR_SUBISSUE_PROPERTIES
- .locationXML = .CXMLLocationDocument
-
- .SubLocation = VBComponentType(myComponent)
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PROJECT
- .Values.Add myProject.name
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_COMPONENT
- .Values.Add myComponent.name
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PROCEDURES
- .Values.Add VBNumFuncs(docAnalysis, myComponent.CodeModule), RID_STR_COMMON_ATTRIBUTE_PROCEDURES
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES
- numLines = VBNumLines(docAnalysis, myComponent.CodeModule)
- .Values.Add numLines, RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES
-
- If bUserFormWithEmptyCodeModule Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SIGNATURE
- .Values.Add RID_STR_COMMON_NA, RID_STR_COMMON_ATTRIBUTE_SIGNATURE
- Else
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SIGNATURE
- .Values.Add MD5HashString( _
- myComponent.CodeModule.Lines(1, myComponent.CodeModule.CountOfLines)), _
- RID_STR_COMMON_ATTRIBUTE_SIGNATURE
- End If
-
- docAnalysis.MacroTotalNumLines = numLines + docAnalysis.MacroTotalNumLines
- End With
-
- ' User Forms - control details
- If (myComponent.Type = vbext_ct_MSForm) And Not bUserFormWithEmptyCodeModule Then
- myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_CONTROLS
- myIssue.Values.Add myComponent.Designer.Controls.count, RID_STR_COMMON_ATTRIBUTE_CONTROLS
- docAnalysis.MacroNumUserForms = 1 + docAnalysis.MacroNumUserForms
- docAnalysis.MacroNumUserFormControls = myComponent.Designer.Controls.count + docAnalysis.MacroNumUserFormControls
-
- Dim myControl As Control
- Dim controlTypes As String
- Dim myType As String
-
- Set myContolDict = New Scripting.Dictionary
-
- For Each myControl In myComponent.Designer.Controls
- myType = TypeName(myControl)
- If myContolDict.Exists(myType) Then
- myContolDict.item(myType) = myContolDict.item(myType) + 1
- Else
- myContolDict.Add myType, 1
- End If
- If userFormTypesDict.Exists(myType) Then
- userFormTypesDict.item(myType) = userFormTypesDict.item(myType) + 1
- Else
- userFormTypesDict.Add myType, 1
- End If
- Next
-
- If myComponent.Designer.Controls.count > 0 Then
- Dim count As Long
- Dim vKeyArray As Variant
- Dim vItemArray As Variant
-
- vKeyArray = myContolDict.Keys
- vItemArray = myContolDict.Items
-
- controlTypes = ""
- For count = 0 To myContolDict.count - 1
- controlTypes = controlTypes & vKeyArray(count) & " " & CInt(vItemArray(count)) & " "
- Next count
- myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE
- myIssue.Values.Add controlTypes, RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE
-
- myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT
- myIssue.Values.Add myContolDict.count, RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT
-
- docAnalysis.MacroNumUserFormControlTypes = myContolDict.count + docAnalysis.MacroNumUserFormControlTypes
- End If
- Set myContolDict = Nothing
- End If
-
- 'Check for occurence of " Me " in Form and Class Modules
- If myComponent.Type = vbext_ct_MSForm Or _
- myComponent.Type = vbext_ct_ClassModule Then
-
- Dim strFind As String
- strFind = ""
- count = 0
- strFind = VBFindLines(docAnalysis, myComponent.CodeModule, "Me", count, bWholeWord:=True)
-' If (strFind <> "") Then MsgBox strFind
-
- If count > 0 Then
- myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT
- myIssue.Values.Add count, RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT
- End If
- End If
-
- docAnalysis.IssuesCountArray(CID_VBA_MACROS) = _
- docAnalysis.IssuesCountArray(CID_VBA_MACROS) + 1
- docAnalysis.Issues.Add myIssue
- docAnalysis.MacroIssuesCount = docAnalysis.MacroIssuesCount + 1
-
- Set myIssue = Nothing
-
-FOREACH_CONTINUE:
- 'No equiv to C continue in VB
- Next myComponent 'End - For Each myComponent
-
- If docAnalysis.IssuesCountArray(CID_VBA_MACROS) > 0 Then
- Analyze_VBEReferences docAnalysis, currDoc
- docAnalysis.HasMacros = True
- End If
-
-FinalExit:
- docAnalysis.MacroOverallClass = ClassifyDocOverallMacroClass(docAnalysis)
-
- Set myProject = Nothing
- Set myIssue = Nothing
- Set myContolDict = Nothing
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function CheckOnlyEmptyProject(docAnalysis As DocumentAnalysis, currDoc As Object) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckOnlyEmptyProject"
- Dim myProject As VBProject
- Set myProject = getAppSpecificVBProject(currDoc)
- Dim myVBComponent As VBComponent
-
- For Each myVBComponent In myProject.VBComponents
- If Not CheckEmptyProject(docAnalysis, myProject, myVBComponent) Then
- CheckOnlyEmptyProject = False
- GoTo FinalExit
- End If
- Next myVBComponent
-
- CheckOnlyEmptyProject = True
-
-FinalExit:
- Set myProject = Nothing
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Sub Analyze_VBEReferences(docAnalysis As DocumentAnalysis, currDoc As Object)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_VBEReferences"
- 'References
- Dim Ref As Reference
- Dim fso As Scripting.FileSystemObject
- Dim myVBProject As VBProject
- Dim myVBComponent As VBComponent
-
- Set fso = New Scripting.FileSystemObject
-
- If CheckOnlyEmptyProject(docAnalysis, currDoc) Then
- Exit Sub
- End If
- Set myVBProject = getAppSpecificVBProject(currDoc)
-
- For Each Ref In myVBProject.References
- Analyze_VBEReferenceSingle docAnalysis, Ref, fso
- Next Ref
-
-FinalExit:
- Set myVBProject = Nothing
- Set fso = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_VBEReferenceSingle(docAnalysis As DocumentAnalysis, Ref As Reference, fso As Scripting.FileSystemObject)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_VBEReferenceSingle"
- 'References
- Dim myIssue As IssueInfo
- Dim bBadRef As Boolean
-
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_INFORMATION_REFS
- .IssueType = RID_STR_COMMON_ISSUE_INFORMATION
- .SubType = RID_STR_COMMON_SUBISSUE_REFERENCES
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_INFORMATION
- .SubTypeXML = CSTR_SUBISSUE_REFERENCES
- .locationXML = .CXMLLocationDocument
-
- If Ref.GUID = "" Then
- bBadRef = True
- Else
- bBadRef = False
- End If
- If Not bBadRef Then
- .SubLocation = LCase(fso.GetFileName(Ref.FullPath))
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add Ref.name, RID_STR_COMMON_ATTRIBUTE_NAME
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_DESCRIPTION
- .Values.Add Ref.Description, RID_STR_COMMON_ATTRIBUTE_DESCRIPTION
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_FILE
- .Values.Add LCase(fso.GetFileName(Ref.FullPath)), RID_STR_COMMON_ATTRIBUTE_FILE
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PATH
- .Values.Add LCase(Ref.FullPath), RID_STR_COMMON_ATTRIBUTE_PATH
- Else
- .SubLocation = RID_STR_COMMON_NA
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add RID_STR_COMMON_ATTRIBUTE_MISSING, RID_STR_COMMON_ATTRIBUTE_NAME
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_DESCRIPTION
- .Values.Add RID_STR_COMMON_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES, RID_STR_COMMON_ATTRIBUTE_DESCRIPTION
- End If
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_MAJOR
- .Values.Add IIf(Not bBadRef, Ref.Major, ""), RID_STR_COMMON_ATTRIBUTE_MAJOR
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_MINOR
- .Values.Add IIf(Not bBadRef, Ref.Minor, ""), RID_STR_COMMON_ATTRIBUTE_MINOR
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_TYPE
- .Values.Add IIf(Ref.Type = vbext_rk_Project, RID_STR_COMMON_ATTRIBUTE_PROJECT, RID_STR_COMMON_ATTRIBUTE_TYPELIB), RID_STR_COMMON_ATTRIBUTE_TYPE
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_BUILTIN
- .Values.Add IIf(Ref.BuiltIn, RID_STR_COMMON_ATTRIBUTE_BUILTIN, RID_STR_COMMON_ATTRIBUTE_CUSTOM), RID_STR_COMMON_ATTRIBUTE_BUILTIN
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_ISBROKEN
- .Values.Add IIf(bBadRef, RID_STR_COMMON_ATTRIBUTE_BROKEN, RID_STR_COMMON_ATTRIBUTE_INTACT), RID_STR_COMMON_ATTRIBUTE_ISBROKEN
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_GUID
- .Values.Add IIf(Ref.Type = vbext_rk_TypeLib, Ref.GUID, ""), RID_STR_COMMON_ATTRIBUTE_GUID
- End With
-
- docAnalysis.References.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebugLevelTwo currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_MacrosForPortabilityIssues(docAnalysis As DocumentAnalysis, myProject As VBProject, myComponent As VBComponent)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_MacrosForPortabilityIssues"
- Dim myIssue As IssueInfo
- Dim count As Long
-
- ' Code Modules
- Dim strFind As String
- strFind = VBFindLines(docAnalysis, myComponent.CodeModule, "CreateObject", count, bWholeWord:=True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "GetObject", count, bWholeWord:=True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "ADODB.", count, True, True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "Word.", count, True, True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "Excel.", count, True, True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "PowerPoint.", count, True, True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "Access.", count, True, True) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "Declare Function ", count, False) & _
- VBFindLines(docAnalysis, myComponent.CodeModule, "Declare Sub ", count, False)
-
-
- If (strFind <> "") And (myComponent.Type <> vbext_ct_Document) Then
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_PORTABILITY
- .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY
- .SubType = RID_STR_COMMON_SUBISSUE_EXTERNAL_REFERENCES_IN_MACROS
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_PORTABILITY
- .SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO
- .locationXML = .CXMLLocationDocument
-
- .SubLocation = VBComponentType(myComponent)
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PROJECT
- .Values.Add myProject.name
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_COMPONENT
- .Values.Add myComponent.name
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES
- .Values.Add RID_STR_COMMON_ATTRIBUTE_INCLUDING & vbLf & Left(strFind, Len(strFind) - 1)
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT
- .Values.Add count, RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT
- End With
- docAnalysis.IssuesCountArray(CID_PORTABILITY) = _
- docAnalysis.IssuesCountArray(CID_PORTABILITY) + 1
- docAnalysis.Issues.Add myIssue
- docAnalysis.MacroNumExternalRefs = count + docAnalysis.MacroNumExternalRefs
- docAnalysis.MacroIssuesCount = docAnalysis.MacroIssuesCount + 1
- End If
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-Resume FinalExit
-End Sub
-
-'Find Lines in code module containing strFind and return list of them
-Function VBFindLines(docAnalysis As DocumentAnalysis, vbcm As CodeModule, strFind As String, _
- count As Long, _
- Optional bInProcedure As Boolean = True, _
- Optional bUsingNew As Boolean = False, _
- Optional bWholeWord As Boolean = False, _
- Optional bMatchCase As Boolean = False) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "VBFindLines"
- Dim lngStartLine As Long
- Dim lngStartCol As Long
- Dim lngEndLine As Long
- Dim lngEndCol As Long
- Dim strLine As String
- lngStartLine = 1
- lngStartCol = 1
- lngEndLine = vbcm.CountOfLines
- Dim tmpString As String
- If (vbcm.CountOfLines = 0) Then
- Exit Function
- End If
- tmpString = vbcm.Lines(vbcm.CountOfLines, 1)
- lngEndCol = Len(vbcm.Lines(vbcm.CountOfLines, 1))
- Dim lngType As Long
- Dim strProc As String
- Dim retStr As String
-
- ' Search
- Do While vbcm.Find(strFind, lngStartLine, _
- lngStartCol, lngEndLine, lngEndCol, bWholeWord, bMatchCase)
-
- 'Ignore any lines using this func
- If InStr(1, vbcm.Lines(lngStartLine, 1), "VBFindLines") <> 0 Then
- GoTo CONTINUE_LOOP
- End If
-
- If bInProcedure Then
- If bUsingNew Then
- If InStr(1, vbcm.Lines(lngStartLine, 1), "New") <> 0 Then
- strProc = vbcm.ProcOfLine(lngStartLine, lngType)
- Else
- strProc = ""
- End If
- Else
- strProc = vbcm.ProcOfLine(lngStartLine, lngType)
- End If
- If strProc = "" Then GoTo CONTINUE_LOOP
-
- VBFindLines = VBFindLines & "[" & strProc & " ( ) - " & lngStartLine & " ]" & _
- vbLf & vbcm.Lines(lngStartLine, 1) & vbLf
- Else
- strProc = vbcm.Lines(lngStartLine, 1)
- If strProc = "" Then GoTo CONTINUE_LOOP
-
- 'Can be External refs, Const, Type or variable declarations
- If InStr(1, vbcm.Lines(lngStartLine, 1), "Declare Function") <> 0 Then
- VBFindLines = VBFindLines & "[" & RID_STR_COMMON_DEC_TO_EXTERNAL_LIBRARY & " - " & lngStartLine & " ]" & _
- vbLf & strProc & vbLf
- Else
- VBFindLines = VBFindLines & "[" & RID_STR_COMMON_VB_COMPONENT_MODULE & " " & strFind & _
- " - " & lngStartLine & " ]" & vbLf
- End If
- End If
- count = count + 1
-
-CONTINUE_LOOP:
- 'Reset Params to search for next hit
- lngStartLine = lngEndLine + 1
- lngStartCol = 1
- lngEndLine = vbcm.CountOfLines
- lngEndCol = Len(vbcm.Lines(vbcm.CountOfLines, 1))
-
- If lngStartLine >= lngEndLine Then Exit Function
-
- Loop 'End - Do While vbcm.Find
- VBFindLines = VBFindLines
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Function
-Function VBNumLines(docAnalysis As DocumentAnalysis, vbcm As CodeModule) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "VBNumLines"
- Dim cLines As Long
- Dim lngType As Long
- Dim strProc As String
-
- 'Issue: Just give line count in module to be in sync with Macro Analysis and Migration Wizard
- VBNumLines = vbcm.CountOfLines
-
- 'For cLines = 1 To vbcm.CountOfLines
- ' strProc = vbcm.ProcOfLine(cLines, lngType)
- ' If strProc <> "" Then
- ' VBNumLines = VBNumLines - _
- ' (vbcm.ProcBodyLine(strProc, lngType) - vbcm.ProcStartLine(strProc, lngType))
- ' cLines = cLines + vbcm.ProcCountLines(strProc, lngType) - 1
- ' End If
- 'Next
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Function
-Function VBNumFuncs(docAnalysis As DocumentAnalysis, vbcm As CodeModule) As Long
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "VBNumFuncs"
- Dim cLines As Long
- Dim lngType As Long
- Dim strProc As String
-
- For cLines = 1 To vbcm.CountOfLines
- strProc = vbcm.ProcOfLine(cLines, lngType)
- If strProc <> "" Then
- VBNumFuncs = VBNumFuncs + 1
- cLines = cLines + vbcm.ProcCountLines(strProc, lngType) - 1
- End If
- Next
- Exit Function
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Function
-
-Function VBComponentType(vbc As VBComponent) As String
- Select Case vbc.Type
- Case vbext_ct_StdModule
- VBComponentType = RID_STR_COMMON_VB_COMPONENT_STANDARD
- Case vbext_ct_ClassModule
- VBComponentType = RID_STR_COMMON_VB_COMPONENT_CLASS
- Case vbext_ct_MSForm
- VBComponentType = RID_STR_COMMON_VB_COMPONENT_USER_FORM
- Case vbext_ct_Document
- VBComponentType = RID_STR_COMMON_VB_COMPONENT_DOCUMENT
- Case 11 'vbext_ct_ActiveX Designer
- VBComponentType = RID_STR_COMMON_VB_COMPONENT_ACTIVEX_DESIGNER
- Case Else
- VBComponentType = RID_STR_COMMON_UNKNOWN
- End Select
-End Function
-
-Function CheckEmptyProject(docAnalysis As DocumentAnalysis, myProject As VBProject, myComponent As VBComponent) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckEmptyProject"
- Dim bEmptyProject As Boolean
-
- 'Bug: Can have empty project with different name from default, would be picked up
- ' as not empty.
- 'bEmptyProject = _
- ' (StrComp(myProject.name, CTOPLEVEL_PROJECT) = 0) And _
- ' (VBNumFuncs(docAnalysis, myComponent.CodeModule) = 0) And _
- ' (VBNumLines(docAnalysis, myComponent.CodeModule) < 3)
-
- ' Code Modules
- Dim strFind As String
- Dim count As Long
- 'Check for:
- 'Public Const myFoo ....
- 'Public Declare Function ....
- 'Public myVar As ...
- strFind = VBFindLines(docAnalysis, myComponent.CodeModule, "Public", _
- count, bInProcedure:=False, bWholeWord:=True, bMatchCase:=True)
-
- bEmptyProject = _
- (VBNumFuncs(docAnalysis, myComponent.CodeModule) = 0) And _
- (VBNumLines(docAnalysis, myComponent.CodeModule) < 3) And _
- (strFind = "")
-
- CheckEmptyProject = IIf(bEmptyProject, True, False)
- Exit Function
-
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Function
-
-Function getCustomDocPropTypeAsString(propType As MsoDocProperties)
- Dim Str As String
-
- Select Case propType
- Case msoPropertyTypeBoolean
- Str = RID_STR_COMMON_YES_OR_NO
- Case msoPropertyTypeDate
- Str = RID_STR_COMMON_DATE
- Case msoPropertyTypeFloat
- Str = RID_STR_COMMON_NUMBER
- Case msoPropertyTypeNumber
- Str = RID_STR_COMMON_NUMBER
- Case msoPropertyTypeString
- Str = RID_STR_COMMON_TEXT
- Case Else
- Str = "Unknown"
- End Select
-
- getCustomDocPropTypeAsString = Str
-End Function
-
-Sub HandleProtectedDocInvalidPassword(docAnalysis As DocumentAnalysis, strError As String, fso As FileSystemObject)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "HandleProtectedDocInvalidPassword"
- Dim f As File
- Set f = fso.GetFile(docAnalysis.name)
-
- docAnalysis.Application = RID_STR_COMMON_PASSWORD_SKIPDOC
-
- On Error Resume Next
- docAnalysis.PageCount = 0
- docAnalysis.Created = f.DateCreated
- docAnalysis.Modified = f.DateLastModified
- docAnalysis.Accessed = f.DateLastAccessed
- docAnalysis.Printed = DateValue("01/01/1900")
- docAnalysis.SavedBy = RID_STR_COMMON_NA
- docAnalysis.Revision = 0
- docAnalysis.Template = RID_STR_COMMON_NA
- On Error GoTo HandleErrors
-
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_STR_COMMON_SUBISSUE_INVALID_PASSWORD_ENTERED
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_INVALID_PASSWORD_ENTERED
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PASSWORD
- .Values.Add strError
-
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- docAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Set f = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_OLEEmbeddedSingleShape(docAnalysis As DocumentAnalysis, aShape As Shape, mySubLocation As Variant)
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_OLEEmbeddedSingleShape"
- Dim myIssue As IssueInfo
- Dim bOleObject As Boolean
- Dim TypeAsString As String
- Dim XMLTypeAsString As String
- Dim objName As String
-
- bOleObject = (aShape.Type = msoEmbeddedOLEObject) Or _
- (aShape.Type = msoLinkedOLEObject) Or _
- (aShape.Type = msoOLEControlObject)
-
- If Not bOleObject Then Exit Sub
-
- aShape.Select
- Select Case aShape.Type
- Case msoEmbeddedOLEObject
- TypeAsString = RID_STR_COMMON_OLE_EMBEDDED
- XMLTypeAsString = CSTR_SUBISSUE_OLE_EMBEDDED
- Case msoLinkedOLEObject
- TypeAsString = RID_STR_COMMON_OLE_LINKED
- XMLTypeAsString = CSTR_SUBISSUE_OLE_LINKED
- Case msoOLEControlObject
- TypeAsString = RID_STR_COMMON_OLE_CONTROL
- XMLTypeAsString = CSTR_SUBISSUE_OLE_CONTROL
- Case Else
- TypeAsString = RID_STR_COMMON_OLE_UNKNOWN
- XMLTypeAsString = CSTR_SUBISSUE_OLE_UNKNOWN
- End Select
-
- Dim appStr As String
- appStr = getAppSpecificApplicationName
-
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_PORTABILITY
- .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY
- .SubType = TypeAsString
- .Location = .CLocationPage
- .SubLocation = mySubLocation
-
- .IssueTypeXML = CSTR_ISSUE_PORTABILITY
- .SubTypeXML = XMLTypeAsString
- .locationXML = .CXMLLocationPage
-
- .Line = aShape.top
- .column = aShape.Left
-
- If aShape.name <> "" Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add aShape.name
- End If
-
- If aShape.Type = msoEmbeddedOLEObject Or _
- aShape.Type = msoOLEControlObject Then
- Dim objType As String
- On Error Resume Next
-
- objType = getAppSpecificOLEClassType(aShape)
-
- If objType = "" Then GoTo FinalExit
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE
- .Values.Add objType
-
- If aShape.Type = msoOLEControlObject Then
- docAnalysis.MacroNumOLEControls = 1 + docAnalysis.MacroNumOLEControls
- End If
-
- If appStr = CAPPNAME_POWERPOINT Then
- '#114127: Too many open windows
- 'Checking for OLEFormat.Object is Nothing or IsEmpty still causes problem
- If objType <> "Equation.3" Then
- objName = aShape.OLEFormat.Object.name
- If Err.Number = 0 Then
- If aShape.name <> objName Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME
- .Values.Add objName
- End If
- End If
- End If
- Else
- If Not (aShape.OLEFormat.Object) Is Nothing Then
- objName = aShape.OLEFormat.Object.name
- If Err.Number = 0 Then
- If aShape.name <> objName Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME
- .Values.Add objName
- End If
- End If
- End If
- End If
-
- On Error GoTo HandleErrors
- End If
-
- If aShape.Type = msoLinkedOLEObject Then
- If appStr <> CAPPNAME_WORD Then
- On Error Resume Next
- Dim path As String
- path = aShape.OLEFormat.Object.SourceFullName
- If Err.Number = 0 Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SOURCE
- .Values.Add path
- End If
- On Error GoTo HandleErrors
- Else
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SOURCE
- .Values.Add aShape.LinkFormat.SourceFullName
- End If
- End If
-
- docAnalysis.IssuesCountArray(CID_PORTABILITY) = _
- docAnalysis.IssuesCountArray(CID_PORTABILITY) + 1
- End With
- docAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebugLevelTwo currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_Lines(docAnalysis As DocumentAnalysis, myShape As Shape, mySubLocation As Variant)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Lines"
-
- If myShape.Line.Style = msoLineSingle Or _
- myShape.Line.Style = msoLineStyleMixed Then Exit Sub
-
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_RESXLS_COST_LineStyle
- .Location = .CLocationPage
- .SubLocation = mySubLocation
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_LINE
- .locationXML = .CXMLLocationPage
-
- .Line = myShape.top
- .column = myShape.Left
-
- If myShape.name <> "" Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add myShape.name
- End If
-
- AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_LINE_NOTE
-
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- docAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_Transparency(docAnalysis As DocumentAnalysis, myShape As Shape, mySubLocation As Variant)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Transparency"
-
- If Not myShape.Type = msoPicture Then Exit Sub
-
- Dim bHasTransparentBkg
- bHasTransparentBkg = False
-
- On Error Resume Next
- If myShape.PictureFormat.TransparentBackground = msoTrue Then
- If Error.Number = 0 Then
- bHasTransparentBkg = True
- End If
- End If
-
- On Error GoTo HandleErrors
- If Not bHasTransparentBkg Then Exit Sub
-
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_RESXLS_COST_Transparent
- .Location = .CLocationSlide
- .SubLocation = mySubLocation
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_TRANSPARENCY
- .locationXML = .CXMLLocationPage
-
- .Line = myShape.top
- .column = myShape.Left
-
- If myShape.name <> "" Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add myShape.name
- End If
-
- AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_TRANSPARENCY_NOTE
-
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- docAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_Gradients(docAnalysis As DocumentAnalysis, myShape As Shape, mySubLocation As Variant)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Gradients"
-
- If myShape.Fill.Type <> msoFillGradient Then Exit Sub
-
- Dim bUsesPresetGradient, bUsesFromCorner, bUsesFromCenter
- bUsesPresetGradient = False
- bUsesFromCorner = False
- bUsesFromCenter = False
-
- On Error Resume Next
- If myShape.Fill.PresetGradientType <> msoPresetGradientMixed Then
- If Error.Number = 0 Then
- bUsesPresetGradient = True
- End If
- End If
- If myShape.Fill.GradientStyle <> msoGradientFromCorner Then
- If Error.Number = 0 Then
- bUsesFromCorner = True
- End If
- End If
- If myShape.Fill.GradientStyle <> msoGradientFromCenter Then
- If Error.Number = 0 Then
- bUsesFromCenter = True
- End If
- End If
-
- On Error GoTo HandleErrors
- If Not bUsesPresetGradient And Not bUsesFromCorner _
- And Not bUsesFromCenter Then Exit Sub
-
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_RESXLS_COST_GradientStyle
- .Location = .CLocationSlide
- .SubLocation = mySubLocation
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_GRADIENT
- .locationXML = .CXMLLocationSlide
-
- .Line = myShape.top
- .column = myShape.Left
-
- If myShape.name <> "" Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add myShape.name
- End If
-
- If bUsesPresetGradient Then
- AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_GRADIENT_PRESET_NOTE
- ElseIf bUsesFromCorner Then
- AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_GRADIENT_CORNER_NOTE
- Else
- AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_GRADIENT_CENTER_NOTE
- End If
-
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- docAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Private Function CreateFullPath(newPath As String, fso As FileSystemObject)
- 'We don't want to create 'c:\'
- If (Len(newPath) < 4) Then
- Exit Function
- End If
-
- 'Create parent folder first
- If (Not fso.FolderExists(fso.GetParentFolderName(newPath))) Then
- CreateFullPath fso.GetParentFolderName(newPath), fso
- End If
-
- If (Not fso.FolderExists(newPath)) Then
- fso.CreateFolder (newPath)
- End If
-End Function
-
-Function GetPreparedFullPath(sourceDocPath As String, startDir As String, storeToDir As String, _
- fso As FileSystemObject) As String
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "GetPreparedFullPath"
- GetPreparedFullPath = ""
-
- Dim preparedPath As String
-
- preparedPath = Right(sourceDocPath, Len(sourceDocPath) - Len(startDir))
- If Left(preparedPath, 1) = "\" Then
- preparedPath = Right(preparedPath, Len(preparedPath) - 1)
- End If
-
- 'Allow for root folder C:\
- If Right(storeToDir, 1) <> "\" Then
- preparedPath = storeToDir & "\" & CSTR_COMMON_PREPARATION_FOLDER & "\" & preparedPath
- Else
- preparedPath = storeToDir & CSTR_COMMON_PREPARATION_FOLDER & "\" & preparedPath
- End If
-
- 'Debug: MsgBox "Preppath: " & preparedPath
- CreateFullPath fso.GetParentFolderName(preparedPath), fso
-
- 'Only set if folder to save to exists or has been created, otherwise return ""
- GetPreparedFullPath = preparedPath
-
-FinalExit:
- Exit Function
-
-HandleErrors:
- WriteDebugLevelTwo currentFunctionName & " : " & sourceDocPath & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function ClassifyDocOverallMacroClass(docAnalysis As DocumentAnalysis) As EnumDocOverallMacroClass
- ClassifyDocOverallMacroClass = enMacroNone
-
- If Not docAnalysis.HasMacros Then Exit Function
-
- If (docAnalysis.MacroTotalNumLines >= CMACRO_LINECOUNT_MEDIUM_LBOUND) Then
- If (docAnalysis.MacroNumExternalRefs > 0) Or _
- (docAnalysis.MacroNumOLEControls > 0 Or docAnalysis.MacroNumFieldsUsingMacros > 0) Or _
- docAnalysis.MacroNumUserForms > 0 Then
- ClassifyDocOverallMacroClass = enMacroComplex
- Else
- ClassifyDocOverallMacroClass = enMacroMedium
- End If
- Else
- ClassifyDocOverallMacroClass = enMacroSimple
- End If
-
-End Function
-
+Attribute VB_Name = "CommonMigrationAnalyser" +'************************************************************************* +' +' Licensed to the Apache Software Foundation (ASF) under one +' or more contributor license agreements. See the NOTICE file +' distributed with this work for additional information +' regarding copyright ownership. The ASF licenses this file +' to you under the Apache License, Version 2.0 (the +' "License"); you may not use this file except in compliance +' with the License. You may obtain a copy of the License at +' +' http://www.apache.org/licenses/LICENSE-2.0 +' +' Unless required by applicable law or agreed to in writing, +' software distributed under the License is distributed on an +' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +' KIND, either express or implied. See the License for the +' specific language governing permissions and limitations +' under the License. +' +'************************************************************************* +Option Explicit + + +'*********************************************** +'**** APPLICATION COMMON ANALYSIS FUNCTIONS **** +'*********************************************** + +'** Common - XML Issue and SubIssue strings +'For preparation - need access to some Word/ Excel or PP consts +Public Const CSTR_ISSUE_OBJECTS_GRAPHICS_AND_FRAMES = "ObjectsGraphicsAndFrames" +Public Const CSTR_SUBISSUE_OBJECT_IN_HEADER_FOOTER = "ObjectInHeaderFooter" + +Public Const CSTR_ISSUE_INFORMATION = "Information" +Public Const CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES = "ContentAndDocumentProperties" +Public Const CSTR_ISSUE_FORMAT = "Format" +Public Const CSTR_ISSUE_PORTABILITY = "Portability" +Public Const CSTR_ISSUE_VBA_MACROS = "VBAMacros" + +Public Const CSTR_SUBISSUE_DOCUMENT_PARTS_PROTECTION = "DocumentPartsProtection" +Public Const CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO = "ExternalReferencesInMacro" +Public Const CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO_COUNT = "ExternalReferencesInMacroCount" +Public Const CSTR_SUBISSUE_GRADIENT = "Gradient" +Public Const CSTR_SUBISSUE_INVALID_PASSWORD_ENTERED = "InvalidPasswordEntered" +Public Const CSTR_SUBISSUE_LINE = "Line" +Public Const CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION = "PasswordProtected" +Public Const CSTR_SUBISSUE_OLD_WORKBOOK_VERSION = "OldWorkbookVersion" +Public Const CSTR_SUBISSUE_OLE_EMBEDDED = "EmbeddedOLEObject" +Public Const CSTR_SUBISSUE_OLE_LINKED = "LinkedOLEObject" +Public Const CSTR_SUBISSUE_OLE_CONTROL = "OLEControl" +Public Const CSTR_SUBISSUE_OLE_FIELD_LINK = "OLEFieldLink" +Public Const CSTR_SUBISSUE_OLE_UNKNOWN = "UnknownType" +Public Const CSTR_SUBISSUE_PASSWORDS_PROTECTION = "PasswordProtection" +Public Const CSTR_SUBISSUE_PROPERTIES = "Properties" +Public Const CSTR_SUBISSUE_REFERENCES = "References" +Public Const CSTR_SUBISSUE_TRANSPARENCY = "Transparency" +Public Const CSTR_SUBISSUE_VBA_MACROS_NUMLINES = "NumberOfLines" +Public Const CSTR_SUBISSUE_VBA_MACROS_USERFORMS_COUNT = "UserFormsCount" +Public Const CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROL_COUNT = "UserFormsControlCount" +Public Const CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROLTYPE_COUNT = "UserFormsControlTypeCount" +Public Const CSTR_SUBISSUE_VBA_MACROS_UNIQUE_MODULE_COUNT = "UniqueModuleCount" +Public Const CSTR_SUBISSUE_VBA_MACROS_UNIQUE_LINE_COUNT = "UniqueLineCount" +'** END Common - XML Issue and SubIssue strings + +'Macro classification bounds +Public Const CMACRO_LINECOUNT_MEDIUM_LBOUND = 50 + +'Don't localize folder name +Public Const CSTR_COMMON_PREPARATION_FOLDER = "prepared" + + +Public Enum EnumDocOverallMacroClass + enMacroNone = 0 + enMacroSimple = 1 + enMacroMedium = 2 + enMacroComplex = 3 +End Enum +Public Enum EnumDocOverallIssueClass + enNone = 0 + enMinor = 1 + enComplex = 2 +End Enum + +Sub EmptyCollection(docAnalysis As DocumentAnalysis, coll As Collection) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "EmptyCollection" + Dim Num As Long + For Num = 1 To coll.count ' Remove name from the collection. + coll.Remove 1 ' Default collection numeric indexes + Next ' begin at 1. + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + +Public Function Analyze_Macros(docAnalysis As DocumentAnalysis, _ + userFormTypesDict As Scripting.Dictionary, _ + currDoc As Object) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Macros" + Dim macroDetails As String + Dim cmpDetails As String + Dim myProject As VBProject + Dim myComponent As VBComponent + Dim numLines As Long + Dim myIssue As IssueInfo + Dim wrd As Object + Dim bUserFormWithEmptyCodeModule As Boolean + + On Error Resume Next + Set myProject = getAppSpecificVBProject(currDoc) + If Err.Number <> 0 Then + ' Failed to get access to VBProject + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & _ + RID_STR_COMMON_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT & ":" & _ + RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE + + GoTo FinalExit + End If + + On Error GoTo HandleErrors + If myProject.Protection = vbext_pp_locked Then + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_VBA_MACROS + .IssueType = RID_STR_COMMON_ISSUE_VBA_MACROS + .SubType = RID_STR_COMMON_SUBISSUE_MACRO_PASSWORD_PROTECTION + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_VBA_MACROS + .SubTypeXML = CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_VBPROJECT_PASSWORD + .Values.Add RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE + End With + docAnalysis.IssuesCountArray(CID_VBA_MACROS) = _ + docAnalysis.IssuesCountArray(CID_VBA_MACROS) + 1 + docAnalysis.Issues.Add myIssue + docAnalysis.MacroIssuesCount = docAnalysis.MacroIssuesCount + 1 + + docAnalysis.HasMacros = True + GoTo FinalExit + End If + + Dim myContolDict As Scripting.Dictionary + For Each myComponent In myProject.VBComponents + + bUserFormWithEmptyCodeModule = False + If CheckEmptyProject(docAnalysis, myProject, myComponent) Then + If myComponent.Type <> vbext_ct_MSForm Then + GoTo FOREACH_CONTINUE + Else + bUserFormWithEmptyCodeModule = True + End If + End If + + Analyze_MacrosForPortabilityIssues docAnalysis, myProject, myComponent + + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_VBA_MACROS + .IssueType = RID_STR_COMMON_ISSUE_VBA_MACROS + .SubType = RID_STR_COMMON_SUBISSUE_PROPERTIES + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_VBA_MACROS + .SubTypeXML = CSTR_SUBISSUE_PROPERTIES + .locationXML = .CXMLLocationDocument + + .SubLocation = VBComponentType(myComponent) + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PROJECT + .Values.Add myProject.name + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_COMPONENT + .Values.Add myComponent.name + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PROCEDURES + .Values.Add VBNumFuncs(docAnalysis, myComponent.CodeModule), RID_STR_COMMON_ATTRIBUTE_PROCEDURES + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES + numLines = VBNumLines(docAnalysis, myComponent.CodeModule) + .Values.Add numLines, RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES + + If bUserFormWithEmptyCodeModule Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SIGNATURE + .Values.Add RID_STR_COMMON_NA, RID_STR_COMMON_ATTRIBUTE_SIGNATURE + Else + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SIGNATURE + .Values.Add MD5HashString( _ + myComponent.CodeModule.Lines(1, myComponent.CodeModule.CountOfLines)), _ + RID_STR_COMMON_ATTRIBUTE_SIGNATURE + End If + + docAnalysis.MacroTotalNumLines = numLines + docAnalysis.MacroTotalNumLines + End With + + ' User Forms - control details + If (myComponent.Type = vbext_ct_MSForm) And Not bUserFormWithEmptyCodeModule Then + myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_CONTROLS + myIssue.Values.Add myComponent.Designer.Controls.count, RID_STR_COMMON_ATTRIBUTE_CONTROLS + docAnalysis.MacroNumUserForms = 1 + docAnalysis.MacroNumUserForms + docAnalysis.MacroNumUserFormControls = myComponent.Designer.Controls.count + docAnalysis.MacroNumUserFormControls + + Dim myControl As Control + Dim controlTypes As String + Dim myType As String + + Set myContolDict = New Scripting.Dictionary + + For Each myControl In myComponent.Designer.Controls + myType = TypeName(myControl) + If myContolDict.Exists(myType) Then + myContolDict.item(myType) = myContolDict.item(myType) + 1 + Else + myContolDict.Add myType, 1 + End If + If userFormTypesDict.Exists(myType) Then + userFormTypesDict.item(myType) = userFormTypesDict.item(myType) + 1 + Else + userFormTypesDict.Add myType, 1 + End If + Next + + If myComponent.Designer.Controls.count > 0 Then + Dim count As Long + Dim vKeyArray As Variant + Dim vItemArray As Variant + + vKeyArray = myContolDict.Keys + vItemArray = myContolDict.Items + + controlTypes = "" + For count = 0 To myContolDict.count - 1 + controlTypes = controlTypes & vKeyArray(count) & " " & CInt(vItemArray(count)) & " " + Next count + myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE + myIssue.Values.Add controlTypes, RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE + + myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT + myIssue.Values.Add myContolDict.count, RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT + + docAnalysis.MacroNumUserFormControlTypes = myContolDict.count + docAnalysis.MacroNumUserFormControlTypes + End If + Set myContolDict = Nothing + End If + + 'Check for occurrence of " Me " in Form and Class Modules + If myComponent.Type = vbext_ct_MSForm Or _ + myComponent.Type = vbext_ct_ClassModule Then + + Dim strFind As String + strFind = "" + count = 0 + strFind = VBFindLines(docAnalysis, myComponent.CodeModule, "Me", count, bWholeWord:=True) +' If (strFind <> "") Then MsgBox strFind + + If count > 0 Then + myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT + myIssue.Values.Add count, RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT + End If + End If + + docAnalysis.IssuesCountArray(CID_VBA_MACROS) = _ + docAnalysis.IssuesCountArray(CID_VBA_MACROS) + 1 + docAnalysis.Issues.Add myIssue + docAnalysis.MacroIssuesCount = docAnalysis.MacroIssuesCount + 1 + + Set myIssue = Nothing + +FOREACH_CONTINUE: + 'No equiv to C continue in VB + Next myComponent 'End - For Each myComponent + + If docAnalysis.IssuesCountArray(CID_VBA_MACROS) > 0 Then + Analyze_VBEReferences docAnalysis, currDoc + docAnalysis.HasMacros = True + End If + +FinalExit: + docAnalysis.MacroOverallClass = ClassifyDocOverallMacroClass(docAnalysis) + + Set myProject = Nothing + Set myIssue = Nothing + Set myContolDict = Nothing + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function CheckOnlyEmptyProject(docAnalysis As DocumentAnalysis, currDoc As Object) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckOnlyEmptyProject" + Dim myProject As VBProject + Set myProject = getAppSpecificVBProject(currDoc) + Dim myVBComponent As VBComponent + + For Each myVBComponent In myProject.VBComponents + If Not CheckEmptyProject(docAnalysis, myProject, myVBComponent) Then + CheckOnlyEmptyProject = False + GoTo FinalExit + End If + Next myVBComponent + + CheckOnlyEmptyProject = True + +FinalExit: + Set myProject = Nothing + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Sub Analyze_VBEReferences(docAnalysis As DocumentAnalysis, currDoc As Object) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_VBEReferences" + 'References + Dim Ref As Reference + Dim fso As Scripting.FileSystemObject + Dim myVBProject As VBProject + Dim myVBComponent As VBComponent + + Set fso = New Scripting.FileSystemObject + + If CheckOnlyEmptyProject(docAnalysis, currDoc) Then + Exit Sub + End If + Set myVBProject = getAppSpecificVBProject(currDoc) + + For Each Ref In myVBProject.References + Analyze_VBEReferenceSingle docAnalysis, Ref, fso + Next Ref + +FinalExit: + Set myVBProject = Nothing + Set fso = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_VBEReferenceSingle(docAnalysis As DocumentAnalysis, Ref As Reference, fso As Scripting.FileSystemObject) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_VBEReferenceSingle" + 'References + Dim myIssue As IssueInfo + Dim bBadRef As Boolean + + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_INFORMATION_REFS + .IssueType = RID_STR_COMMON_ISSUE_INFORMATION + .SubType = RID_STR_COMMON_SUBISSUE_REFERENCES + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_INFORMATION + .SubTypeXML = CSTR_SUBISSUE_REFERENCES + .locationXML = .CXMLLocationDocument + + If Ref.GUID = "" Then + bBadRef = True + Else + bBadRef = False + End If + If Not bBadRef Then + .SubLocation = LCase(fso.GetFileName(Ref.FullPath)) + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add Ref.name, RID_STR_COMMON_ATTRIBUTE_NAME + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_DESCRIPTION + .Values.Add Ref.Description, RID_STR_COMMON_ATTRIBUTE_DESCRIPTION + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_FILE + .Values.Add LCase(fso.GetFileName(Ref.FullPath)), RID_STR_COMMON_ATTRIBUTE_FILE + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PATH + .Values.Add LCase(Ref.FullPath), RID_STR_COMMON_ATTRIBUTE_PATH + Else + .SubLocation = RID_STR_COMMON_NA + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add RID_STR_COMMON_ATTRIBUTE_MISSING, RID_STR_COMMON_ATTRIBUTE_NAME + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_DESCRIPTION + .Values.Add RID_STR_COMMON_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES, RID_STR_COMMON_ATTRIBUTE_DESCRIPTION + End If + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_MAJOR + .Values.Add IIf(Not bBadRef, Ref.Major, ""), RID_STR_COMMON_ATTRIBUTE_MAJOR + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_MINOR + .Values.Add IIf(Not bBadRef, Ref.Minor, ""), RID_STR_COMMON_ATTRIBUTE_MINOR + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_TYPE + .Values.Add IIf(Ref.Type = vbext_rk_Project, RID_STR_COMMON_ATTRIBUTE_PROJECT, RID_STR_COMMON_ATTRIBUTE_TYPELIB), RID_STR_COMMON_ATTRIBUTE_TYPE + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_BUILTIN + .Values.Add IIf(Ref.BuiltIn, RID_STR_COMMON_ATTRIBUTE_BUILTIN, RID_STR_COMMON_ATTRIBUTE_CUSTOM), RID_STR_COMMON_ATTRIBUTE_BUILTIN + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_ISBROKEN + .Values.Add IIf(bBadRef, RID_STR_COMMON_ATTRIBUTE_BROKEN, RID_STR_COMMON_ATTRIBUTE_INTACT), RID_STR_COMMON_ATTRIBUTE_ISBROKEN + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_GUID + .Values.Add IIf(Ref.Type = vbext_rk_TypeLib, Ref.GUID, ""), RID_STR_COMMON_ATTRIBUTE_GUID + End With + + docAnalysis.References.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebugLevelTwo currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_MacrosForPortabilityIssues(docAnalysis As DocumentAnalysis, myProject As VBProject, myComponent As VBComponent) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_MacrosForPortabilityIssues" + Dim myIssue As IssueInfo + Dim count As Long + + ' Code Modules + Dim strFind As String + strFind = VBFindLines(docAnalysis, myComponent.CodeModule, "CreateObject", count, bWholeWord:=True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "GetObject", count, bWholeWord:=True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "ADODB.", count, True, True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "Word.", count, True, True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "Excel.", count, True, True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "PowerPoint.", count, True, True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "Access.", count, True, True) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "Declare Function ", count, False) & _ + VBFindLines(docAnalysis, myComponent.CodeModule, "Declare Sub ", count, False) + + + If (strFind <> "") And (myComponent.Type <> vbext_ct_Document) Then + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_PORTABILITY + .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY + .SubType = RID_STR_COMMON_SUBISSUE_EXTERNAL_REFERENCES_IN_MACROS + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_PORTABILITY + .SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO + .locationXML = .CXMLLocationDocument + + .SubLocation = VBComponentType(myComponent) + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PROJECT + .Values.Add myProject.name + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_COMPONENT + .Values.Add myComponent.name + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES + .Values.Add RID_STR_COMMON_ATTRIBUTE_INCLUDING & vbLf & Left(strFind, Len(strFind) - 1) + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT + .Values.Add count, RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT + End With + docAnalysis.IssuesCountArray(CID_PORTABILITY) = _ + docAnalysis.IssuesCountArray(CID_PORTABILITY) + 1 + docAnalysis.Issues.Add myIssue + docAnalysis.MacroNumExternalRefs = count + docAnalysis.MacroNumExternalRefs + docAnalysis.MacroIssuesCount = docAnalysis.MacroIssuesCount + 1 + End If + +FinalExit: + Set myIssue = Nothing + Exit Sub + + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +Resume FinalExit +End Sub + +'Find Lines in code module containing strFind and return list of them +Function VBFindLines(docAnalysis As DocumentAnalysis, vbcm As CodeModule, strFind As String, _ + count As Long, _ + Optional bInProcedure As Boolean = True, _ + Optional bUsingNew As Boolean = False, _ + Optional bWholeWord As Boolean = False, _ + Optional bMatchCase As Boolean = False) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "VBFindLines" + Dim lngStartLine As Long + Dim lngStartCol As Long + Dim lngEndLine As Long + Dim lngEndCol As Long + Dim strLine As String + lngStartLine = 1 + lngStartCol = 1 + lngEndLine = vbcm.CountOfLines + Dim tmpString As String + If (vbcm.CountOfLines = 0) Then + Exit Function + End If + tmpString = vbcm.Lines(vbcm.CountOfLines, 1) + lngEndCol = Len(vbcm.Lines(vbcm.CountOfLines, 1)) + Dim lngType As Long + Dim strProc As String + Dim retStr As String + + ' Search + Do While vbcm.Find(strFind, lngStartLine, _ + lngStartCol, lngEndLine, lngEndCol, bWholeWord, bMatchCase) + + 'Ignore any lines using this func + If InStr(1, vbcm.Lines(lngStartLine, 1), "VBFindLines") <> 0 Then + GoTo CONTINUE_LOOP + End If + + If bInProcedure Then + If bUsingNew Then + If InStr(1, vbcm.Lines(lngStartLine, 1), "New") <> 0 Then + strProc = vbcm.ProcOfLine(lngStartLine, lngType) + Else + strProc = "" + End If + Else + strProc = vbcm.ProcOfLine(lngStartLine, lngType) + End If + If strProc = "" Then GoTo CONTINUE_LOOP + + VBFindLines = VBFindLines & "[" & strProc & " ( ) - " & lngStartLine & " ]" & _ + vbLf & vbcm.Lines(lngStartLine, 1) & vbLf + Else + strProc = vbcm.Lines(lngStartLine, 1) + If strProc = "" Then GoTo CONTINUE_LOOP + + 'Can be External refs, Const, Type or variable declarations + If InStr(1, vbcm.Lines(lngStartLine, 1), "Declare Function") <> 0 Then + VBFindLines = VBFindLines & "[" & RID_STR_COMMON_DEC_TO_EXTERNAL_LIBRARY & " - " & lngStartLine & " ]" & _ + vbLf & strProc & vbLf + Else + VBFindLines = VBFindLines & "[" & RID_STR_COMMON_VB_COMPONENT_MODULE & " " & strFind & _ + " - " & lngStartLine & " ]" & vbLf + End If + End If + count = count + 1 + +CONTINUE_LOOP: + 'Reset Params to search for next hit + lngStartLine = lngEndLine + 1 + lngStartCol = 1 + lngEndLine = vbcm.CountOfLines + lngEndCol = Len(vbcm.Lines(vbcm.CountOfLines, 1)) + + If lngStartLine >= lngEndLine Then Exit Function + + Loop 'End - Do While vbcm.Find + VBFindLines = VBFindLines + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Function +Function VBNumLines(docAnalysis As DocumentAnalysis, vbcm As CodeModule) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "VBNumLines" + Dim cLines As Long + Dim lngType As Long + Dim strProc As String + + 'Issue: Just give line count in module to be in sync with Macro Analysis and Migration Wizard + VBNumLines = vbcm.CountOfLines + + 'For cLines = 1 To vbcm.CountOfLines + ' strProc = vbcm.ProcOfLine(cLines, lngType) + ' If strProc <> "" Then + ' VBNumLines = VBNumLines - _ + ' (vbcm.ProcBodyLine(strProc, lngType) - vbcm.ProcStartLine(strProc, lngType)) + ' cLines = cLines + vbcm.ProcCountLines(strProc, lngType) - 1 + ' End If + 'Next + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Function +Function VBNumFuncs(docAnalysis As DocumentAnalysis, vbcm As CodeModule) As Long + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "VBNumFuncs" + Dim cLines As Long + Dim lngType As Long + Dim strProc As String + + For cLines = 1 To vbcm.CountOfLines + strProc = vbcm.ProcOfLine(cLines, lngType) + If strProc <> "" Then + VBNumFuncs = VBNumFuncs + 1 + cLines = cLines + vbcm.ProcCountLines(strProc, lngType) - 1 + End If + Next + Exit Function +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Function + +Function VBComponentType(vbc As VBComponent) As String + Select Case vbc.Type + Case vbext_ct_StdModule + VBComponentType = RID_STR_COMMON_VB_COMPONENT_STANDARD + Case vbext_ct_ClassModule + VBComponentType = RID_STR_COMMON_VB_COMPONENT_CLASS + Case vbext_ct_MSForm + VBComponentType = RID_STR_COMMON_VB_COMPONENT_USER_FORM + Case vbext_ct_Document + VBComponentType = RID_STR_COMMON_VB_COMPONENT_DOCUMENT + Case 11 'vbext_ct_ActiveX Designer + VBComponentType = RID_STR_COMMON_VB_COMPONENT_ACTIVEX_DESIGNER + Case Else + VBComponentType = RID_STR_COMMON_UNKNOWN + End Select +End Function + +Function CheckEmptyProject(docAnalysis As DocumentAnalysis, myProject As VBProject, myComponent As VBComponent) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckEmptyProject" + Dim bEmptyProject As Boolean + + 'Bug: Can have empty project with different name from default, would be picked up + ' as not empty. + 'bEmptyProject = _ + ' (StrComp(myProject.name, CTOPLEVEL_PROJECT) = 0) And _ + ' (VBNumFuncs(docAnalysis, myComponent.CodeModule) = 0) And _ + ' (VBNumLines(docAnalysis, myComponent.CodeModule) < 3) + + ' Code Modules + Dim strFind As String + Dim count As Long + 'Check for: + 'Public Const myFoo .... + 'Public Declare Function .... + 'Public myVar As ... + strFind = VBFindLines(docAnalysis, myComponent.CodeModule, "Public", _ + count, bInProcedure:=False, bWholeWord:=True, bMatchCase:=True) + + bEmptyProject = _ + (VBNumFuncs(docAnalysis, myComponent.CodeModule) = 0) And _ + (VBNumLines(docAnalysis, myComponent.CodeModule) < 3) And _ + (strFind = "") + + CheckEmptyProject = IIf(bEmptyProject, True, False) + Exit Function + + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Function + +Function getCustomDocPropTypeAsString(propType As MsoDocProperties) + Dim Str As String + + Select Case propType + Case msoPropertyTypeBoolean + Str = RID_STR_COMMON_YES_OR_NO + Case msoPropertyTypeDate + Str = RID_STR_COMMON_DATE + Case msoPropertyTypeFloat + Str = RID_STR_COMMON_NUMBER + Case msoPropertyTypeNumber + Str = RID_STR_COMMON_NUMBER + Case msoPropertyTypeString + Str = RID_STR_COMMON_TEXT + Case Else + Str = "Unknown" + End Select + + getCustomDocPropTypeAsString = Str +End Function + +Sub HandleProtectedDocInvalidPassword(docAnalysis As DocumentAnalysis, strError As String, fso As FileSystemObject) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "HandleProtectedDocInvalidPassword" + Dim f As File + Set f = fso.GetFile(docAnalysis.name) + + docAnalysis.Application = RID_STR_COMMON_PASSWORD_SKIPDOC + + On Error Resume Next + docAnalysis.PageCount = 0 + docAnalysis.Created = f.DateCreated + docAnalysis.Modified = f.DateLastModified + docAnalysis.Accessed = f.DateLastAccessed + docAnalysis.Printed = DateValue("01/01/1900") + docAnalysis.SavedBy = RID_STR_COMMON_NA + docAnalysis.Revision = 0 + docAnalysis.Template = RID_STR_COMMON_NA + On Error GoTo HandleErrors + + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_STR_COMMON_SUBISSUE_INVALID_PASSWORD_ENTERED + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_INVALID_PASSWORD_ENTERED + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_PASSWORD + .Values.Add strError + + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + docAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Set f = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_OLEEmbeddedSingleShape(docAnalysis As DocumentAnalysis, aShape As Shape, mySubLocation As Variant) + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_OLEEmbeddedSingleShape" + Dim myIssue As IssueInfo + Dim bOleObject As Boolean + Dim TypeAsString As String + Dim XMLTypeAsString As String + Dim objName As String + + bOleObject = (aShape.Type = msoEmbeddedOLEObject) Or _ + (aShape.Type = msoLinkedOLEObject) Or _ + (aShape.Type = msoOLEControlObject) + + If Not bOleObject Then Exit Sub + + aShape.Select + Select Case aShape.Type + Case msoEmbeddedOLEObject + TypeAsString = RID_STR_COMMON_OLE_EMBEDDED + XMLTypeAsString = CSTR_SUBISSUE_OLE_EMBEDDED + Case msoLinkedOLEObject + TypeAsString = RID_STR_COMMON_OLE_LINKED + XMLTypeAsString = CSTR_SUBISSUE_OLE_LINKED + Case msoOLEControlObject + TypeAsString = RID_STR_COMMON_OLE_CONTROL + XMLTypeAsString = CSTR_SUBISSUE_OLE_CONTROL + Case Else + TypeAsString = RID_STR_COMMON_OLE_UNKNOWN + XMLTypeAsString = CSTR_SUBISSUE_OLE_UNKNOWN + End Select + + Dim appStr As String + appStr = getAppSpecificApplicationName + + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_PORTABILITY + .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY + .SubType = TypeAsString + .Location = .CLocationPage + .SubLocation = mySubLocation + + .IssueTypeXML = CSTR_ISSUE_PORTABILITY + .SubTypeXML = XMLTypeAsString + .locationXML = .CXMLLocationPage + + .Line = aShape.top + .column = aShape.Left + + If aShape.name <> "" Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add aShape.name + End If + + If aShape.Type = msoEmbeddedOLEObject Or _ + aShape.Type = msoOLEControlObject Then + Dim objType As String + On Error Resume Next + + objType = getAppSpecificOLEClassType(aShape) + + If objType = "" Then GoTo FinalExit + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE + .Values.Add objType + + If aShape.Type = msoOLEControlObject Then + docAnalysis.MacroNumOLEControls = 1 + docAnalysis.MacroNumOLEControls + End If + + If appStr = CAPPNAME_POWERPOINT Then + '#114127: Too many open windows + 'Checking for OLEFormat.Object is Nothing or IsEmpty still causes problem + If objType <> "Equation.3" Then + objName = aShape.OLEFormat.Object.name + If Err.Number = 0 Then + If aShape.name <> objName Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME + .Values.Add objName + End If + End If + End If + Else + If Not (aShape.OLEFormat.Object) Is Nothing Then + objName = aShape.OLEFormat.Object.name + If Err.Number = 0 Then + If aShape.name <> objName Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME + .Values.Add objName + End If + End If + End If + End If + + On Error GoTo HandleErrors + End If + + If aShape.Type = msoLinkedOLEObject Then + If appStr <> CAPPNAME_WORD Then + On Error Resume Next + Dim path As String + path = aShape.OLEFormat.Object.SourceFullName + If Err.Number = 0 Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SOURCE + .Values.Add path + End If + On Error GoTo HandleErrors + Else + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SOURCE + .Values.Add aShape.LinkFormat.SourceFullName + End If + End If + + docAnalysis.IssuesCountArray(CID_PORTABILITY) = _ + docAnalysis.IssuesCountArray(CID_PORTABILITY) + 1 + End With + docAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebugLevelTwo currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_Lines(docAnalysis As DocumentAnalysis, myShape As Shape, mySubLocation As Variant) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Lines" + + If myShape.Line.Style = msoLineSingle Or _ + myShape.Line.Style = msoLineStyleMixed Then Exit Sub + + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_RESXLS_COST_LineStyle + .Location = .CLocationPage + .SubLocation = mySubLocation + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_LINE + .locationXML = .CXMLLocationPage + + .Line = myShape.top + .column = myShape.Left + + If myShape.name <> "" Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add myShape.name + End If + + AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_LINE_NOTE + + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + docAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_Transparency(docAnalysis As DocumentAnalysis, myShape As Shape, mySubLocation As Variant) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Transparency" + + If Not myShape.Type = msoPicture Then Exit Sub + + Dim bHasTransparentBkg + bHasTransparentBkg = False + + On Error Resume Next + If myShape.PictureFormat.TransparentBackground = msoTrue Then + If Error.Number = 0 Then + bHasTransparentBkg = True + End If + End If + + On Error GoTo HandleErrors + If Not bHasTransparentBkg Then Exit Sub + + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_RESXLS_COST_Transparent + .Location = .CLocationSlide + .SubLocation = mySubLocation + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_TRANSPARENCY + .locationXML = .CXMLLocationPage + + .Line = myShape.top + .column = myShape.Left + + If myShape.name <> "" Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add myShape.name + End If + + AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_TRANSPARENCY_NOTE + + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + docAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_Gradients(docAnalysis As DocumentAnalysis, myShape As Shape, mySubLocation As Variant) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Gradients" + + If myShape.Fill.Type <> msoFillGradient Then Exit Sub + + Dim bUsesPresetGradient, bUsesFromCorner, bUsesFromCenter + bUsesPresetGradient = False + bUsesFromCorner = False + bUsesFromCenter = False + + On Error Resume Next + If myShape.Fill.PresetGradientType <> msoPresetGradientMixed Then + If Error.Number = 0 Then + bUsesPresetGradient = True + End If + End If + If myShape.Fill.GradientStyle <> msoGradientFromCorner Then + If Error.Number = 0 Then + bUsesFromCorner = True + End If + End If + If myShape.Fill.GradientStyle <> msoGradientFromCenter Then + If Error.Number = 0 Then + bUsesFromCenter = True + End If + End If + + On Error GoTo HandleErrors + If Not bUsesPresetGradient And Not bUsesFromCorner _ + And Not bUsesFromCenter Then Exit Sub + + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_RESXLS_COST_GradientStyle + .Location = .CLocationSlide + .SubLocation = mySubLocation + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_GRADIENT + .locationXML = .CXMLLocationSlide + + .Line = myShape.top + .column = myShape.Left + + If myShape.name <> "" Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add myShape.name + End If + + If bUsesPresetGradient Then + AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_GRADIENT_PRESET_NOTE + ElseIf bUsesFromCorner Then + AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_GRADIENT_CORNER_NOTE + Else + AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_SUBISSUE_GRADIENT_CENTER_NOTE + End If + + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + docAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + docAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Private Function CreateFullPath(newPath As String, fso As FileSystemObject) + 'We don't want to create 'c:\' + If (Len(newPath) < 4) Then + Exit Function + End If + + 'Create parent folder first + If (Not fso.FolderExists(fso.GetParentFolderName(newPath))) Then + CreateFullPath fso.GetParentFolderName(newPath), fso + End If + + If (Not fso.FolderExists(newPath)) Then + fso.CreateFolder (newPath) + End If +End Function + +Function GetPreparedFullPath(sourceDocPath As String, startDir As String, storeToDir As String, _ + fso As FileSystemObject) As String + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "GetPreparedFullPath" + GetPreparedFullPath = "" + + Dim preparedPath As String + + preparedPath = Right(sourceDocPath, Len(sourceDocPath) - Len(startDir)) + If Left(preparedPath, 1) = "\" Then + preparedPath = Right(preparedPath, Len(preparedPath) - 1) + End If + + 'Allow for root folder C:\ + If Right(storeToDir, 1) <> "\" Then + preparedPath = storeToDir & "\" & CSTR_COMMON_PREPARATION_FOLDER & "\" & preparedPath + Else + preparedPath = storeToDir & CSTR_COMMON_PREPARATION_FOLDER & "\" & preparedPath + End If + + 'Debug: MsgBox "Preppath: " & preparedPath + CreateFullPath fso.GetParentFolderName(preparedPath), fso + + 'Only set if folder to save to exists or has been created, otherwise return "" + GetPreparedFullPath = preparedPath + +FinalExit: + Exit Function + +HandleErrors: + WriteDebugLevelTwo currentFunctionName & " : " & sourceDocPath & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function ClassifyDocOverallMacroClass(docAnalysis As DocumentAnalysis) As EnumDocOverallMacroClass + ClassifyDocOverallMacroClass = enMacroNone + + If Not docAnalysis.HasMacros Then Exit Function + + If (docAnalysis.MacroTotalNumLines >= CMACRO_LINECOUNT_MEDIUM_LBOUND) Then + If (docAnalysis.MacroNumExternalRefs > 0) Or _ + (docAnalysis.MacroNumOLEControls > 0 Or docAnalysis.MacroNumFieldsUsingMacros > 0) Or _ + docAnalysis.MacroNumUserForms > 0 Then + ClassifyDocOverallMacroClass = enMacroComplex + Else + ClassifyDocOverallMacroClass = enMacroMedium + End If + Else + ClassifyDocOverallMacroClass = enMacroSimple + End If + +End Function + diff --git a/migrationanalysis/src/driver_docs/sources/word/MigrationAnalyser.cls b/migrationanalysis/src/driver_docs/sources/word/MigrationAnalyser.cls index 5fdd2c80d837..44e1dd1212d7 100644 --- a/migrationanalysis/src/driver_docs/sources/word/MigrationAnalyser.cls +++ b/migrationanalysis/src/driver_docs/sources/word/MigrationAnalyser.cls @@ -1,1518 +1,1518 @@ -VERSION 1.0 CLASS
-BEGIN
- MultiUse = -1 'True
-END
-Attribute VB_Name = "MigrationAnalyser"
-Attribute VB_GlobalNameSpace = False
-Attribute VB_Creatable = False
-Attribute VB_PredeclaredId = False
-Attribute VB_Exposed = False
-'*************************************************************************
-'
-' Licensed to the Apache Software Foundation (ASF) under one
-' or more contributor license agreements. See the NOTICE file
-' distributed with this work for additional information
-' regarding copyright ownership. The ASF licenses this file
-' to you under the Apache License, Version 2.0 (the
-' "License"); you may not use this file except in compliance
-' with the License. You may obtain a copy of the License at
-'
-' http://www.apache.org/licenses/LICENSE-2.0
-'
-' Unless required by applicable law or agreed to in writing,
-' software distributed under the License is distributed on an
-' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-' KIND, either express or implied. See the License for the
-' specific language governing permissions and limitations
-' under the License.
-'
-'*************************************************************************
-
-Option Explicit
-
-'Class variables
-Private Enum HFIssueType
- hfInline
- hfShape
- hfFrame
-End Enum
-
-Private Enum HFIssueLocation
- hfHeader
- hffooter
-End Enum
-
-
-Private Type ShapeInfo
- top As Single
- Height As Single
-End Type
-
-Private Type FrameInfo
- Height As Single
- VerticalPosition As Single
-End Type
-
-Private mAnalysis As DocumentAnalysis
-Private mOdd As Boolean
-Private mbFormFieldErrorLogged As Boolean
-Private mbRefFormFieldErrorLogged As Boolean
-
-'***ADDING-ISSUE: Use Following Skeleton as Guideline for Adding Issue
-' For complete list of all RID_STR_... for Issues (IssueType), SubIssues (SubType) and Attributes refer to:
-' word_res.bas and common_res.bas
-'
-' For complete list of all CID_... for Issue Categories(IssueID) and
-' CSTR_... for XML Issues (IssueTypeXML) and XML SubIssues (SubTypeXML) refer to:
-' ApplicationSpecific.bas and CommonMigrationAnalyser.bas
-'
-' You should not have to add any new Issue Categories or matching IssueTypes, only new SubIssues
-Sub Analyze_SKELETON()
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_SKELETON"
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_VBA_MACROS 'Issue Category
- .IssueType = RID_STR_COMMON_ISSUE_VBA_MACROS 'Issue String
- .SubType = RID_STR_COMMON_SUBISSUE_PROPERTIES 'SubIssue String
- .Location = .CLocationDocument 'Location string
-
- .IssueTypeXML = CSTR_ISSUE_VBA_MACROS 'Non localised XML Issue String
- .SubTypeXML = CSTR_SUBISSUE_PROPERTIES 'Non localised XML SubIssue String
- .locationXML = .CXMLLocationDocument 'Non localised XML location
-
- .SubLocation = 0 'if not set will default to RID_STR_NOT_AVAILABLE_SHORTHAND
- .Line = 0 'if not set will default to RID_STR_NOT_AVAILABLE_SHORTHAND
- .column = 0 'if not set will default to RID_STR_NOT_AVAILABLE_SHORTHAND
-
- ' Add as many Attribute Value pairs as needed
- ' Note: following must always be true - Attributes.Count = Values.Count
- .Attributes.Add "AAA"
- .Values.Add "foobar"
-
- ' Use AddIssueDetailsNote to add notes to the Issue Details if required
- ' Public Sub AddIssueDetailsNote(myIssue As IssueInfo, noteNum As Long, noteStr As String, _
- ' Optional preStr As String = RID_STR_COMMON_NOTE_PRE)
- ' Where preStr is prepended to the output, with "Note" as the default
- AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_NOTE_DOCUMENT_PROPERTIES_LOST
-
- 'Only put this in if you have a preparation function added for this issue in CommonPreparation
- 'or Preparation - NUll can be replaced with any variant if you want to pass info to the Prepare fnc
- Call DoPreparation(mAnalysis, myIssue, "", Null, Null)
-
- mAnalysis.IssuesCountArray(CID_VBA_MACROS) = _
- mAnalysis.IssuesCountArray(CID_VBA_MACROS) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub DoAnalyse(fileName As String, userFormTypesDict As Scripting.Dictionary, _
- startDir As String, storeToDir As String, fso As FileSystemObject)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "DoAnalyse"
- mAnalysis.name = fileName
- Dim aDoc As Document
- Dim bUnprotectError As Boolean
- mAnalysis.TotalIssueTypes = CTOTAL_CATEGORIES
- mbFormFieldErrorLogged = False
- mbRefFormFieldErrorLogged = False
-
- 'Turn off any AutoExce macros before loading the Word doc
- On Error Resume Next ' Ignore errors on setting
- WordBasic.DisableAutoMacros 1
- On Error GoTo HandleErrors
-
- Dim myPassword As String
- myPassword = GetDefaultPassword
-
- 'Always skip password protected documents
- 'If IsSkipPasswordDocs() Then
- Dim aPass As String
- If myPassword <> "" Then
- aPass = myPassword
- Else
- aPass = "xoxoxoxoxo"
- End If
-
- On Error Resume Next
- Set aDoc = Documents.Open(fileName, False, False, False, _
- aPass, aPass, False, aPass, aPass, wdOpenFormatAuto, _
- msoEncodingAutoDetect, False)
- If Err.Number = 5408 Then
- ' if password protected, try open readonly next
- Set aDoc = Documents.Open(fileName, False, True, False, _
- aPass, aPass, False, aPass, aPass, wdOpenFormatAuto, _
- msoEncodingAutoDetect, False)
- End If
- If Err.Number = 5408 Then
- HandleProtectedDocInvalidPassword mAnalysis, _
- "User entered Invalid Document Password, further analysis not possible", fso
- Analyze_Password_Protection True, False
- GoTo FinalExit
- ElseIf (Err.Number <> 0) Then
- GoTo HandleErrors
- End If
-
- On Error GoTo HandleErrors
-
- If aDoc Is Nothing Then GoTo FinalExit
-
- 'Do Analysis
- Analyze_Password_Protection aDoc.HasPassword, aDoc.WriteReserved
- Analyze_Document_Protection aDoc
-
- If aDoc.ProtectionType <> wdNoProtection Then
- If myPassword <> "" Then
- aDoc.Unprotect (myPassword)
- Else
- aDoc.Unprotect
- End If
- End If
-
- 'Set Doc Properties
- SetDocProperties mAnalysis, aDoc, fso
-
-ContinueFromUnprotectError:
-
- Analyze_Tables_TablesInTables aDoc
- Analyze_Tables_Borders aDoc
- Analyze_TOA aDoc
- If Not bUnprotectError Then
- Analyze_FieldAndFormFieldIssues aDoc
- End If
- Analyze_OLEEmbedded aDoc
- Analyze_MailMerge_DataSource aDoc
- Analyze_Macros mAnalysis, userFormTypesDict, aDoc
- 'Analyze_Numbering aDoc, mAnalysis
- 'Analyze_NumberingTabs aDoc, mAnalysis
-
- ' Doc Preparation only
- ' Save document with any prepared issues under <storeToDir>\prepared\<source doc name>
- If mAnalysis.PreparableIssuesCount > 0 And CheckDoPrepare Then
- Dim preparedFullPath As String
- preparedFullPath = GetPreparedFullPath(mAnalysis.name, startDir, storeToDir, fso)
- If preparedFullPath <> "" Then
- If fso.FileExists(preparedFullPath) Then
- fso.DeleteFile preparedFullPath, True
- End If
- If fso.FolderExists(fso.GetParentFolderName(preparedFullPath)) Then
- aDoc.SaveAs preparedFullPath
- End If
- End If
- End If
-
- 'DebugMacroInfo
-
-FinalExit:
-
-
- If Not aDoc Is Nothing Then 'If Not IsEmpty(aDoc) Then
- aDoc.Close (False)
- End If
- Set aDoc = Nothing
-
- Exit Sub
-
-HandleErrors:
- ' MsgBox currentFunctionName & " : " & fileName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- ' Handle Password error on Doc Open, Modify and Cancel
- If Err.Number = 5408 Or Err.Number = 4198 Then
- WriteDebug currentFunctionName & " : " & fileName & ": " & _
- "User entered Invalid Document Password - " & Err.Number & " " & Err.Description & " " & Err.Source
- HandleProtectedDocInvalidPassword mAnalysis, _
- "User entered Invalid Document Password, further analysis not possible", fso
- Resume FinalExit
- ElseIf Err.Number = 5485 Then
- ' Handle Password error on Unprotect Doc
- WriteDebug currentFunctionName & " : " & fileName & ": " & _
- "User entered Invalid Document Part Password, Analysis of doc will continue but will skip analysis of:" & _
- "Forms, Comments, Headers & Footers and Table cell spanning issues - " & Err.Number & " " & Err.Description & " " & Err.Source
- HandleProtectedDocInvalidPassword mAnalysis, _
- "User entered Invalid Document Part Password, Analysis of doc will continue but will skip analysis of:" & vbLf & _
- "Forms, Comments, Headers & Footers and Table cell spanning issues", fso
- bUnprotectError = True
- 'wdAllowOnlyComments, wdAllowOnlyFormFields, wdAllowOnlyRevisions
- Resume ContinueFromUnprotectError
- End If
- mAnalysis.Application = RID_STR_COMMON_CANNOT_OPEN
- WriteDebug currentFunctionName & " : " & fileName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub DebugMacroInfo()
- MsgBox "TotalNumLines: " & mAnalysis.MacroTotalNumLines & vbLf & _
- "NumUserForms: " & mAnalysis.MacroNumUserForms & vbLf & _
- "NumUserFormControls: " & mAnalysis.MacroNumUserFormControls & vbLf & _
- "NumUserFormControlTypes: " & mAnalysis.MacroNumUserFormControlTypes & vbLf & _
- "NumExternalRefs: " & mAnalysis.MacroNumExternalRefs & vbLf & _
- "MacroNumFieldsUsingMacros: " & mAnalysis.MacroNumFieldsUsingMacros & vbLf & _
- "NumOLEControls: " & mAnalysis.MacroNumOLEControls & vbLf & _
- "MacroOverallClass: " & getDocOverallMacroClassAsString(mAnalysis.MacroOverallClass)
-End Sub
-
-Sub SetDocProperties(docAnalysis As DocumentAnalysis, doc As Document, fso As FileSystemObject)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "SetProperties"
- Dim f As File
- Set f = fso.GetFile(docAnalysis.name)
-
- docAnalysis.PageCount = doc.ComputeStatistics(wdStatisticPages)
- docAnalysis.Accessed = f.DateLastAccessed
-
- On Error Resume Next 'Some apps may not support all props
- docAnalysis.Application = getAppSpecificApplicationName & " " & Application.Version
- 'docAnalysis.Application = doc.BuiltinDocumentProperties(wdPropertyAppName)
- 'If InStr(docAnalysis.Application, "Microsoft") = 1 Then
- ' docAnalysis.Application = Mid(docAnalysis.Application, Len("Microsoft") + 2)
- 'End If
- 'If InStr(Len(docAnalysis.Application) - 2, docAnalysis.Application, ".") = 0 Then
- ' docAnalysis.Application = docAnalysis.Application & " " & Application.Version
- 'End If
-
- docAnalysis.Created = _
- doc.BuiltInDocumentProperties(wdPropertyTimeCreated)
- docAnalysis.Modified = _
- doc.BuiltInDocumentProperties(wdPropertyTimeLastSaved)
- docAnalysis.Printed = _
- doc.BuiltInDocumentProperties(wdPropertyTimeLastPrinted)
- docAnalysis.SavedBy = _
- doc.BuiltInDocumentProperties(wdPropertyLastAuthor)
- docAnalysis.Revision = _
- val(doc.BuiltInDocumentProperties(wdPropertyRevision))
- docAnalysis.Template = _
- fso.GetFileName(doc.BuiltInDocumentProperties(wdPropertyTemplate))
-
-FinalExit:
- Set f = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-'Limitation: Detect first level table in tables, does not detect further nesting
-'Can do so if required
-Sub Analyze_Tables_TablesInTables(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Tables_TablesInTables"
- Dim myTopTable As Table
- Dim myInnerTable As Table
- Dim myIssue As IssueInfo
-
- For Each myTopTable In currDoc.Tables
- For Each myInnerTable In myTopTable.Tables
- Dim logString As String
- Dim myRng As Range
- Dim startpage As Long
- Dim startRow As Long
- Dim StartColumn As Long
- Dim details As String
-
- Set myIssue = New IssueInfo
- Set myRng = myInnerTable.Range
- myRng.start = myRng.End
- startpage = myRng.Information(wdActiveEndPageNumber)
- startRow = myRng.Information(wdStartOfRangeRowNumber)
- StartColumn = myRng.Information(wdStartOfRangeColumnNumber)
-
- With myIssue
- .IssueID = CID_TABLES
- .IssueType = RID_STR_WORD_ISSUE_TABLES
- .SubType = RID_STR_WORD_SUBISSUE_NESTED_TABLES
- .Location = .CLocationPage
- .SubLocation = startpage
-
- .IssueTypeXML = CSTR_ISSUE_TABLES
- .SubTypeXML = CSTR_SUBISSUE_NESTED_TABLES
- .locationXML = .CXMLLocationPage
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_OUTER_TABLE
- .Values.Add myTopTable.Rows.count & "x" & myTopTable.Columns.count
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_INNER_TABLE
- .Values.Add myInnerTable.Rows.count & "x" & myInnerTable.Columns.count
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_START_ROW
- .Values.Add startRow
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_START_COL
- .Values.Add StartColumn
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NESTED_TABLE_WILL_BE_LOST
-
- mAnalysis.IssuesCountArray(CID_TABLES) = _
- mAnalysis.IssuesCountArray(CID_TABLES) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- Set myRng = Nothing
- Next
- Next
- Exit Sub
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-Sub Analyze_Document_Protection(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Document_Protection"
- If currDoc.ProtectionType = wdNoProtection Then
- Exit Sub
- End If
-
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_STR_COMMON_SUBISSUE_DOCUMENT_PARTS_PROTECTION
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_DOCUMENT_PARTS_PROTECTION
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_PROTECTION
- Select Case currDoc.ProtectionType
- Case wdAllowOnlyComments
- .Values.Add RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_COMMENTS
- Case wdAllowOnlyFormFields
- .Values.Add RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_FORM_FIELDS
- Case wdAllowOnlyRevisions
- .Values.Add RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_REVISIONS
- Case Else
- .Values.Add RID_STR_COMMON_ATTRIBUTE_UNKNOWN
- End Select
-
- mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_Password_Protection(bHasPassword As Boolean, bWriteReserved As Boolean)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Password_Protection"
- Dim myIssue As IssueInfo
-
- If bHasPassword Or bWriteReserved Then
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_STR_COMMON_SUBISSUE_PASSWORDS_PROTECTION
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_PASSWORDS_PROTECTION
- .locationXML = .CXMLLocationDocument
-
- If bHasPassword Then
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_OPEN
- .Values.Add RID_STR_WORD_ATTRIBUTE_SET
- End If
- If bWriteReserved Then
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_MODIFY
- .Values.Add RID_STR_WORD_ATTRIBUTE_SET
- End If
-
- mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
- End If
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_OLEEmbedded(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_OLEEmbedded"
-
- ' Handle Inline Shapes
- Dim aILShape As InlineShape
- For Each aILShape In currDoc.InlineShapes
- Analyze_OLEEmbeddedSingleInlineShape aILShape
- Next aILShape
-
- ' Handle Shapes
- Dim aShape As Shape
- For Each aShape In currDoc.Shapes
- Analyze_OLEEmbeddedSingleShape mAnalysis, aShape, _
- Selection.Information(wdActiveEndPageNumber)
- Analyze_Lines mAnalysis, aShape, _
- Selection.Information(wdActiveEndPageNumber)
- Analyze_Transparency mAnalysis, aShape, _
- Selection.Information(wdActiveEndPageNumber)
- Analyze_Gradients mAnalysis, aShape, _
- Selection.Information(wdActiveEndPageNumber)
- Next aShape
-
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-
-'WdInlineShapeType constants:
-'wdInlineShapeEmbeddedOLEObject, wdInlineShapeHorizontalLine, wdInlineShapeLinkedOLEObject,
-'wdInlineShapeLinkedPicture, wdInlineShapeLinkedPictureHorizontalLine, wdInlineShapeOLEControlObject,
-'wdInlineShapeOWSAnchor, wdInlineShapePicture, wdInlineShapePictureBullet,
-'wdInlineShapePictureHorizontalLine, wdInlineShapeScriptAnchor
-
-Sub Analyze_OLEEmbeddedSingleInlineShape(aILShape As InlineShape)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_OLEEmbeddedSingleInlineShape"
- Dim myIssue As IssueInfo
- Dim bOleObject As Boolean
- Dim TypeAsString As String
- Dim XMLTypeAsString As String
- Dim objName As String
-
- bOleObject = (aILShape.Type = wdInlineShapeEmbeddedOLEObject) Or _
- (aILShape.Type = wdInlineShapeLinkedOLEObject) Or _
- (aILShape.Type = wdInlineShapeOLEControlObject)
-
- If Not bOleObject Then Exit Sub
-
- aILShape.Select
- Select Case aILShape.Type
- Case wdInlineShapeOLEControlObject
- TypeAsString = RID_STR_COMMON_OLE_CONTROL
- XMLTypeAsString = CSTR_SUBISSUE_OLE_CONTROL
- Case wdInlineShapeEmbeddedOLEObject
- TypeAsString = RID_STR_COMMON_OLE_EMBEDDED
- XMLTypeAsString = CSTR_SUBISSUE_OLE_EMBEDDED
- Case wdInlineShapeLinkedOLEObject
- TypeAsString = RID_STR_COMMON_OLE_LINKED
- XMLTypeAsString = CSTR_SUBISSUE_OLE_LINKED
- Case Else
- TypeAsString = RID_STR_COMMON_OLE_UNKNOWN
- XMLTypeAsString = CSTR_SUBISSUE_OLE_UNKNOWN
- End Select
-
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_PORTABILITY
- .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY
- .SubType = TypeAsString
- .Location = .CLocationPage
- .SubLocation = Selection.Information(wdActiveEndPageNumber)
-
- .IssueTypeXML = CSTR_ISSUE_PORTABILITY
- .SubTypeXML = XMLTypeAsString
- .locationXML = .CXMLLocationPage
-
- .Line = Selection.Information(wdFirstCharacterLineNumber)
- .column = Selection.Information(wdFirstCharacterColumnNumber)
-
- DoEvents
- If aILShape.Type = wdInlineShapeEmbeddedOLEObject Or _
- aILShape.Type = wdInlineShapeOLEControlObject Then
-
- 'If Object is invalid can get automation server hanging
- Dim tmpStr As String
- On Error Resume Next
- tmpStr = aILShape.OLEFormat.Object
- If Err.Number = 0 Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE
- .Values.Add aILShape.OLEFormat.ProgID
- Else
- Err.Clear
- tmpStr = aILShape.OLEFormat.ClassType
- If Err.Number = 0 Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE
- .Values.Add aILShape.OLEFormat.ClassType
- Else
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE
- .Values.Add RID_STR_COMMON_NA
- End If
- End If
-
- If aILShape.Type = wdInlineShapeOLEControlObject Then
- mAnalysis.MacroNumOLEControls = 1 + mAnalysis.MacroNumOLEControls
- End If
-
- objName = aILShape.OLEFormat.Object.name
- If Err.Number = 0 Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME
- .Values.Add objName
- End If
- On Error GoTo HandleErrors
- End If
- If aILShape.Type = wdInlineShapeLinkedOLEObject Then
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SOURCE
- .Values.Add aILShape.LinkFormat.SourceFullName
- End If
-
- mAnalysis.IssuesCountArray(CID_PORTABILITY) = _
- mAnalysis.IssuesCountArray(CID_PORTABILITY) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebugLevelTwo currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-'Appears to be picked up by other OLE analysis code - the Shapes are actually field codes
-'So I get double reporting if I use this as well.
-Sub Analyze_OLEFields(myField As Field)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_OLEFields"
- Dim myIssue As IssueInfo
- Dim bOleObject As Boolean
- Dim TypeAsString As String
- Dim XMLTypeAsString As String
-
- bOleObject = (myField.Type = wdFieldOCX)
-
- If Not bOleObject Then Exit Sub
-
- myField.Select
- Select Case myField.Type
- Case wdFieldLink
- TypeAsString = RID_STR_COMMON_OLE_FIELD_LINK
- XMLTypeAsString = CSTR_SUBISSUE_OLE_FIELD_LINK
- Case Else
- TypeAsString = RID_STR_COMMON_OLE_UNKNOWN
- XMLTypeAsString = CSTR_SUBISSUE_OLE_UNKNOWN
- End Select
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_PORTABILITY
- .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY
- .SubType = TypeAsString
- .Location = .CLocationPage
- .SubLocation = Selection.Information(wdActiveEndPageNumber)
-
- .IssueTypeXML = CSTR_ISSUE_PORTABILITY
- .SubTypeXML = XMLTypeAsString
- .locationXML = .CXMLLocationPage
-
- .Line = Selection.Information(wdFirstCharacterLineNumber)
- .column = Selection.Information(wdFirstCharacterColumnNumber)
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE
- .Values.Add myField.OLEFormat.ClassType
-
- If myField.Type = wdFieldLink Then
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_LINK
- .Values.Add myField.LinkFormat.SourceFullName
- End If
- mAnalysis.IssuesCountArray(CID_PORTABILITY) = _
- mAnalysis.IssuesCountArray(CID_PORTABILITY) + 1
- End With
- mAnalysis.Issues.Add myIssue
-
- Set myIssue = Nothing
-
- Exit Sub
-
-HandleErrors:
- Set myIssue = Nothing
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-Sub Analyze_MailMergeField(myField As Field)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_MailMergeField"
- Dim myIssue As IssueInfo
- Dim TypeAsString As String
- Dim bProblemMailMergeField As Boolean
-
- bProblemMailMergeField = _
- (myField.Type = wdFieldFillIn) Or _
- (myField.Type = wdFieldAsk) Or _
- (myField.Type = wdFieldMergeRec) Or _
- (myField.Type = wdFieldMergeField) Or _
- (myField.Type = wdFieldNext) Or _
- (myField.Type = wdFieldRevisionNum) Or _
- (myField.Type = wdFieldSequence) Or _
- (myField.Type = wdFieldAutoNum) Or _
- (myField.Type = wdFieldAutoNumOutline) Or _
- (myField.Type = wdFieldAutoNumLegal)
-
- If bProblemMailMergeField Then
- 'Some of the following are numbering fields and need to be broken out into a seperate function. See migration guide.
-
- Select Case myField.Type
- Case wdFieldFillIn
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_FILL_IN
- Case wdFieldAsk
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_ASK
- Case wdFieldMergeRec
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_RECORDS
- Case wdFieldMergeField
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_FIELDS
- Case wdFieldNext
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_NEXT
- Case wdFieldRevisionNum
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_REVISION_NUMBER
- Case wdFieldSequence
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_SEQUENCE
- Case wdFieldAutoNum
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER
- Case wdFieldAutoNumOutline
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_OUTLINE
- Case wdFieldAutoNumLegal
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_LEGAL
- Case Else
- TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_FIELD_NAME_NOT_KNOWN
- End Select
-
- Set myIssue = New IssueInfo
- myField.Select
- With myIssue
- .IssueID = CID_FIELDS
- .IssueType = RID_STR_WORD_ISSUE_FIELDS
- .SubType = RID_STR_WORD_SUBISSUE_MAILMERGE_FIELD
- .Location = .CLocationPage
-
- .IssueTypeXML = CSTR_ISSUE_FIELDS
- .SubTypeXML = CSTR_SUBISSUE_MAILMERGE_FIELD
- .locationXML = .CXMLLocationPage
-
- .SubLocation = Selection.Information(wdActiveEndPageNumber)
- .Line = Selection.Information(wdFirstCharacterLineNumber)
- .column = Selection.Information(wdFirstCharacterColumnNumber)
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add TypeAsString
- If myField.Code.Text <> "" Then
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_TEXT
- .Values.Add myField.Code.Text
- End If
-
- mAnalysis.IssuesCountArray(CID_FIELDS) = _
- mAnalysis.IssuesCountArray(CID_FIELDS) + 1
- End With
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-'Get field DS Info
-Sub Analyze_MailMerge_DataSource(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_MailMerge_DataSource"
- ' There may be no mail merge in the document
- If (currDoc.MailMerge.DataSource.Type = wdNoMergeInfo) Then
- Exit Sub
- End If
-
- 'Dim issue As SimpleAnalysisInfo
- If (currDoc.MailMerge.DataSource.Type <> wdNoMergeInfo) Then
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES
- .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES
- .SubType = RID_STR_WORD_SUBISSUE_MAILMERGE_DATASOURCE
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES
- .SubTypeXML = CSTR_SUBISSUE_MAILMERGE_DATASOURCE
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME
- .Values.Add currDoc.MailMerge.DataSource.name
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_DATASOURCE
- .Values.Add currDoc.MailMerge.DataSource.Type
-
- mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _
- mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-Function getFormFieldTypeAsString(fieldType As WdFieldType)
- Dim Str As String
-
- Select Case fieldType
- Case wdFieldFormCheckBox
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CHECK_BOX
- Case wdFieldFormDropDown
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DROP_DOWN
- Case wdFieldFormTextInput
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_TEXT
- Case Else
- Str = RID_STR_WORD_ENUMERATION_UNKNOWN
- End Select
-
- getFormFieldTypeAsString = Str
-End Function
-Function getTextFormFieldTypeAsString(fieldType As WdTextFormFieldType)
- Dim Str As String
-
- Select Case fieldType
- Case wdCalculationText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CALCULATION
- Case wdCurrentDateText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_DATE
- Case wdCurrentTimeText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_TIME
- Case wdDateText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DATE
- Case wdNumberText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_NUMBER
- Case wdRegularText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_REGULAR
- Case Else
- Str = RID_STR_WORD_ENUMERATION_UNKNOWN
- End Select
-
- getTextFormFieldTypeAsString = Str
-End Function
-Function getTextFormFieldDefaultAsString(fieldType As WdTextFormFieldType)
- Dim Str As String
-
- Select Case fieldType
- Case wdCalculationText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_EXPRESSION
- Case wdCurrentDateText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE
- Case wdCurrentTimeText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TIME
- Case wdDateText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE
- Case wdNumberText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_NUMBER
- Case wdRegularText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TEXT
- Case Else
- Str = RID_STR_WORD_ENUMERATION_UNKNOWN
- End Select
-
- getTextFormFieldDefaultAsString = Str
-End Function
-Function getTextFormFieldFormatAsString(fieldType As WdTextFormFieldType)
- Dim Str As String
-
- Select Case fieldType
- Case wdCalculationText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER
- Case wdCurrentDateText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE
- Case wdCurrentTimeText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TIME
- Case wdDateText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE
- Case wdNumberText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER
- Case wdRegularText
- Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TEXT
- Case Else
- Str = RID_STR_WORD_ENUMERATION_UNKNOWN
- End Select
-
- getTextFormFieldFormatAsString = Str
-End Function
-
-Sub Analyze_FieldAndFormFieldIssues(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_FormFields"
- Dim myIssue As IssueInfo
-
- 'Analysze all Fields in doc
- Dim myField As Field
-
- For Each myField In currDoc.Fields
- 'Analyze Mail Merge Fields
- Analyze_MailMergeField myField
-
- 'Analyze TOA Fields
- Analyze_TOAField myField
- Next myField
-
- 'Analyze FormField doc issues
- If currDoc.FormFields.count = 0 Then GoTo FinalExit
-
- If (currDoc.FormFields.Shaded) Then
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_FIELDS
- .IssueType = RID_STR_WORD_ISSUE_FIELDS
- .SubType = RID_STR_WORD_SUBISSUE_APPEARANCE
- .Location = .CLocationDocument
-
- .IssueTypeXML = CSTR_ISSUE_FIELDS
- .SubTypeXML = CSTR_SUBISSUE_APPEARANCE
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_GREYED
- .Values.Add RID_STR_WORD_TRUE
- mAnalysis.IssuesCountArray(CID_FIELDS) = _
- mAnalysis.IssuesCountArray(CID_FIELDS) + 1
- End With
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
-
- 'Analyse all FormFields in doc
- Dim myFormField As FormField
-
- For Each myFormField In currDoc.FormFields
- Analyze_FormFieldIssue myFormField
- Next myFormField
-
-FinalExit:
- Set myIssue = Nothing
- Set myFormField = Nothing
- Exit Sub
-
-HandleErrors:
-
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_FormFieldIssue(myFormField As FormField)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_FormFieldIssue"
- Dim myIssue As IssueInfo
- Dim bCheckBoxIssues As Boolean
- Dim bFormFieldIssues As Boolean
-
- bCheckBoxIssues = False
- If (myFormField.Type = wdFieldFormCheckBox) Then
- If myFormField.CheckBox.AutoSize Then
- bCheckBoxIssues = True
- End If
- End If
-
- bFormFieldIssues = bCheckBoxIssues
-
- If Not bFormFieldIssues Then GoTo FinalExit
-
- myFormField.Select
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_FIELDS
- .IssueType = RID_STR_WORD_ISSUE_FIELDS
- .SubType = RID_STR_WORD_SUBISSUE_FORM_FIELD
- .Location = .CLocationPage
-
- .IssueTypeXML = CSTR_ISSUE_FIELDS
- .SubTypeXML = CSTR_SUBISSUE_FORM_FIELD
- .locationXML = .CXMLLocationPage
-
- .SubLocation = Selection.Information(wdActiveEndPageNumber)
- .Line = Selection.Information(wdFirstCharacterLineNumber)
- .column = Selection.Information(wdFirstCharacterColumnNumber)
- myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_TYPE
- myIssue.Values.Add getFormFieldTypeAsString(myFormField.Type)
- End With
-
- 'Checkbox Issues
- If (myFormField.Type = wdFieldFormCheckBox) Then
- 'AutoSize CheckBoxes
- If myFormField.CheckBox.AutoSize Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_AUTOSIZE
- myIssue.Values.Add RID_STR_WORD_TRUE
- End If
- End If
-
- 'TextInput Issues
- If myFormField.Type = wdFieldFormTextInput Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_TEXT_FORM_FIELD_TYPE
- myIssue.Values.Add getTextFormFieldTypeAsString(myFormField.TextInput.Type)
- Dim bLostType As Boolean
- bLostType = False
- If (myFormField.TextInput.Type = wdCalculationText) Or _
- (myFormField.TextInput.Type = wdCurrentDateText) Or _
- (myFormField.TextInput.Type = wdCurrentTimeText) Then
- AddIssueDetailsNote myIssue, 0, getTextFormFieldTypeAsString(myFormField.TextInput.Type) & _
- " " & RID_STR_WORD_NOTE_FORM_FIELD_TYPE_LOST
- bLostType = True
- End If
-
- If (myFormField.TextInput.Format <> "") Then
- myIssue.Attributes.Add getTextFormFieldFormatAsString(myFormField.TextInput.Type)
- myIssue.Values.Add myFormField.TextInput.Format
- End If
-
- 'Default text
- If (myFormField.TextInput.Default <> "") Then
- myIssue.Attributes.Add getTextFormFieldDefaultAsString(myFormField.TextInput.Type)
- myIssue.Values.Add myFormField.TextInput.Default
- End If
-
- 'Maximum text
- If (myFormField.TextInput.Width <> 0) Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_MAX_LENGTH
- myIssue.Values.Add myFormField.TextInput.Width
- End If
-
- 'Fill-in disabled
- If (myFormField.Enabled = False) And (Not bLostType) Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_FILLIN_ENABLED
- myIssue.Values.Add RID_STR_WORD_FALSE
- End If
- End If
-
- 'Help Key(F1)
- If (myFormField.OwnHelp And myFormField.HelpText <> "") Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_OWN_TEXT
- myIssue.Values.Add myFormField.HelpText
- ElseIf ((Not myFormField.OwnHelp) And myFormField.HelpText <> "") Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_AUTO_TEXT
- myIssue.Values.Add myFormField.HelpText
- End If
-
- 'StatusHelp
- If (myFormField.OwnStatus And myFormField.StatusText <> "") Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_OWN_TEXT
- myIssue.Values.Add myFormField.StatusText
- ElseIf ((Not myFormField.OwnStatus) And myFormField.StatusText <> "") Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_AUTO_TEXT
- myIssue.Values.Add myFormField.StatusText
- End If
-
- 'Macros
- If (myFormField.EntryMacro <> "") Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_ENTRY_MACRO
- myIssue.Values.Add myFormField.EntryMacro
- End If
- If (myFormField.ExitMacro <> "") Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_EXIT_MACRO
- myIssue.Values.Add myFormField.ExitMacro
- End If
- If (myFormField.EntryMacro <> "") Or (myFormField.ExitMacro <> "") Then
- mAnalysis.MacroNumFieldsUsingMacros = 1 + mAnalysis.MacroNumFieldsUsingMacros
- End If
-
- 'LockedField
- If (myFormField.Enabled = False) And (myFormField.Type <> wdFieldFormTextInput) Then
- myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_LOCKED
- myIssue.Values.Add RID_STR_WORD_TRUE
- End If
-
- mAnalysis.IssuesCountArray(CID_FIELDS) = _
- mAnalysis.IssuesCountArray(CID_FIELDS) + 1
-
- mAnalysis.Issues.Add myIssue
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- 'Log first occurence for this doc
- If Not mbFormFieldErrorLogged Then
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- mbFormFieldErrorLogged = True
- End If
- Resume FinalExit
-End Sub
-
-
-Sub Analyze_TOA(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_TOA"
-
- Dim toa As TableOfAuthorities
- Dim myIssue As IssueInfo
- Dim myRng As Range
-
- For Each toa In currDoc.TablesOfAuthorities
- Set myRng = toa.Range
- myRng.start = myRng.End
- Set myIssue = New IssueInfo
- myRng.Select
-
- Dim TabLeaderAsString As String
- Select Case toa.TabLeader
- Case wdTabLeaderDashes
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_DASHES
- Case wdTabLeaderDots
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_DOTS
- Case wdTabLeaderHeavy
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_HEAVY
- Case wdTabLeaderLines
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_LINES
- Case wdTabLeaderMiddleDot
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_MIDDLEDOT
- Case wdTabLeaderSpaces
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_SPACES
- Case Else
- TabLeaderAsString = RID_STR_WORD_ENUMERATION_UNKNOWN
- End Select
-
- Dim FormatAsString As String
- Select Case currDoc.TablesOfAuthorities.Format
- Case wdTOAClassic
- FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_CLASSIC
- Case wdTOADistinctive
- FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_DISTINCTIVE
- Case wdTOAFormal
- FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_FORMAL
- Case wdTOASimple
- FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_SIMPLE
- Case wdTOATemplate
- FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_FROM_TEMPLATE
- Case Else
- FormatAsString = RID_STR_WORD_ENUMERATION_UNKNOWN
- End Select
-
- With myIssue
- .IssueID = CID_INDEX_AND_REFERENCES
- .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES
- .SubType = RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES
- .Location = .CLocationPage
-
- .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES
- .SubTypeXML = CSTR_SUBISSUE_TABLE_OF_AUTHORITIES
- .locationXML = .CXMLLocationPage
-
- .SubLocation = myRng.Information(wdActiveEndPageNumber)
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_LEADER
- .Values.Add TabLeaderAsString
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_TOA_MIGRATE_AS_PLAIN_TEXT
-
- mAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _
- mAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- Set myRng = Nothing
- Next
-FinalExit:
- Set myIssue = Nothing
- Set myRng = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_TOAField(myField As Field)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_TOAField"
-
- Dim toa As TableOfAuthorities
- Dim myIssue As IssueInfo
-
- If myField.Type = wdFieldTOAEntry Then
- Set myIssue = New IssueInfo
- myField.Select
-
- With myIssue
- .IssueID = CID_FIELDS
- .IssueType = RID_STR_WORD_ISSUE_FIELDS
- .SubType = RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD
- .Location = .CLocationPage
-
- .IssueTypeXML = CSTR_ISSUE_FIELDS
- .SubTypeXML = CSTR_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD
- .locationXML = .CXMLLocationPage
-
- .SubLocation = Selection.Information(wdActiveEndPageNumber)
- .Line = Selection.Information(wdFirstCharacterLineNumber)
- .column = Selection.Information(wdFirstCharacterColumnNumber)
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_FIELD_TEXT
- .Values.Add myField.Code.Text
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_TOA_FIELD_LOST_ON_ROUNDTRIP
-
- mAnalysis.IssuesCountArray(CID_FIELDS) = _
- mAnalysis.IssuesCountArray(CID_FIELDS) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
-
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub Analyze_Tables_Borders(currDoc As Document)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Tables_Borders"
- Dim myIssue As IssueInfo
- Set myIssue = New IssueInfo
- Dim aTable As Table
- Dim invalidBorders As String
-
- For Each aTable In currDoc.Tables
- invalidBorders = GetInvalidBorder(aTable)
- If invalidBorders <> "" Then
- aTable.Range.Select
- Set myIssue = New IssueInfo
- With myIssue
- .IssueID = CID_TABLES
- .IssueType = RID_STR_WORD_ISSUE_TABLES
- .SubType = RID_STR_WORD_SUBISSUE_BORDER_STYLES
- .Location = .CLocationPage
-
- .IssueTypeXML = CSTR_ISSUE_TABLES
- .SubTypeXML = CSTR_SUBISSUE_BORDER_STYLES
- .locationXML = .CXMLLocationPage
-
- .SubLocation = Selection.Information(wdActiveEndPageNumber)
- .Line = Selection.Information(wdFirstCharacterLineNumber)
- .column = Selection.Information(wdFirstCharacterColumnNumber)
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_BORDERS_NOT_DISPLAYING
- .Values.Add invalidBorders
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_TABLE_BORDER
-
- mAnalysis.IssuesCountArray(CID_TABLES) = mAnalysis.IssuesCountArray(CID_TABLES) + 1
- End With
-
- mAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
- Next aTable
-FinalExit:
- Set myIssue = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-Function GetInvalidBorder(aTable As Table) As String
-
- Dim theResult As String
- theResult = ""
-
- If IsInvalidBorderStyle(aTable.Borders(wdBorderTop).LineStyle) Then
- theResult = theResult + "Top, "
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderBottom).LineStyle) Then
- theResult = theResult + "Bottom, "
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderDiagonalDown).LineStyle) Then
- theResult = theResult + "Down Diagonal, "
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderDiagonalUp).LineStyle) Then
- theResult = theResult + "Up Diagonal, "
-
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderHorizontal).LineStyle) Then
- theResult = theResult + "Horizontal, "
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderLeft).LineStyle) Then
- theResult = theResult + "Left, "
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderRight).LineStyle) Then
- theResult = theResult + "Right, "
- End If
- If IsInvalidBorderStyle(aTable.Borders(wdBorderVertical).LineStyle) Then
- theResult = theResult + "Vertical, "
- End If
-
- If theResult <> "" Then
- theResult = Left(theResult, (Len(theResult) - 2)) + "."
- End If
-
- GetInvalidBorder = theResult
-End Function
-
-Function IsInvalidBorderStyle(aStyle As WdLineStyle) As Boolean
-
- Dim IsInvalid As Boolean
-
- Select Case aStyle
- Case wdLineStyleDot, wdLineStyleDashSmallGap, wdLineStyleDashLargeGap, wdLineStyleDashDot, _
- wdLineStyleDashDotDot, wdLineStyleTriple, wdLineStyleThinThickThinSmallGap, wdLineStyleThinThickMedGap, _
- wdLineStyleThickThinMedGap, wdLineStyleThinThickThinMedGap, wdLineStyleThinThickLargeGap, _
- wdLineStyleThickThinLargeGap, wdLineStyleThinThickThinLargeGap, wdLineStyleSingleWavy, _
- wdLineStyleDoubleWavy, wdLineStyleDashDotStroked, wdLineStyleEmboss3D, wdLineStyleEngrave3D
- IsInvalid = True
- Case Else
- IsInvalid = False
- End Select
-
- IsInvalidBorderStyle = IsInvalid
-
-End Function
-
-Private Sub Class_Initialize()
- Set mAnalysis = New DocumentAnalysis
-End Sub
-Private Sub Class_Terminate()
- Set mAnalysis = Nothing
-End Sub
-
-Public Property Get Results() As DocumentAnalysis
- Set Results = mAnalysis
-End Property
-
-Sub Analyze_NumberingTabs(currDoc As Document, docAnalysis As DocumentAnalysis)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_NumberingTabs"
-
- Dim tb As TabStop
- Dim customTabPos As Single
- Dim tabs As Integer
- Dim listLvl As Long
- Dim tp As Single
- Dim bHasAlignmentProblem As Boolean
- Dim bHasTooManyTabs As Boolean
- Dim myIssue As IssueInfo
- Dim p As Object
-
- bHasAlignmentProblem = False
- bHasTooManyTabs = False
-
- For Each p In currDoc.ListParagraphs
- tabs = 0
- For Each tb In p.TabStops
- If tb.customTab Then
- tabs = tabs + 1
- customTabPos = tb.Position
- End If
- Next
-
- If tabs = 1 Then
- listLvl = p.Range.ListFormat.ListLevelNumber
- tp = p.Range.ListFormat.ListTemplate.ListLevels.item(listLvl).TabPosition
- If (p.Range.ListFormat.ListTemplate.ListLevels.item(listLvl).Alignment <> _
- wdListLevelAlignLeft) Then
- ' ERROR: alignment problem
- bHasAlignmentProblem = True
- End If
-
- If tp <> customTabPos Then
- p.Range.InsertBefore ("XXXXX")
- End If
- 'OK - at least heuristically
- Else
- 'ERROR: too many tabs
- bHasTooManyTabs = True
- End If
- Next
-
- If (bHasAlignmentProblem) Then
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_INDEX_AND_REFERENCES
- .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES
- .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_TAB_ALIGNMENT
- .Location = .CLocationDocument 'Location string
-
- .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES
- .SubTypeXML = CSTR_SUBISSUE_NUMBERING_TAB_ALIGNMENT
- .locationXML = .CXMLLocationDocument
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_TAB_ALIGNMENT
-
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1
- End With
- docAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
-
- If (bHasTooManyTabs) Then
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_INDEX_AND_REFERENCES
- .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES
- .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_TAB_OVERFLOW
- .Location = .CLocationDocument 'Location string
-
- .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES
- .SubTypeXML = CSTR_SUBISSUE_NUMBERING_TAB_OVERFLOW
- .locationXML = .CXMLLocationDocument
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_TAB_OVERFLOW
-
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1
- End With
- docAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Set myIssue = Nothing
- Resume FinalExit
-End Sub
-
-Sub Analyze_Numbering(currDoc As Document, docAnalysis As DocumentAnalysis)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Analyze_Numbering"
-
- Dim myIssue As IssueInfo
- Dim nFormatProblems As Integer
- Dim nAlignmentProblems As Integer
- nFormatProblems = 0
- nAlignmentProblems = 0
-
- Dim lt As ListTemplate
- Dim lvl As ListLevel
- Dim I, l_, p1, p2, v1, v2 As Integer
- Dim display_levels As Integer
- Dim fmt, prefix, postfix, res As String
-
- For Each lt In currDoc.ListTemplates
- l_ = 0
- For Each lvl In lt.ListLevels
- l_ = l_ + 1
- 'Selection.TypeText Text:="List Number Format " + lvl.NumberFormat
- 'Apply Heuristic
- fmt = lvl.NumberFormat
- p1 = InStr(fmt, "%")
- p2 = InStrRev(fmt, "%")
- v1 = val(Mid(fmt, p1 + 1, 1))
- v2 = val(Mid(fmt, p2 + 1, 1))
- display_levels = v2 - v1 + 1
- prefix = Mid(fmt, 1, p1 - 1)
- postfix = Mid(fmt, p2 + 2)
- 'Check Heuristic
- res = prefix
- For I = 2 To display_levels
- res = "%" + Trim(Str(l_ - I + 1)) + "." + res
- Next
- res = res + "%" + Trim(Str(l_)) + postfix
- If (StrComp(res, fmt) <> 0) Then
- nFormatProblems = nFormatProblems + 1
- 'Selection.TypeText Text:="Label Problem: NumberFormat=" + fmt + " Heuristic=" + res
- End If
-
- 'check alignment
- If (lvl.NumberPosition <> wdListLevelAlignLeft) Then
- nAlignmentProblems = nAlignmentProblems + 1
- 'Selection.TypeText Text:="Number alignment problem"
- End If
- Next
- Next
-
- If (nFormatProblems > 0) Then
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_INDEX_AND_REFERENCES
- .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES
- .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_FORMAT
- .Location = .CLocationDocument 'Location string
-
- .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES
- .SubTypeXML = CSTR_SUBISSUE_NUMBERING_FORMAT
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_COUNT
- .Values.Add nFormatProblems
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_FORMAT
-
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1
- End With
- docAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
-
- If (nAlignmentProblems > 0) Then
- Set myIssue = New IssueInfo
-
- With myIssue
- .IssueID = CID_INDEX_AND_REFERENCES
- .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES
- .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_ALIGNMENT
- .Location = .CLocationDocument 'Location string
-
- .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES
- .SubTypeXML = CSTR_SUBISSUE_NUMBERING_ALIGNMENT
- .locationXML = .CXMLLocationDocument
-
- .Attributes.Add RID_STR_WORD_ATTRIBUTE_COUNT
- .Values.Add nAlignmentProblems
-
- AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_ALIGNMENT
-
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _
- docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1
- End With
- docAnalysis.Issues.Add myIssue
- Set myIssue = Nothing
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
- Set myIssue = Nothing
- Resume FinalExit
-End Sub
-
+VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "MigrationAnalyser" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +'************************************************************************* +' +' Licensed to the Apache Software Foundation (ASF) under one +' or more contributor license agreements. See the NOTICE file +' distributed with this work for additional information +' regarding copyright ownership. The ASF licenses this file +' to you under the Apache License, Version 2.0 (the +' "License"); you may not use this file except in compliance +' with the License. You may obtain a copy of the License at +' +' http://www.apache.org/licenses/LICENSE-2.0 +' +' Unless required by applicable law or agreed to in writing, +' software distributed under the License is distributed on an +' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +' KIND, either express or implied. See the License for the +' specific language governing permissions and limitations +' under the License. +' +'************************************************************************* + +Option Explicit + +'Class variables +Private Enum HFIssueType + hfInline + hfShape + hfFrame +End Enum + +Private Enum HFIssueLocation + hfHeader + hffooter +End Enum + + +Private Type ShapeInfo + top As Single + Height As Single +End Type + +Private Type FrameInfo + Height As Single + VerticalPosition As Single +End Type + +Private mAnalysis As DocumentAnalysis +Private mOdd As Boolean +Private mbFormFieldErrorLogged As Boolean +Private mbRefFormFieldErrorLogged As Boolean + +'***ADDING-ISSUE: Use Following Skeleton as Guideline for Adding Issue +' For complete list of all RID_STR_... for Issues (IssueType), SubIssues (SubType) and Attributes refer to: +' word_res.bas and common_res.bas +' +' For complete list of all CID_... for Issue Categories(IssueID) and +' CSTR_... for XML Issues (IssueTypeXML) and XML SubIssues (SubTypeXML) refer to: +' ApplicationSpecific.bas and CommonMigrationAnalyser.bas +' +' You should not have to add any new Issue Categories or matching IssueTypes, only new SubIssues +Sub Analyze_SKELETON() + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_SKELETON" + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_VBA_MACROS 'Issue Category + .IssueType = RID_STR_COMMON_ISSUE_VBA_MACROS 'Issue String + .SubType = RID_STR_COMMON_SUBISSUE_PROPERTIES 'SubIssue String + .Location = .CLocationDocument 'Location string + + .IssueTypeXML = CSTR_ISSUE_VBA_MACROS 'Non localised XML Issue String + .SubTypeXML = CSTR_SUBISSUE_PROPERTIES 'Non localised XML SubIssue String + .locationXML = .CXMLLocationDocument 'Non localised XML location + + .SubLocation = 0 'if not set will default to RID_STR_NOT_AVAILABLE_SHORTHAND + .Line = 0 'if not set will default to RID_STR_NOT_AVAILABLE_SHORTHAND + .column = 0 'if not set will default to RID_STR_NOT_AVAILABLE_SHORTHAND + + ' Add as many Attribute Value pairs as needed + ' Note: following must always be true - Attributes.Count = Values.Count + .Attributes.Add "AAA" + .Values.Add "foobar" + + ' Use AddIssueDetailsNote to add notes to the Issue Details if required + ' Public Sub AddIssueDetailsNote(myIssue As IssueInfo, noteNum As Long, noteStr As String, _ + ' Optional preStr As String = RID_STR_COMMON_NOTE_PRE) + ' Where preStr is prepended to the output, with "Note" as the default + AddIssueDetailsNote myIssue, 0, RID_STR_COMMON_NOTE_DOCUMENT_PROPERTIES_LOST + + 'Only put this in if you have a preparation function added for this issue in CommonPreparation + 'or Preparation - NUll can be replaced with any variant if you want to pass info to the Prepare fnc + Call DoPreparation(mAnalysis, myIssue, "", Null, Null) + + mAnalysis.IssuesCountArray(CID_VBA_MACROS) = _ + mAnalysis.IssuesCountArray(CID_VBA_MACROS) + 1 + End With + + mAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub DoAnalyse(fileName As String, userFormTypesDict As Scripting.Dictionary, _ + startDir As String, storeToDir As String, fso As FileSystemObject) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "DoAnalyse" + mAnalysis.name = fileName + Dim aDoc As Document + Dim bUnprotectError As Boolean + mAnalysis.TotalIssueTypes = CTOTAL_CATEGORIES + mbFormFieldErrorLogged = False + mbRefFormFieldErrorLogged = False + + 'Turn off any AutoExce macros before loading the Word doc + On Error Resume Next ' Ignore errors on setting + WordBasic.DisableAutoMacros 1 + On Error GoTo HandleErrors + + Dim myPassword As String + myPassword = GetDefaultPassword + + 'Always skip password protected documents + 'If IsSkipPasswordDocs() Then + Dim aPass As String + If myPassword <> "" Then + aPass = myPassword + Else + aPass = "xoxoxoxoxo" + End If + + On Error Resume Next + Set aDoc = Documents.Open(fileName, False, False, False, _ + aPass, aPass, False, aPass, aPass, wdOpenFormatAuto, _ + msoEncodingAutoDetect, False) + If Err.Number = 5408 Then + ' if password protected, try open readonly next + Set aDoc = Documents.Open(fileName, False, True, False, _ + aPass, aPass, False, aPass, aPass, wdOpenFormatAuto, _ + msoEncodingAutoDetect, False) + End If + If Err.Number = 5408 Then + HandleProtectedDocInvalidPassword mAnalysis, _ + "User entered Invalid Document Password, further analysis not possible", fso + Analyze_Password_Protection True, False + GoTo FinalExit + ElseIf (Err.Number <> 0) Then + GoTo HandleErrors + End If + + On Error GoTo HandleErrors + + If aDoc Is Nothing Then GoTo FinalExit + + 'Do Analysis + Analyze_Password_Protection aDoc.HasPassword, aDoc.WriteReserved + Analyze_Document_Protection aDoc + + If aDoc.ProtectionType <> wdNoProtection Then + If myPassword <> "" Then + aDoc.Unprotect (myPassword) + Else + aDoc.Unprotect + End If + End If + + 'Set Doc Properties + SetDocProperties mAnalysis, aDoc, fso + +ContinueFromUnprotectError: + + Analyze_Tables_TablesInTables aDoc + Analyze_Tables_Borders aDoc + Analyze_TOA aDoc + If Not bUnprotectError Then + Analyze_FieldAndFormFieldIssues aDoc + End If + Analyze_OLEEmbedded aDoc + Analyze_MailMerge_DataSource aDoc + Analyze_Macros mAnalysis, userFormTypesDict, aDoc + 'Analyze_Numbering aDoc, mAnalysis + 'Analyze_NumberingTabs aDoc, mAnalysis + + ' Doc Preparation only + ' Save document with any prepared issues under <storeToDir>\prepared\<source doc name> + If mAnalysis.PreparableIssuesCount > 0 And CheckDoPrepare Then + Dim preparedFullPath As String + preparedFullPath = GetPreparedFullPath(mAnalysis.name, startDir, storeToDir, fso) + If preparedFullPath <> "" Then + If fso.FileExists(preparedFullPath) Then + fso.DeleteFile preparedFullPath, True + End If + If fso.FolderExists(fso.GetParentFolderName(preparedFullPath)) Then + aDoc.SaveAs preparedFullPath + End If + End If + End If + + 'DebugMacroInfo + +FinalExit: + + + If Not aDoc Is Nothing Then 'If Not IsEmpty(aDoc) Then + aDoc.Close (False) + End If + Set aDoc = Nothing + + Exit Sub + +HandleErrors: + ' MsgBox currentFunctionName & " : " & fileName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + ' Handle Password error on Doc Open, Modify and Cancel + If Err.Number = 5408 Or Err.Number = 4198 Then + WriteDebug currentFunctionName & " : " & fileName & ": " & _ + "User entered Invalid Document Password - " & Err.Number & " " & Err.Description & " " & Err.Source + HandleProtectedDocInvalidPassword mAnalysis, _ + "User entered Invalid Document Password, further analysis not possible", fso + Resume FinalExit + ElseIf Err.Number = 5485 Then + ' Handle Password error on Unprotect Doc + WriteDebug currentFunctionName & " : " & fileName & ": " & _ + "User entered Invalid Document Part Password, Analysis of doc will continue but will skip analysis of:" & _ + "Forms, Comments, Headers & Footers and Table cell spanning issues - " & Err.Number & " " & Err.Description & " " & Err.Source + HandleProtectedDocInvalidPassword mAnalysis, _ + "User entered Invalid Document Part Password, Analysis of doc will continue but will skip analysis of:" & vbLf & _ + "Forms, Comments, Headers & Footers and Table cell spanning issues", fso + bUnprotectError = True + 'wdAllowOnlyComments, wdAllowOnlyFormFields, wdAllowOnlyRevisions + Resume ContinueFromUnprotectError + End If + mAnalysis.Application = RID_STR_COMMON_CANNOT_OPEN + WriteDebug currentFunctionName & " : " & fileName & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub DebugMacroInfo() + MsgBox "TotalNumLines: " & mAnalysis.MacroTotalNumLines & vbLf & _ + "NumUserForms: " & mAnalysis.MacroNumUserForms & vbLf & _ + "NumUserFormControls: " & mAnalysis.MacroNumUserFormControls & vbLf & _ + "NumUserFormControlTypes: " & mAnalysis.MacroNumUserFormControlTypes & vbLf & _ + "NumExternalRefs: " & mAnalysis.MacroNumExternalRefs & vbLf & _ + "MacroNumFieldsUsingMacros: " & mAnalysis.MacroNumFieldsUsingMacros & vbLf & _ + "NumOLEControls: " & mAnalysis.MacroNumOLEControls & vbLf & _ + "MacroOverallClass: " & getDocOverallMacroClassAsString(mAnalysis.MacroOverallClass) +End Sub + +Sub SetDocProperties(docAnalysis As DocumentAnalysis, doc As Document, fso As FileSystemObject) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "SetProperties" + Dim f As File + Set f = fso.GetFile(docAnalysis.name) + + docAnalysis.PageCount = doc.ComputeStatistics(wdStatisticPages) + docAnalysis.Accessed = f.DateLastAccessed + + On Error Resume Next 'Some apps may not support all props + docAnalysis.Application = getAppSpecificApplicationName & " " & Application.Version + 'docAnalysis.Application = doc.BuiltinDocumentProperties(wdPropertyAppName) + 'If InStr(docAnalysis.Application, "Microsoft") = 1 Then + ' docAnalysis.Application = Mid(docAnalysis.Application, Len("Microsoft") + 2) + 'End If + 'If InStr(Len(docAnalysis.Application) - 2, docAnalysis.Application, ".") = 0 Then + ' docAnalysis.Application = docAnalysis.Application & " " & Application.Version + 'End If + + docAnalysis.Created = _ + doc.BuiltInDocumentProperties(wdPropertyTimeCreated) + docAnalysis.Modified = _ + doc.BuiltInDocumentProperties(wdPropertyTimeLastSaved) + docAnalysis.Printed = _ + doc.BuiltInDocumentProperties(wdPropertyTimeLastPrinted) + docAnalysis.SavedBy = _ + doc.BuiltInDocumentProperties(wdPropertyLastAuthor) + docAnalysis.Revision = _ + val(doc.BuiltInDocumentProperties(wdPropertyRevision)) + docAnalysis.Template = _ + fso.GetFileName(doc.BuiltInDocumentProperties(wdPropertyTemplate)) + +FinalExit: + Set f = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +'Limitation: Detect first level table in tables, does not detect further nesting +'Can do so if required +Sub Analyze_Tables_TablesInTables(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Tables_TablesInTables" + Dim myTopTable As Table + Dim myInnerTable As Table + Dim myIssue As IssueInfo + + For Each myTopTable In currDoc.Tables + For Each myInnerTable In myTopTable.Tables + Dim logString As String + Dim myRng As Range + Dim startpage As Long + Dim startRow As Long + Dim StartColumn As Long + Dim details As String + + Set myIssue = New IssueInfo + Set myRng = myInnerTable.Range + myRng.start = myRng.End + startpage = myRng.Information(wdActiveEndPageNumber) + startRow = myRng.Information(wdStartOfRangeRowNumber) + StartColumn = myRng.Information(wdStartOfRangeColumnNumber) + + With myIssue + .IssueID = CID_TABLES + .IssueType = RID_STR_WORD_ISSUE_TABLES + .SubType = RID_STR_WORD_SUBISSUE_NESTED_TABLES + .Location = .CLocationPage + .SubLocation = startpage + + .IssueTypeXML = CSTR_ISSUE_TABLES + .SubTypeXML = CSTR_SUBISSUE_NESTED_TABLES + .locationXML = .CXMLLocationPage + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_OUTER_TABLE + .Values.Add myTopTable.Rows.count & "x" & myTopTable.Columns.count + .Attributes.Add RID_STR_WORD_ATTRIBUTE_INNER_TABLE + .Values.Add myInnerTable.Rows.count & "x" & myInnerTable.Columns.count + .Attributes.Add RID_STR_WORD_ATTRIBUTE_START_ROW + .Values.Add startRow + .Attributes.Add RID_STR_WORD_ATTRIBUTE_START_COL + .Values.Add StartColumn + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NESTED_TABLE_WILL_BE_LOST + + mAnalysis.IssuesCountArray(CID_TABLES) = _ + mAnalysis.IssuesCountArray(CID_TABLES) + 1 + End With + + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + Set myRng = Nothing + Next + Next + Exit Sub +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + +Sub Analyze_Document_Protection(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Document_Protection" + If currDoc.ProtectionType = wdNoProtection Then + Exit Sub + End If + + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_STR_COMMON_SUBISSUE_DOCUMENT_PARTS_PROTECTION + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_DOCUMENT_PARTS_PROTECTION + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_PROTECTION + Select Case currDoc.ProtectionType + Case wdAllowOnlyComments + .Values.Add RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_COMMENTS + Case wdAllowOnlyFormFields + .Values.Add RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_FORM_FIELDS + Case wdAllowOnlyRevisions + .Values.Add RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_REVISIONS + Case Else + .Values.Add RID_STR_COMMON_ATTRIBUTE_UNKNOWN + End Select + + mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + mAnalysis.Issues.Add myIssue +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_Password_Protection(bHasPassword As Boolean, bWriteReserved As Boolean) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Password_Protection" + Dim myIssue As IssueInfo + + If bHasPassword Or bWriteReserved Then + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_STR_COMMON_SUBISSUE_PASSWORDS_PROTECTION + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_PASSWORDS_PROTECTION + .locationXML = .CXMLLocationDocument + + If bHasPassword Then + .Attributes.Add RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_OPEN + .Values.Add RID_STR_WORD_ATTRIBUTE_SET + End If + If bWriteReserved Then + .Attributes.Add RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_MODIFY + .Values.Add RID_STR_WORD_ATTRIBUTE_SET + End If + + mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + mAnalysis.Issues.Add myIssue + End If +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_OLEEmbedded(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_OLEEmbedded" + + ' Handle Inline Shapes + Dim aILShape As InlineShape + For Each aILShape In currDoc.InlineShapes + Analyze_OLEEmbeddedSingleInlineShape aILShape + Next aILShape + + ' Handle Shapes + Dim aShape As Shape + For Each aShape In currDoc.Shapes + Analyze_OLEEmbeddedSingleShape mAnalysis, aShape, _ + Selection.Information(wdActiveEndPageNumber) + Analyze_Lines mAnalysis, aShape, _ + Selection.Information(wdActiveEndPageNumber) + Analyze_Transparency mAnalysis, aShape, _ + Selection.Information(wdActiveEndPageNumber) + Analyze_Gradients mAnalysis, aShape, _ + Selection.Information(wdActiveEndPageNumber) + Next aShape + + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + + +'WdInlineShapeType constants: +'wdInlineShapeEmbeddedOLEObject, wdInlineShapeHorizontalLine, wdInlineShapeLinkedOLEObject, +'wdInlineShapeLinkedPicture, wdInlineShapeLinkedPictureHorizontalLine, wdInlineShapeOLEControlObject, +'wdInlineShapeOWSAnchor, wdInlineShapePicture, wdInlineShapePictureBullet, +'wdInlineShapePictureHorizontalLine, wdInlineShapeScriptAnchor + +Sub Analyze_OLEEmbeddedSingleInlineShape(aILShape As InlineShape) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_OLEEmbeddedSingleInlineShape" + Dim myIssue As IssueInfo + Dim bOleObject As Boolean + Dim TypeAsString As String + Dim XMLTypeAsString As String + Dim objName As String + + bOleObject = (aILShape.Type = wdInlineShapeEmbeddedOLEObject) Or _ + (aILShape.Type = wdInlineShapeLinkedOLEObject) Or _ + (aILShape.Type = wdInlineShapeOLEControlObject) + + If Not bOleObject Then Exit Sub + + aILShape.Select + Select Case aILShape.Type + Case wdInlineShapeOLEControlObject + TypeAsString = RID_STR_COMMON_OLE_CONTROL + XMLTypeAsString = CSTR_SUBISSUE_OLE_CONTROL + Case wdInlineShapeEmbeddedOLEObject + TypeAsString = RID_STR_COMMON_OLE_EMBEDDED + XMLTypeAsString = CSTR_SUBISSUE_OLE_EMBEDDED + Case wdInlineShapeLinkedOLEObject + TypeAsString = RID_STR_COMMON_OLE_LINKED + XMLTypeAsString = CSTR_SUBISSUE_OLE_LINKED + Case Else + TypeAsString = RID_STR_COMMON_OLE_UNKNOWN + XMLTypeAsString = CSTR_SUBISSUE_OLE_UNKNOWN + End Select + + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_PORTABILITY + .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY + .SubType = TypeAsString + .Location = .CLocationPage + .SubLocation = Selection.Information(wdActiveEndPageNumber) + + .IssueTypeXML = CSTR_ISSUE_PORTABILITY + .SubTypeXML = XMLTypeAsString + .locationXML = .CXMLLocationPage + + .Line = Selection.Information(wdFirstCharacterLineNumber) + .column = Selection.Information(wdFirstCharacterColumnNumber) + + DoEvents + If aILShape.Type = wdInlineShapeEmbeddedOLEObject Or _ + aILShape.Type = wdInlineShapeOLEControlObject Then + + 'If Object is invalid can get automation server hanging + Dim tmpStr As String + On Error Resume Next + tmpStr = aILShape.OLEFormat.Object + If Err.Number = 0 Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE + .Values.Add aILShape.OLEFormat.ProgID + Else + Err.Clear + tmpStr = aILShape.OLEFormat.ClassType + If Err.Number = 0 Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE + .Values.Add aILShape.OLEFormat.ClassType + Else + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE + .Values.Add RID_STR_COMMON_NA + End If + End If + + If aILShape.Type = wdInlineShapeOLEControlObject Then + mAnalysis.MacroNumOLEControls = 1 + mAnalysis.MacroNumOLEControls + End If + + objName = aILShape.OLEFormat.Object.name + If Err.Number = 0 Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME + .Values.Add objName + End If + On Error GoTo HandleErrors + End If + If aILShape.Type = wdInlineShapeLinkedOLEObject Then + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_SOURCE + .Values.Add aILShape.LinkFormat.SourceFullName + End If + + mAnalysis.IssuesCountArray(CID_PORTABILITY) = _ + mAnalysis.IssuesCountArray(CID_PORTABILITY) + 1 + End With + + mAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebugLevelTwo currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +'Appears to be picked up by other OLE analysis code - the Shapes are actually field codes +'So I get double reporting if I use this as well. +Sub Analyze_OLEFields(myField As Field) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_OLEFields" + Dim myIssue As IssueInfo + Dim bOleObject As Boolean + Dim TypeAsString As String + Dim XMLTypeAsString As String + + bOleObject = (myField.Type = wdFieldOCX) + + If Not bOleObject Then Exit Sub + + myField.Select + Select Case myField.Type + Case wdFieldLink + TypeAsString = RID_STR_COMMON_OLE_FIELD_LINK + XMLTypeAsString = CSTR_SUBISSUE_OLE_FIELD_LINK + Case Else + TypeAsString = RID_STR_COMMON_OLE_UNKNOWN + XMLTypeAsString = CSTR_SUBISSUE_OLE_UNKNOWN + End Select + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_PORTABILITY + .IssueType = RID_STR_COMMON_ISSUE_PORTABILITY + .SubType = TypeAsString + .Location = .CLocationPage + .SubLocation = Selection.Information(wdActiveEndPageNumber) + + .IssueTypeXML = CSTR_ISSUE_PORTABILITY + .SubTypeXML = XMLTypeAsString + .locationXML = .CXMLLocationPage + + .Line = Selection.Information(wdFirstCharacterLineNumber) + .column = Selection.Information(wdFirstCharacterColumnNumber) + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE + .Values.Add myField.OLEFormat.ClassType + + If myField.Type = wdFieldLink Then + .Attributes.Add RID_STR_WORD_ATTRIBUTE_LINK + .Values.Add myField.LinkFormat.SourceFullName + End If + mAnalysis.IssuesCountArray(CID_PORTABILITY) = _ + mAnalysis.IssuesCountArray(CID_PORTABILITY) + 1 + End With + mAnalysis.Issues.Add myIssue + + Set myIssue = Nothing + + Exit Sub + +HandleErrors: + Set myIssue = Nothing + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + +Sub Analyze_MailMergeField(myField As Field) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_MailMergeField" + Dim myIssue As IssueInfo + Dim TypeAsString As String + Dim bProblemMailMergeField As Boolean + + bProblemMailMergeField = _ + (myField.Type = wdFieldFillIn) Or _ + (myField.Type = wdFieldAsk) Or _ + (myField.Type = wdFieldMergeRec) Or _ + (myField.Type = wdFieldMergeField) Or _ + (myField.Type = wdFieldNext) Or _ + (myField.Type = wdFieldRevisionNum) Or _ + (myField.Type = wdFieldSequence) Or _ + (myField.Type = wdFieldAutoNum) Or _ + (myField.Type = wdFieldAutoNumOutline) Or _ + (myField.Type = wdFieldAutoNumLegal) + + If bProblemMailMergeField Then + 'Some of the following are numbering fields and need to be broken out into a separate function. See migration guide. + + Select Case myField.Type + Case wdFieldFillIn + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_FILL_IN + Case wdFieldAsk + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_ASK + Case wdFieldMergeRec + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_RECORDS + Case wdFieldMergeField + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_FIELDS + Case wdFieldNext + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_NEXT + Case wdFieldRevisionNum + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_REVISION_NUMBER + Case wdFieldSequence + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_SEQUENCE + Case wdFieldAutoNum + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER + Case wdFieldAutoNumOutline + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_OUTLINE + Case wdFieldAutoNumLegal + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_LEGAL + Case Else + TypeAsString = RID_STR_WORD_ENUMERATION_MAILMERGE_FIELD_NAME_NOT_KNOWN + End Select + + Set myIssue = New IssueInfo + myField.Select + With myIssue + .IssueID = CID_FIELDS + .IssueType = RID_STR_WORD_ISSUE_FIELDS + .SubType = RID_STR_WORD_SUBISSUE_MAILMERGE_FIELD + .Location = .CLocationPage + + .IssueTypeXML = CSTR_ISSUE_FIELDS + .SubTypeXML = CSTR_SUBISSUE_MAILMERGE_FIELD + .locationXML = .CXMLLocationPage + + .SubLocation = Selection.Information(wdActiveEndPageNumber) + .Line = Selection.Information(wdFirstCharacterLineNumber) + .column = Selection.Information(wdFirstCharacterColumnNumber) + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add TypeAsString + If myField.Code.Text <> "" Then + .Attributes.Add RID_STR_WORD_ATTRIBUTE_TEXT + .Values.Add myField.Code.Text + End If + + mAnalysis.IssuesCountArray(CID_FIELDS) = _ + mAnalysis.IssuesCountArray(CID_FIELDS) + 1 + End With + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + +'Get field DS Info +Sub Analyze_MailMerge_DataSource(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_MailMerge_DataSource" + ' There may be no mail merge in the document + If (currDoc.MailMerge.DataSource.Type = wdNoMergeInfo) Then + Exit Sub + End If + + 'Dim issue As SimpleAnalysisInfo + If (currDoc.MailMerge.DataSource.Type <> wdNoMergeInfo) Then + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_CONTENT_AND_DOCUMENT_PROPERTIES + .IssueType = RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES + .SubType = RID_STR_WORD_SUBISSUE_MAILMERGE_DATASOURCE + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_CONTENT_DOCUMENT_PROPERTIES + .SubTypeXML = CSTR_SUBISSUE_MAILMERGE_DATASOURCE + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_COMMON_ATTRIBUTE_NAME + .Values.Add currDoc.MailMerge.DataSource.name + .Attributes.Add RID_STR_WORD_ATTRIBUTE_DATASOURCE + .Values.Add currDoc.MailMerge.DataSource.Type + + mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) = _ + mAnalysis.IssuesCountArray(CID_CONTENT_AND_DOCUMENT_PROPERTIES) + 1 + End With + + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + +Function getFormFieldTypeAsString(fieldType As WdFieldType) + Dim Str As String + + Select Case fieldType + Case wdFieldFormCheckBox + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CHECK_BOX + Case wdFieldFormDropDown + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DROP_DOWN + Case wdFieldFormTextInput + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_TEXT + Case Else + Str = RID_STR_WORD_ENUMERATION_UNKNOWN + End Select + + getFormFieldTypeAsString = Str +End Function +Function getTextFormFieldTypeAsString(fieldType As WdTextFormFieldType) + Dim Str As String + + Select Case fieldType + Case wdCalculationText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CALCULATION + Case wdCurrentDateText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_DATE + Case wdCurrentTimeText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_TIME + Case wdDateText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DATE + Case wdNumberText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_NUMBER + Case wdRegularText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_REGULAR + Case Else + Str = RID_STR_WORD_ENUMERATION_UNKNOWN + End Select + + getTextFormFieldTypeAsString = Str +End Function +Function getTextFormFieldDefaultAsString(fieldType As WdTextFormFieldType) + Dim Str As String + + Select Case fieldType + Case wdCalculationText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_EXPRESSION + Case wdCurrentDateText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE + Case wdCurrentTimeText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TIME + Case wdDateText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE + Case wdNumberText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_NUMBER + Case wdRegularText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TEXT + Case Else + Str = RID_STR_WORD_ENUMERATION_UNKNOWN + End Select + + getTextFormFieldDefaultAsString = Str +End Function +Function getTextFormFieldFormatAsString(fieldType As WdTextFormFieldType) + Dim Str As String + + Select Case fieldType + Case wdCalculationText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER + Case wdCurrentDateText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE + Case wdCurrentTimeText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TIME + Case wdDateText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE + Case wdNumberText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER + Case wdRegularText + Str = RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TEXT + Case Else + Str = RID_STR_WORD_ENUMERATION_UNKNOWN + End Select + + getTextFormFieldFormatAsString = Str +End Function + +Sub Analyze_FieldAndFormFieldIssues(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_FormFields" + Dim myIssue As IssueInfo + + 'Analysze all Fields in doc + Dim myField As Field + + For Each myField In currDoc.Fields + 'Analyze Mail Merge Fields + Analyze_MailMergeField myField + + 'Analyze TOA Fields + Analyze_TOAField myField + Next myField + + 'Analyze FormField doc issues + If currDoc.FormFields.count = 0 Then GoTo FinalExit + + If (currDoc.FormFields.Shaded) Then + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_FIELDS + .IssueType = RID_STR_WORD_ISSUE_FIELDS + .SubType = RID_STR_WORD_SUBISSUE_APPEARANCE + .Location = .CLocationDocument + + .IssueTypeXML = CSTR_ISSUE_FIELDS + .SubTypeXML = CSTR_SUBISSUE_APPEARANCE + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_GREYED + .Values.Add RID_STR_WORD_TRUE + mAnalysis.IssuesCountArray(CID_FIELDS) = _ + mAnalysis.IssuesCountArray(CID_FIELDS) + 1 + End With + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + + 'Analyse all FormFields in doc + Dim myFormField As FormField + + For Each myFormField In currDoc.FormFields + Analyze_FormFieldIssue myFormField + Next myFormField + +FinalExit: + Set myIssue = Nothing + Set myFormField = Nothing + Exit Sub + +HandleErrors: + + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_FormFieldIssue(myFormField As FormField) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_FormFieldIssue" + Dim myIssue As IssueInfo + Dim bCheckBoxIssues As Boolean + Dim bFormFieldIssues As Boolean + + bCheckBoxIssues = False + If (myFormField.Type = wdFieldFormCheckBox) Then + If myFormField.CheckBox.AutoSize Then + bCheckBoxIssues = True + End If + End If + + bFormFieldIssues = bCheckBoxIssues + + If Not bFormFieldIssues Then GoTo FinalExit + + myFormField.Select + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_FIELDS + .IssueType = RID_STR_WORD_ISSUE_FIELDS + .SubType = RID_STR_WORD_SUBISSUE_FORM_FIELD + .Location = .CLocationPage + + .IssueTypeXML = CSTR_ISSUE_FIELDS + .SubTypeXML = CSTR_SUBISSUE_FORM_FIELD + .locationXML = .CXMLLocationPage + + .SubLocation = Selection.Information(wdActiveEndPageNumber) + .Line = Selection.Information(wdFirstCharacterLineNumber) + .column = Selection.Information(wdFirstCharacterColumnNumber) + myIssue.Attributes.Add RID_STR_COMMON_ATTRIBUTE_TYPE + myIssue.Values.Add getFormFieldTypeAsString(myFormField.Type) + End With + + 'Checkbox Issues + If (myFormField.Type = wdFieldFormCheckBox) Then + 'AutoSize CheckBoxes + If myFormField.CheckBox.AutoSize Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_AUTOSIZE + myIssue.Values.Add RID_STR_WORD_TRUE + End If + End If + + 'TextInput Issues + If myFormField.Type = wdFieldFormTextInput Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_TEXT_FORM_FIELD_TYPE + myIssue.Values.Add getTextFormFieldTypeAsString(myFormField.TextInput.Type) + Dim bLostType As Boolean + bLostType = False + If (myFormField.TextInput.Type = wdCalculationText) Or _ + (myFormField.TextInput.Type = wdCurrentDateText) Or _ + (myFormField.TextInput.Type = wdCurrentTimeText) Then + AddIssueDetailsNote myIssue, 0, getTextFormFieldTypeAsString(myFormField.TextInput.Type) & _ + " " & RID_STR_WORD_NOTE_FORM_FIELD_TYPE_LOST + bLostType = True + End If + + If (myFormField.TextInput.Format <> "") Then + myIssue.Attributes.Add getTextFormFieldFormatAsString(myFormField.TextInput.Type) + myIssue.Values.Add myFormField.TextInput.Format + End If + + 'Default text + If (myFormField.TextInput.Default <> "") Then + myIssue.Attributes.Add getTextFormFieldDefaultAsString(myFormField.TextInput.Type) + myIssue.Values.Add myFormField.TextInput.Default + End If + + 'Maximum text + If (myFormField.TextInput.Width <> 0) Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_MAX_LENGTH + myIssue.Values.Add myFormField.TextInput.Width + End If + + 'Fill-in disabled + If (myFormField.Enabled = False) And (Not bLostType) Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_FILLIN_ENABLED + myIssue.Values.Add RID_STR_WORD_FALSE + End If + End If + + 'Help Key(F1) + If (myFormField.OwnHelp And myFormField.HelpText <> "") Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_OWN_TEXT + myIssue.Values.Add myFormField.HelpText + ElseIf ((Not myFormField.OwnHelp) And myFormField.HelpText <> "") Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_AUTO_TEXT + myIssue.Values.Add myFormField.HelpText + End If + + 'StatusHelp + If (myFormField.OwnStatus And myFormField.StatusText <> "") Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_OWN_TEXT + myIssue.Values.Add myFormField.StatusText + ElseIf ((Not myFormField.OwnStatus) And myFormField.StatusText <> "") Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_AUTO_TEXT + myIssue.Values.Add myFormField.StatusText + End If + + 'Macros + If (myFormField.EntryMacro <> "") Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_ENTRY_MACRO + myIssue.Values.Add myFormField.EntryMacro + End If + If (myFormField.ExitMacro <> "") Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_EXIT_MACRO + myIssue.Values.Add myFormField.ExitMacro + End If + If (myFormField.EntryMacro <> "") Or (myFormField.ExitMacro <> "") Then + mAnalysis.MacroNumFieldsUsingMacros = 1 + mAnalysis.MacroNumFieldsUsingMacros + End If + + 'LockedField + If (myFormField.Enabled = False) And (myFormField.Type <> wdFieldFormTextInput) Then + myIssue.Attributes.Add RID_STR_WORD_ATTRIBUTE_FORM_FIELD_LOCKED + myIssue.Values.Add RID_STR_WORD_TRUE + End If + + mAnalysis.IssuesCountArray(CID_FIELDS) = _ + mAnalysis.IssuesCountArray(CID_FIELDS) + 1 + + mAnalysis.Issues.Add myIssue + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + 'Log first occurrence for this doc + If Not mbFormFieldErrorLogged Then + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + mbFormFieldErrorLogged = True + End If + Resume FinalExit +End Sub + + +Sub Analyze_TOA(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_TOA" + + Dim toa As TableOfAuthorities + Dim myIssue As IssueInfo + Dim myRng As Range + + For Each toa In currDoc.TablesOfAuthorities + Set myRng = toa.Range + myRng.start = myRng.End + Set myIssue = New IssueInfo + myRng.Select + + Dim TabLeaderAsString As String + Select Case toa.TabLeader + Case wdTabLeaderDashes + TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_DASHES + Case wdTabLeaderDots + TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_DOTS + Case wdTabLeaderHeavy + TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_HEAVY + Case wdTabLeaderLines + TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_LINES + Case wdTabLeaderMiddleDot + TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_MIDDLEDOT + Case wdTabLeaderSpaces + TabLeaderAsString = RID_STR_WORD_ENUMERATION_INDEX_LEADER_SPACES + Case Else + TabLeaderAsString = RID_STR_WORD_ENUMERATION_UNKNOWN + End Select + + Dim FormatAsString As String + Select Case currDoc.TablesOfAuthorities.Format + Case wdTOAClassic + FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_CLASSIC + Case wdTOADistinctive + FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_DISTINCTIVE + Case wdTOAFormal + FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_FORMAL + Case wdTOASimple + FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_SIMPLE + Case wdTOATemplate + FormatAsString = RID_STR_WORD_ENUMERATION_INDEX_TABLES_FROM_TEMPLATE + Case Else + FormatAsString = RID_STR_WORD_ENUMERATION_UNKNOWN + End Select + + With myIssue + .IssueID = CID_INDEX_AND_REFERENCES + .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES + .SubType = RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES + .Location = .CLocationPage + + .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES + .SubTypeXML = CSTR_SUBISSUE_TABLE_OF_AUTHORITIES + .locationXML = .CXMLLocationPage + + .SubLocation = myRng.Information(wdActiveEndPageNumber) + .Attributes.Add RID_STR_WORD_ATTRIBUTE_LEADER + .Values.Add TabLeaderAsString + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_TOA_MIGRATE_AS_PLAIN_TEXT + + mAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _ + mAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1 + End With + + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + Set myRng = Nothing + Next +FinalExit: + Set myIssue = Nothing + Set myRng = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_TOAField(myField As Field) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_TOAField" + + Dim toa As TableOfAuthorities + Dim myIssue As IssueInfo + + If myField.Type = wdFieldTOAEntry Then + Set myIssue = New IssueInfo + myField.Select + + With myIssue + .IssueID = CID_FIELDS + .IssueType = RID_STR_WORD_ISSUE_FIELDS + .SubType = RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD + .Location = .CLocationPage + + .IssueTypeXML = CSTR_ISSUE_FIELDS + .SubTypeXML = CSTR_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD + .locationXML = .CXMLLocationPage + + .SubLocation = Selection.Information(wdActiveEndPageNumber) + .Line = Selection.Information(wdFirstCharacterLineNumber) + .column = Selection.Information(wdFirstCharacterColumnNumber) + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_FIELD_TEXT + .Values.Add myField.Code.Text + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_TOA_FIELD_LOST_ON_ROUNDTRIP + + mAnalysis.IssuesCountArray(CID_FIELDS) = _ + mAnalysis.IssuesCountArray(CID_FIELDS) + 1 + End With + + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub Analyze_Tables_Borders(currDoc As Document) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Tables_Borders" + Dim myIssue As IssueInfo + Set myIssue = New IssueInfo + Dim aTable As Table + Dim invalidBorders As String + + For Each aTable In currDoc.Tables + invalidBorders = GetInvalidBorder(aTable) + If invalidBorders <> "" Then + aTable.Range.Select + Set myIssue = New IssueInfo + With myIssue + .IssueID = CID_TABLES + .IssueType = RID_STR_WORD_ISSUE_TABLES + .SubType = RID_STR_WORD_SUBISSUE_BORDER_STYLES + .Location = .CLocationPage + + .IssueTypeXML = CSTR_ISSUE_TABLES + .SubTypeXML = CSTR_SUBISSUE_BORDER_STYLES + .locationXML = .CXMLLocationPage + + .SubLocation = Selection.Information(wdActiveEndPageNumber) + .Line = Selection.Information(wdFirstCharacterLineNumber) + .column = Selection.Information(wdFirstCharacterColumnNumber) + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_BORDERS_NOT_DISPLAYING + .Values.Add invalidBorders + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_TABLE_BORDER + + mAnalysis.IssuesCountArray(CID_TABLES) = mAnalysis.IssuesCountArray(CID_TABLES) + 1 + End With + + mAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + Next aTable +FinalExit: + Set myIssue = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub +Function GetInvalidBorder(aTable As Table) As String + + Dim theResult As String + theResult = "" + + If IsInvalidBorderStyle(aTable.Borders(wdBorderTop).LineStyle) Then + theResult = theResult + "Top, " + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderBottom).LineStyle) Then + theResult = theResult + "Bottom, " + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderDiagonalDown).LineStyle) Then + theResult = theResult + "Down Diagonal, " + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderDiagonalUp).LineStyle) Then + theResult = theResult + "Up Diagonal, " + + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderHorizontal).LineStyle) Then + theResult = theResult + "Horizontal, " + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderLeft).LineStyle) Then + theResult = theResult + "Left, " + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderRight).LineStyle) Then + theResult = theResult + "Right, " + End If + If IsInvalidBorderStyle(aTable.Borders(wdBorderVertical).LineStyle) Then + theResult = theResult + "Vertical, " + End If + + If theResult <> "" Then + theResult = Left(theResult, (Len(theResult) - 2)) + "." + End If + + GetInvalidBorder = theResult +End Function + +Function IsInvalidBorderStyle(aStyle As WdLineStyle) As Boolean + + Dim IsInvalid As Boolean + + Select Case aStyle + Case wdLineStyleDot, wdLineStyleDashSmallGap, wdLineStyleDashLargeGap, wdLineStyleDashDot, _ + wdLineStyleDashDotDot, wdLineStyleTriple, wdLineStyleThinThickThinSmallGap, wdLineStyleThinThickMedGap, _ + wdLineStyleThickThinMedGap, wdLineStyleThinThickThinMedGap, wdLineStyleThinThickLargeGap, _ + wdLineStyleThickThinLargeGap, wdLineStyleThinThickThinLargeGap, wdLineStyleSingleWavy, _ + wdLineStyleDoubleWavy, wdLineStyleDashDotStroked, wdLineStyleEmboss3D, wdLineStyleEngrave3D + IsInvalid = True + Case Else + IsInvalid = False + End Select + + IsInvalidBorderStyle = IsInvalid + +End Function + +Private Sub Class_Initialize() + Set mAnalysis = New DocumentAnalysis +End Sub +Private Sub Class_Terminate() + Set mAnalysis = Nothing +End Sub + +Public Property Get Results() As DocumentAnalysis + Set Results = mAnalysis +End Property + +Sub Analyze_NumberingTabs(currDoc As Document, docAnalysis As DocumentAnalysis) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_NumberingTabs" + + Dim tb As TabStop + Dim customTabPos As Single + Dim tabs As Integer + Dim listLvl As Long + Dim tp As Single + Dim bHasAlignmentProblem As Boolean + Dim bHasTooManyTabs As Boolean + Dim myIssue As IssueInfo + Dim p As Object + + bHasAlignmentProblem = False + bHasTooManyTabs = False + + For Each p In currDoc.ListParagraphs + tabs = 0 + For Each tb In p.TabStops + If tb.customTab Then + tabs = tabs + 1 + customTabPos = tb.Position + End If + Next + + If tabs = 1 Then + listLvl = p.Range.ListFormat.ListLevelNumber + tp = p.Range.ListFormat.ListTemplate.ListLevels.item(listLvl).TabPosition + If (p.Range.ListFormat.ListTemplate.ListLevels.item(listLvl).Alignment <> _ + wdListLevelAlignLeft) Then + ' ERROR: alignment problem + bHasAlignmentProblem = True + End If + + If tp <> customTabPos Then + p.Range.InsertBefore ("XXXXX") + End If + 'OK - at least heuristically + Else + 'ERROR: too many tabs + bHasTooManyTabs = True + End If + Next + + If (bHasAlignmentProblem) Then + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_INDEX_AND_REFERENCES + .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES + .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_TAB_ALIGNMENT + .Location = .CLocationDocument 'Location string + + .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES + .SubTypeXML = CSTR_SUBISSUE_NUMBERING_TAB_ALIGNMENT + .locationXML = .CXMLLocationDocument + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_TAB_ALIGNMENT + + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _ + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1 + End With + docAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + + If (bHasTooManyTabs) Then + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_INDEX_AND_REFERENCES + .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES + .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_TAB_OVERFLOW + .Location = .CLocationDocument 'Location string + + .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES + .SubTypeXML = CSTR_SUBISSUE_NUMBERING_TAB_OVERFLOW + .locationXML = .CXMLLocationDocument + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_TAB_OVERFLOW + + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _ + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1 + End With + docAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Set myIssue = Nothing + Resume FinalExit +End Sub + +Sub Analyze_Numbering(currDoc As Document, docAnalysis As DocumentAnalysis) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Analyze_Numbering" + + Dim myIssue As IssueInfo + Dim nFormatProblems As Integer + Dim nAlignmentProblems As Integer + nFormatProblems = 0 + nAlignmentProblems = 0 + + Dim lt As ListTemplate + Dim lvl As ListLevel + Dim I, l_, p1, p2, v1, v2 As Integer + Dim display_levels As Integer + Dim fmt, prefix, postfix, res As String + + For Each lt In currDoc.ListTemplates + l_ = 0 + For Each lvl In lt.ListLevels + l_ = l_ + 1 + 'Selection.TypeText Text:="List Number Format " + lvl.NumberFormat + 'Apply Heuristic + fmt = lvl.NumberFormat + p1 = InStr(fmt, "%") + p2 = InStrRev(fmt, "%") + v1 = val(Mid(fmt, p1 + 1, 1)) + v2 = val(Mid(fmt, p2 + 1, 1)) + display_levels = v2 - v1 + 1 + prefix = Mid(fmt, 1, p1 - 1) + postfix = Mid(fmt, p2 + 2) + 'Check Heuristic + res = prefix + For I = 2 To display_levels + res = "%" + Trim(Str(l_ - I + 1)) + "." + res + Next + res = res + "%" + Trim(Str(l_)) + postfix + If (StrComp(res, fmt) <> 0) Then + nFormatProblems = nFormatProblems + 1 + 'Selection.TypeText Text:="Label Problem: NumberFormat=" + fmt + " Heuristic=" + res + End If + + 'check alignment + If (lvl.NumberPosition <> wdListLevelAlignLeft) Then + nAlignmentProblems = nAlignmentProblems + 1 + 'Selection.TypeText Text:="Number alignment problem" + End If + Next + Next + + If (nFormatProblems > 0) Then + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_INDEX_AND_REFERENCES + .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES + .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_FORMAT + .Location = .CLocationDocument 'Location string + + .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES + .SubTypeXML = CSTR_SUBISSUE_NUMBERING_FORMAT + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_COUNT + .Values.Add nFormatProblems + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_FORMAT + + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _ + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1 + End With + docAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + + If (nAlignmentProblems > 0) Then + Set myIssue = New IssueInfo + + With myIssue + .IssueID = CID_INDEX_AND_REFERENCES + .IssueType = RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES + .SubType = RID_STR_WORD_SUBISSUE_NUMBERING_ALIGNMENT + .Location = .CLocationDocument 'Location string + + .IssueTypeXML = CSTR_ISSUE_INDEX_AND_REFERENCES + .SubTypeXML = CSTR_SUBISSUE_NUMBERING_ALIGNMENT + .locationXML = .CXMLLocationDocument + + .Attributes.Add RID_STR_WORD_ATTRIBUTE_COUNT + .Values.Add nAlignmentProblems + + AddIssueDetailsNote myIssue, 0, RID_STR_WORD_NOTE_NUMBERING_ALIGNMENT + + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) = _ + docAnalysis.IssuesCountArray(CID_INDEX_AND_REFERENCES) + 1 + End With + docAnalysis.Issues.Add myIssue + Set myIssue = Nothing + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & mAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source + Set myIssue = Nothing + Resume FinalExit +End Sub + diff --git a/migrationanalysis/src/msokill/msokill.cpp b/migrationanalysis/src/msokill/msokill.cpp index 9940aa47903a..9f6df41783a8 100644 --- a/migrationanalysis/src/msokill/msokill.cpp +++ b/migrationanalysis/src/msokill/msokill.cpp @@ -91,7 +91,7 @@ int main(int argc, char* argv[]) } /*-------------------------------------------------------------- - Find the MSO window if it is available and explictly kill it + Find the MSO window if it is available and explicitly kill it MSO apps in this case are Excel, Word and PP Use FindWindow Win32 API to detect if they are available diff --git a/migrationanalysis/src/wizard/Wizard.frm b/migrationanalysis/src/wizard/Wizard.frm index ebb955386c68..e64c5ab7ea8c 100644 --- a/migrationanalysis/src/wizard/Wizard.frm +++ b/migrationanalysis/src/wizard/Wizard.frm @@ -1,3453 +1,3453 @@ -VERSION 5.00
-Begin VB.Form frmWizard
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 1 'Fixed Single
- Caption = "OpenOffice.org Document Analysis Wizard"
- ClientHeight = 5520
- ClientLeft = 1965
- ClientTop = 1815
- ClientWidth = 8175
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Icon = "Wizard.frx":0000
- KeyPreview = -1 'True
- LinkTopic = "Form1"
- LockControls = -1 'True
- MaxButton = 0 'False
- MinButton = 0 'False
- ScaleHeight = 5520
- ScaleWidth = 8175
- Tag = "1000"
- Begin VB.Frame fraStep
- BorderStyle = 0 'None
- Caption = "Introduction"
- ClipControls = 0 'False
- Enabled = 0 'False
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 4905
- Index = 0
- Left = -10000
- TabIndex = 25
- Tag = "1000"
- Top = 0
- Width = 8235
- Begin VB.PictureBox Picture4
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 4935
- Index = 0
- Left = 0
- ScaleHeight = 4935
- ScaleWidth = 2565
- TabIndex = 2
- TabStop = 0 'False
- Top = 0
- Width = 2565
- Begin VB.PictureBox Picture10
- Height = 735
- Left = 2580
- ScaleHeight = 735
- ScaleWidth = 30
- TabIndex = 68
- TabStop = 0 'False
- Top = 2610
- Width = 30
- End
- Begin VB.PictureBox Picture6
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1485
- Left = 150
- ScaleHeight = 1485
- ScaleWidth = 2355
- TabIndex = 67
- TabStop = 0 'False
- Top = 3390
- Width = 2355
- Begin VB.PictureBox Picture1
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1200
- Index = 0
- Left = 200
- Picture = "Wizard.frx":482C2
- ScaleHeight = 1200
- ScaleWidth = 1980
- TabIndex = 7
- TabStop = 0 'False
- Tag = "1060"
- Top = 300
- Width = 1980
- End
- End
- Begin VB.Label lblStep1_4
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "4. Analyze"
- ForeColor = &H00BF4F59&
- Height = 195
- Left = 120
- TabIndex = 89
- Tag = "1044"
- Top = 1800
- Width = 2140
- End
- Begin VB.Line Line2
- BorderColor = &H00808080&
- Index = 2
- X1 = 2550
- X2 = 2550
- Y1 = 0
- Y2 = 4920
- End
- Begin VB.Line Line3
- Index = 1
- X1 = 120
- X2 = 2280
- Y1 = 480
- Y2 = 480
- End
- Begin VB.Label Label7
- BackColor = &H00EED3C2&
- Caption = "1. Introduction"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 11
- Tag = "1041"
- Top = 720
- Width = 2140
- End
- Begin VB.Label Label8
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "3. Results"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 9
- Tag = "1043"
- Top = 1440
- Width = 2140
- End
- Begin VB.Label Label9
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "2. Documents"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 10
- Tag = "1042"
- Top = 1080
- Width = 2140
- End
- Begin VB.Label Label12
- BackStyle = 0 'Transparent
- Caption = "Steps"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 255
- Index = 1
- Left = 120
- TabIndex = 8
- Tag = "1040"
- Top = 240
- Width = 2115
- End
- End
- Begin VB.PictureBox Picture8
- Appearance = 0 'Flat
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 4935
- Left = 2400
- ScaleHeight = 4935
- ScaleWidth = 5925
- TabIndex = 3
- TabStop = 0 'False
- Top = -30
- Width = 5925
- Begin VB.CheckBox chkShowIntro
- Caption = "Do not show this introduction again"
- Enabled = 0 'False
- Height = 315
- Left = 690
- MaskColor = &H00000000&
- TabIndex = 6
- Tag = "1103"
- Top = 4890
- Visible = 0 'False
- Width = 3810
- End
- Begin VB.Label lblIntroduction1
- AutoSize = -1 'True
- Caption = $"Wizard.frx":4F8B8
- Height = 585
- Left = 690
- TabIndex = 93
- Tag = "1101"
- Top = 750
- Width = 4890
- WordWrap = -1 'True
- End
- Begin VB.Label lblIntroduction3
- AutoSize = -1 'True
- Caption = "The wizard will remain on screen while the analysis is carried out."
- Height = 195
- Left = 690
- TabIndex = 0
- Tag = "1104"
- Top = 2670
- Width = 4845
- WordWrap = -1 'True
- End
- Begin VB.Label lblIntroduction2
- AutoSize = -1 'True
- Caption = "You will be able to select which documents you want to analyze as well as where you want the results to the analysis to be saved. "
- Height = 390
- Left = 690
- TabIndex = 1
- Tag = "1102"
- Top = 1800
- Width = 4875
- WordWrap = -1 'True
- End
- Begin VB.Label Label12
- BackStyle = 0 'Transparent
- Caption = "Introduction"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 255
- Index = 2
- Left = 450
- TabIndex = 5
- Tag = "1100"
- Top = 270
- Width = 4000
- End
- End
- End
- Begin VB.Frame fraStep
- BorderStyle = 0 'None
- Caption = "Setup"
- Enabled = 0 'False
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 4905
- Index = 1
- Left = -10000
- TabIndex = 32
- Tag = "2000"
- Top = 0
- Width = 8235
- Begin VB.PictureBox Picture4
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 4905
- Index = 1
- Left = 0
- ScaleHeight = 4905
- ScaleWidth = 2565
- TabIndex = 61
- TabStop = 0 'False
- Top = 0
- Width = 2565
- Begin VB.PictureBox Picture1
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1200
- Index = 1
- Left = 350
- Picture = "Wizard.frx":4F971
- ScaleHeight = 1200
- ScaleWidth = 1980
- TabIndex = 62
- TabStop = 0 'False
- Tag = "1060"
- Top = 3690
- Width = 1980
- End
- Begin VB.Label lblStep2_4
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "4. Analyze"
- ForeColor = &H00BF4F59&
- Height = 195
- Left = 120
- TabIndex = 90
- Tag = "1044"
- Top = 1800
- Width = 2140
- End
- Begin VB.Line Line2
- BorderColor = &H00808080&
- Index = 1
- X1 = 2550
- X2 = 2550
- Y1 = 0
- Y2 = 4920
- End
- Begin VB.Label Label12
- BackStyle = 0 'Transparent
- Caption = "Steps"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 66
- Tag = "1040"
- Top = 240
- Width = 1335
- End
- Begin VB.Label Label9
- BackColor = &H00EED3C2&
- Caption = "2. Documents"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 65
- Tag = "1042"
- Top = 1080
- Width = 2140
- End
- Begin VB.Label Label8
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "3. Results"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 64
- Tag = "1043"
- Top = 1440
- Width = 2140
- End
- Begin VB.Label Label7
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "1. Introduction"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 2
- Left = 120
- TabIndex = 63
- Tag = "1041"
- Top = 720
- Width = 2140
- End
- Begin VB.Line Line3
- Index = 2
- X1 = 120
- X2 = 2280
- Y1 = 480
- Y2 = 480
- End
- End
- Begin VB.PictureBox Picture7
- Appearance = 0 'Flat
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 4725
- Left = 2580
- ScaleHeight = 4725
- ScaleWidth = 5535
- TabIndex = 58
- TabStop = 0 'False
- Top = 0
- Width = 5535
- Begin VB.ComboBox cbIgnoreOld
- Height = 330
- ItemData = "Wizard.frx":56F67
- Left = 3950
- List = "Wizard.frx":56F74
- Style = 2 'Dropdown List
- TabIndex = 99
- Top = 1570
- Width = 1215
- End
- Begin VB.CheckBox chkIgnoreOld
- Caption = "Ignore documents older than"
- Height = 225
- Left = 450
- TabIndex = 98
- Top = 1600
- Width = 3400
- End
- Begin VB.CheckBox chkWordDoc
- Caption = "Documents (*.doc)"
- Height = 225
- Left = 2160
- TabIndex = 19
- Tag = "1208"
- Top = 2600
- Value = 1 'Checked
- Width = 3200
- End
- Begin VB.CheckBox chkWordTemplate
- Caption = "Templates (*.dot)"
- Height = 225
- Left = 2160
- TabIndex = 20
- Tag = "1209"
- Top = 2900
- Width = 3200
- End
- Begin VB.CheckBox chkPPTemplate
- Caption = "Templates (*.pot)"
- Height = 225
- Left = 2160
- TabIndex = 24
- Tag = "1215"
- Top = 4400
- Width = 3200
- End
- Begin VB.CheckBox chkPPDoc
- Caption = "Presentations (*.ppt)"
- Height = 225
- Left = 2160
- TabIndex = 23
- Tag = "1214"
- Top = 4100
- Width = 3200
- End
- Begin VB.CheckBox chkExcelDoc
- Caption = "Spreadsheets (*.xls)"
- Height = 225
- Left = 2160
- TabIndex = 21
- Tag = "1211"
- Top = 3350
- Width = 3200
- End
- Begin VB.CheckBox chkExcelTemplate
- Caption = "Templates (*.xlt)"
- Height = 225
- Left = 2160
- TabIndex = 22
- Tag = "1212"
- Top = 3650
- Width = 3200
- End
- Begin VB.CommandButton btnBrowseDirInput
- Caption = "..."
- Height = 315
- Left = 4740
- TabIndex = 17
- Top = 900
- Width = 400
- End
- Begin VB.TextBox txtInputDir
- Height = 315
- Left = 450
- TabIndex = 16
- Tag = "1205"
- Text = "C:\"
- Top = 900
- Width = 4155
- End
- Begin VB.CheckBox chkIncludeSubdirs
- Caption = "Include subdirectories in the analysis"
- Height = 225
- Left = 450
- TabIndex = 18
- Tag = "1202"
- Top = 1300
- Width = 4965
- End
- Begin VB.Label lblDocTypes
- Caption = "Document types to analyze"
- Height = 225
- Left = 450
- TabIndex = 95
- Tag = "1206"
- Top = 2250
- Width = 4905
- End
- Begin VB.Label lblChooseDocs
- AutoSize = -1 'True
- Caption = "Choose the documents you want to analyze"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 195
- Left = 300
- TabIndex = 94
- Tag = "1200"
- Top = 240
- Width = 5115
- WordWrap = -1 'True
- End
- Begin VB.Label Label13
- AutoSize = -1 'True
- Caption = "PowerPoint"
- Height = 225
- Index = 2
- Left = 690
- TabIndex = 74
- Tag = "1213"
- Top = 4100
- Width = 1245
- WordWrap = -1 'True
- End
- Begin VB.Label Label13
- AutoSize = -1 'True
- Caption = "Excel"
- Height = 225
- Index = 1
- Left = 690
- TabIndex = 73
- Tag = "1210"
- Top = 3350
- Width = 1245
- WordWrap = -1 'True
- End
- Begin VB.Label Label13
- AutoSize = -1 'True
- Caption = "Word"
- Height = 225
- Index = 0
- Left = 690
- TabIndex = 72
- Tag = "1207"
- Top = 2600
- Width = 1245
- WordWrap = -1 'True
- End
- Begin VB.Label Label1
- Caption = "Location of Microsoft Office documents"
- Height = 200
- Left = 450
- TabIndex = 59
- Tag = "1201"
- Top = 600
- Width = 4935
- End
- End
- End
- Begin VB.Frame fraStep
- BorderStyle = 0 'None
- Caption = "Options"
- Enabled = 0 'False
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 4905
- Index = 2
- Left = -10000
- TabIndex = 33
- Tag = "2002"
- Top = 0
- Width = 8235
- Begin VB.PictureBox Picture11
- BorderStyle = 0 'None
- Height = 555
- Left = 7260
- ScaleHeight = 555
- ScaleWidth = 705
- TabIndex = 75
- Top = 1890
- Width = 705
- Begin VB.CommandButton btnBrowseDirOut
- Caption = "..."
- Height = 375
- Left = 90
- TabIndex = 28
- Top = 90
- Width = 495
- End
- End
- Begin VB.TextBox txtResultsName
- Height = 375
- Left = 3030
- TabIndex = 26
- Tag = "1302"
- Text = "Analysis Results.xls"
- Top = 1140
- Width = 3045
- End
- Begin VB.TextBox txtOutputDir
- Height = 375
- Left = 3030
- TabIndex = 27
- Top = 1980
- Width = 4185
- End
- Begin VB.PictureBox Picture5
- Appearance = 0 'Flat
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1365
- Left = 3300
- ScaleHeight = 1365
- ScaleWidth = 4635
- TabIndex = 57
- TabStop = 0 'False
- Top = 3210
- Width = 4635
- Begin VB.OptionButton rdbResultsPrompt
- Caption = "Ask me before overwriting"
- Height = 435
- Left = 0
- TabIndex = 29
- Tag = "1312"
- Top = 0
- Value = -1 'True
- Width = 4485
- End
- Begin VB.OptionButton rdbResultsOverwrite
- Caption = "Overwrite without asking me"
- Height = 435
- Left = 0
- TabIndex = 30
- Tag = "1313"
- Top = 450
- Width = 4455
- End
- Begin VB.OptionButton rdbResultsAppend
- Caption = "Append the new results to the existing results"
- Height = 675
- Left = 0
- TabIndex = 31
- Tag = "1314"
- Top = 780
- Visible = 0 'False
- Width = 4515
- End
- End
- Begin VB.Frame Frame3
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- Enabled = 0 'False
- ForeColor = &H0099A8AC&
- Height = 5175
- Index = 0
- Left = 0
- TabIndex = 39
- Top = 0
- Width = 2535
- Begin VB.PictureBox Picture1
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1200
- Index = 3
- Left = 350
- Picture = "Wizard.frx":56F97
- ScaleHeight = 1200
- ScaleWidth = 1980
- TabIndex = 40
- TabStop = 0 'False
- Top = 3690
- Width = 1980
- End
- Begin VB.Label lblStep3_4
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "4. Analyze"
- ForeColor = &H00BF4F59&
- Height = 195
- Left = 120
- TabIndex = 91
- Tag = "1044"
- Top = 1800
- Width = 2140
- End
- Begin VB.Label Label12
- BackStyle = 0 'Transparent
- Caption = "Steps"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 53
- Tag = "1040"
- Top = 240
- Width = 1335
- End
- Begin VB.Label Label9
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "2. Documents"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 43
- Tag = "1042"
- Top = 1080
- Width = 2140
- End
- Begin VB.Label Label8
- BackColor = &H00EED3C2&
- Caption = "3. Results"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 42
- Tag = "1043"
- Top = 1440
- Width = 2140
- End
- Begin VB.Label Label7
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "1. Introduction"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 0
- Left = 120
- TabIndex = 41
- Tag = "1041"
- Top = 720
- Width = 2140
- End
- Begin VB.Line Line3
- Index = 0
- X1 = 120
- X2 = 2280
- Y1 = 480
- Y2 = 480
- End
- End
- Begin VB.Label Label3
- Caption = "File name for the results spreadsheet"
- Height = 195
- Left = 3030
- TabIndex = 71
- Tag = "1301"
- Top = 840
- Width = 4785
- End
- Begin VB.Label lblResultsLocation
- Caption = "Location"
- Height = 195
- Left = 3030
- TabIndex = 70
- Tag = "1304"
- Top = 1710
- Width = 4755
- End
- Begin VB.Label Label13
- AutoSize = -1 'True
- Caption = "If results already exisit under the same name and location:"
- Height = 195
- Index = 5
- Left = 3030
- TabIndex = 38
- Tag = "1311"
- Top = 2730
- Width = 4230
- WordWrap = -1 'True
- End
- Begin VB.Line Line2
- BorderColor = &H00808080&
- Index = 0
- X1 = 2550
- X2 = 2550
- Y1 = 0
- Y2 = 4920
- End
- Begin VB.Label lblChooseResults
- AutoSize = -1 'True
- Caption = "Choose where and how to save the analysis results"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 195
- Left = 2880
- TabIndex = 37
- Tag = "1300"
- Top = 240
- Width = 5055
- WordWrap = -1 'True
- End
- End
- Begin VB.Frame fraStep
- BorderStyle = 0 'None
- Caption = "Analyze"
- Enabled = 0 'False
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 4905
- Index = 3
- Left = 0
- TabIndex = 34
- Tag = "3000"
- Top = 0
- Width = 2.45745e5
- Begin VB.PictureBox Picture12
- Appearance = 0 'Flat
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 4905
- Left = 10020
- ScaleHeight = 4905
- ScaleWidth = 8175
- TabIndex = 69
- TabStop = 0 'False
- Top = 0
- Width = 8175
- End
- Begin VB.CommandButton btnPrepare
- Caption = "Prepare"
- Enabled = 0 'False
- Height = 375
- Left = 3340
- TabIndex = 97
- Tag = "1411"
- Top = 4410
- Visible = 0 'False
- Width = 4000
- End
- Begin VB.CommandButton btnRunAnalysis
- Caption = "Run"
- Height = 375
- Left = 3340
- TabIndex = 35
- Tag = "1404"
- Top = 3410
- Width = 4000
- End
- Begin VB.CommandButton btnViewResults
- Caption = "View"
- Enabled = 0 'False
- Height = 375
- Left = 3340
- TabIndex = 36
- Tag = "1406"
- Top = 3910
- Width = 4000
- End
- Begin VB.Frame Frame3
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- Enabled = 0 'False
- ForeColor = &H0099A8AC&
- Height = 5175
- Index = 3
- Left = 0
- TabIndex = 44
- Top = 0
- Width = 2535
- Begin VB.PictureBox Picture4
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1575
- Index = 2
- Left = 150
- ScaleHeight = 1575
- ScaleWidth = 2385
- TabIndex = 55
- TabStop = 0 'False
- Top = 3390
- Width = 2385
- Begin VB.PictureBox Picture1
- Appearance = 0 'Flat
- BackColor = &H80000005&
- BorderStyle = 0 'None
- ForeColor = &H80000008&
- Height = 1200
- Index = 2
- Left = 200
- Picture = "Wizard.frx":5E58D
- ScaleHeight = 1200
- ScaleWidth = 2475
- TabIndex = 56
- TabStop = 0 'False
- Tag = "1060"
- Top = 300
- Width = 2480
- End
- End
- Begin VB.Label lblStep4_4
- BackColor = &H00EED3C2&
- Caption = "4. Analyze"
- ForeColor = &H00BF4F59&
- Height = 255
- Left = 120
- TabIndex = 92
- Tag = "1044"
- Top = 1800
- Width = 2140
- End
- Begin VB.Label Label12
- BackStyle = 0 'Transparent
- Caption = "Steps"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 255
- Index = 5
- Left = 120
- TabIndex = 54
- Tag = "1040"
- Top = 240
- Width = 1335
- End
- Begin VB.Label Label9
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "2. Documents"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 47
- Tag = "1042"
- Top = 1080
- Width = 2140
- End
- Begin VB.Label Label8
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "3. Results"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 46
- Tag = "1043"
- Top = 1440
- Width = 2140
- End
- Begin VB.Label Label7
- BackColor = &H00EED3C2&
- BackStyle = 0 'Transparent
- Caption = "1. Introduction"
- ForeColor = &H00BF4F59&
- Height = 255
- Index = 3
- Left = 120
- TabIndex = 45
- Tag = "1041"
- Top = 720
- Width = 2140
- End
- Begin VB.Line Line3
- Index = 3
- X1 = 120
- X2 = 2280
- Y1 = 480
- Y2 = 480
- End
- End
- Begin VB.Label lblSkippedOld
- Caption = "Skipped <TOPIC> documets, because they were too old"
- Height = 195
- Left = 3180
- TabIndex = 60
- Top = 2880
- Width = 4935
- End
- Begin VB.Label lblSetupDone
- AutoSize = -1 'True
- Caption = "Run the analysis and view the results"
- BeginProperty Font
- Name = "Arial"
- Size = 8.25
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Height = 195
- Left = 2880
- TabIndex = 96
- Tag = "1400"
- Top = 240
- Width = 4905
- WordWrap = -1 'True
- End
- Begin VB.Label lblNumPPT
- Caption = "<TOPIC> Presentations"
- Height = 255
- Left = 4620
- TabIndex = 88
- Tag = "1409"
- Top = 2280
- Width = 3375
- End
- Begin VB.Label lblNumPOT
- Caption = "<TOPIC> Templates"
- Height = 255
- Left = 4620
- TabIndex = 87
- Tag = "1403"
- Top = 2550
- Width = 3375
- End
- Begin VB.Label lblNumXLS
- Caption = "<TOPIC> Spreadsheets"
- Height = 255
- Left = 4620
- TabIndex = 86
- Tag = "1408"
- Top = 1680
- Width = 3375
- End
- Begin VB.Label lblNumXLT
- Caption = "<TOPIC> Templates"
- Height = 255
- Left = 4620
- TabIndex = 85
- Tag = "1403"
- Top = 1950
- Width = 3375
- End
- Begin VB.Label Label16
- AutoSize = -1 'True
- Caption = "PowerPoint"
- Height = 195
- Left = 3360
- TabIndex = 82
- Tag = "1213"
- Top = 2280
- Width = 1095
- WordWrap = -1 'True
- End
- Begin VB.Label Label13
- Caption = "Word"
- Height = 705
- Index = 10
- Left = 0
- TabIndex = 81
- Tag = "1207"
- Top = 0
- Width = 1245
- End
- Begin VB.Label Label13
- Caption = "Excel"
- Height = 705
- Index = 9
- Left = 0
- TabIndex = 80
- Tag = "1210"
- Top = 810
- Width = 1245
- End
- Begin VB.Label Label13
- Caption = "PowerPoint"
- Height = 585
- Index = 8
- Left = 0
- TabIndex = 79
- Tag = "1213"
- Top = 1620
- Width = 1245
- End
- Begin VB.Label Label13
- Caption = "Word"
- Height = 585
- Index = 7
- Left = 0
- TabIndex = 78
- Tag = "1207"
- Top = 0
- Width = 1245
- End
- Begin VB.Label Label13
- Caption = "Excel"
- Height = 585
- Index = 6
- Left = 0
- TabIndex = 77
- Tag = "1210"
- Top = 810
- Width = 1245
- End
- Begin VB.Label Label13
- Caption = "PowerPoint"
- Height = 465
- Index = 4
- Left = 0
- TabIndex = 76
- Tag = "1213"
- Top = 1620
- Width = 1245
- End
- Begin VB.Label lblNumTemplates
- Caption = "<TOPIC> Templates"
- Height = 255
- Left = 4620
- TabIndex = 52
- Tag = "1403"
- Top = 1350
- Width = 3375
- End
- Begin VB.Label lblNumDocs
- Caption = "<TOPIC> Documents"
- Height = 255
- Left = 4620
- TabIndex = 51
- Tag = "1402"
- Top = 1080
- Width = 3375
- End
- Begin VB.Line Line6
- BorderColor = &H00808080&
- X1 = 2640
- X2 = 8040
- Y1 = 3270
- Y2 = 3270
- End
- Begin VB.Label Label15
- AutoSize = -1 'True
- Caption = "Excel"
- Height = 195
- Left = 3360
- TabIndex = 50
- Tag = "1210"
- Top = 1680
- Width = 1095
- WordWrap = -1 'True
- End
- Begin VB.Label Label14
- AutoSize = -1 'True
- Caption = "Word"
- Height = 195
- Left = 3360
- TabIndex = 49
- Tag = "1207"
- Top = 1080
- Width = 1110
- WordWrap = -1 'True
- End
- Begin VB.Label lblTotalNumDocs
- AutoSize = -1 'True
- Caption = "A total of <TOPIC> documents will be analyzed:"
- Height = 195
- Left = 3180
- TabIndex = 48
- Tag = "1401"
- Top = 660
- Width = 4800
- WordWrap = -1 'True
- End
- Begin VB.Line Line2
- BorderColor = &H00808080&
- Index = 3
- X1 = 2550
- X2 = 2550
- Y1 = 0
- Y2 = 4920
- End
- End
- Begin VB.PictureBox picNav
- Align = 2 'Align Bottom
- Appearance = 0 'Flat
- BorderStyle = 0 'None
- BeginProperty Font
- Name = "MS Sans Serif"
- Size = 8.25
- Charset = 0
- Weight = 400
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H80000008&
- Height = 570
- Left = 0
- ScaleHeight = 570
- ScaleWidth = 8175
- TabIndex = 4
- TabStop = 0 'False
- Top = 4950
- Width = 8175
- Begin VB.CommandButton cmdNav
- Caption = "Finish"
- Height = 312
- Index = 4
- Left = 5325
- MaskColor = &H00000000&
- TabIndex = 14
- Tag = "1023"
- Top = 120
- Width = 1320
- End
- Begin VB.CommandButton cmdNav
- Caption = "Next >>"
- Height = 312
- Index = 3
- Left = 3870
- MaskColor = &H00000000&
- TabIndex = 13
- Tag = "1022"
- Top = 120
- Width = 1320
- End
- Begin VB.CommandButton cmdNav
- Caption = "<< Back"
- Height = 312
- Index = 2
- Left = 2535
- MaskColor = &H00000000&
- TabIndex = 12
- Tag = "1021"
- Top = 120
- Width = 1320
- End
- Begin VB.CommandButton cmdNav
- Cancel = -1 'True
- Caption = "Cancel"
- Height = 312
- Index = 1
- Left = 6750
- MaskColor = &H00000000&
- TabIndex = 15
- Tag = "1024"
- Top = 120
- Width = 1320
- End
- End
- Begin VB.Label Label18
- Caption = "<TOPIC> Documents"
- Height = 255
- Left = 0
- TabIndex = 84
- Top = 0
- Width = 2085
- WordWrap = -1 'True
- End
- Begin VB.Label Label17
- Caption = "<TOPIC> Templates"
- Height = 255
- Left = 0
- TabIndex = 83
- Top = 390
- Width = 3615
- WordWrap = -1 'True
- End
- Begin VB.Line Line4
- BorderColor = &H00808080&
- X1 = 0
- X2 = 8160
- Y1 = 4920
- Y2 = 4920
- End
-End
-Attribute VB_Name = "frmWizard"
-Attribute VB_GlobalNameSpace = False
-Attribute VB_Creatable = False
-Attribute VB_PredeclaredId = True
-Attribute VB_Exposed = False
-' *******************************************************************************
-' *
-' * Copyright 2000, 2010 Oracle and/or its affiliates. All rights reserved. Use of this
-' * product is subject to license terms.
-' *
-' *******************************************************************************
-
-Option Explicit
-
-Const TOPIC_STR = "<TOPIC>"
-Const TOPIC2_STR = "<TOPIC2>"
-Const CR_STR = "<CR>"
-Const CDEBUG_LEVEL_DEFAULT = 1 'Will output all Debug output to analysis.log file
-Const CSUPPORTED_VERSION = 9#
-
-Const NUM_STEPS = 4
-
-Const CAPPNAME_WORD = "Word"
-Const CAPPNAME_EXCEL = "Excel"
-Const CAPPNAME_POWERPOINT = "PowerPoint"
-Const CANALYZING = "Analyzing"
-
-Const BTN_CANCEL = 1
-Const BTN_BACK = 2
-Const BTN_NEXT = 3
-Const BTN_FINISH = 4
-
-Const STEP_INTRO = 0
-Const STEP_1 = 1
-Const STEP_2 = 2
-Const STEP_FINISH = 3
-
-Const DIR_NONE = 0
-Const DIR_BACK = 1
-Const DIR_NEXT = 2
-
-Const CPRODUCTNAME_STR = "<PRODUCTNAME>"
-
-Const CSTR_ANALYSIS_LOG_DONE = "Done"
-
-Const CINPUT_DIR = "indir"
-Const COUTPUT_DIR = "outdir"
-Const CRESULTS_FILE = "resultsfile"
-Const CLOG_FILE = "logfile"
-Const CRESULTS_TEMPLATE = "resultstemplate"
-Const CRESULTS_EXIST = "resultsexist"
-Const CPROMPT_FILE = "promptfile"
-Const COVERWRITE_FILE = "overwritefile"
-Const CAPPEND_FILE = "appendfile"
-Const CNEW_RESULTS_FILE = "newresultsfile"
-Const CINCLUDE_SUBDIRS = "includesubdirs"
-Const CDEBUG_LEVEL = "debuglevel"
-Const CTYPE_WORDDOC = "typeworddoc"
-Const CTYPE_WORDDOT = "typeworddot"
-Const CTYPE_EXCELDOC = "typeexceldoc"
-Const CTYPE_EXCELDOT = "typeexceldot"
-Const CTYPE_PPDOC = "typepowerpointdoc"
-Const CTYPE_PPDOT = "typepowerpointdot"
-Const COUTPUT_TYPE = "outputtype"
-Const COUTPUT_TYPE_XLS = "xls"
-Const COUTPUT_TYPE_XML = "xml"
-Const COUTPUT_TYPE_BOTH = "both"
-Const CVERSION = "version"
-Const CDOPREPARE = "prepare"
-Const CTITLE = "title"
-Const CIGNORE_OLD_DOCS = "ignoreolddocuments"
-Const CISSUE_LIMIT = "issuesmonthlimit"
-Const CISSUE_LIMIT_DAW = 6
-Private mIssueLimit As Integer
-Const CDEFAULT_PASSWORD = "defaultpassword"
-Const CSTR_TEST_PASSWORD = "test"
-Private mDefaultPassword As String
-
-Const CLAST_CHECKPOINT As String = "LastCheckpoint"
-Const CNEXT_FILE As String = "NextFile"
-Const C_ABORT_ANALYSIS As String = "AbortAnalysis"
-
-Const CNUMBER_TOTAL_DOCS = "total_numberdocs"
-Const CNUMBER_DOCS_DOC = "numberdocs_doc"
-Const CNUMBER_TEMPLATES_DOT = "numbertemplates_dot"
-Const CNUMBER_DOCS_XLS = "numberdocs_xls"
-Const CNUMBER_TEMPLATES_XLT = "numbertemplates_xlt"
-Const CNUMBER_DOCS_PPT = "numberdocs_ppt"
-Const CNUMBER_TEMPLATES_POT = "numbertemplates_pot"
-Const CSTART_TIME = "start"
-Const CEND_TIME = "end"
-Const CELAPSED_TIME = "time_for_analysis"
-Const CWINVERSION = "win_version"
-Const CUSER_LOCALE_INFO = "user_locale"
-Const CSYS_LOCALE_INFO = "system_locale"
-Const CWORD_VERSION = "word_ver"
-Const CEXCEL_VERSION = "excel_ver"
-Const CPOWERPOINT_VERSION = "powerpoint_ver"
-Const CNOT_INSTALLED = "not installed"
-
-Const CRESULTS_FILE_EXTENSION = ".xls"
-Const CCONFIG_BACKUP_EXT = "_bak"
-Const CDEFAULT_README_NAME = "UserGuide"
-
-Const C_DOCS_LESS_3_MONTH = "DocumentsYoungerThan3Month"
-Const C_DOCS_LESS_6_MONTH = "DocumentsYoungerThan6Month"
-Const C_DOCS_LESS_12_MONTH = "DocumentsYoungerThan12Month"
-Const C_DOCS_MORE_12_MONTH = "DocumentsOlderThan12Month"
-
-'module level vars
-Dim mnCurStep As Integer
-Dim mbTrue As Boolean
-Dim mbFalse As Boolean
-Dim mLblSteps As String
-Dim mChbSubdirs As String
-
-Dim mWordDocCount As Long
-Dim mExcelDocCount As Long
-Dim mPPDocCount As Long
-
-Dim mWordTemplateCount As Long
-Dim mExcelTemplateCount As Long
-Dim mPPTemplateCount As Long
-Dim mTotalDocCount As Long
-Dim mIgnoredDocCount As Long
-
-Public VBInst As VBIDE.VBE
-Dim mbFinishOK As Boolean
-Dim mbAllowExit As Boolean
-Private mStrTrue As String
-Private mLogFilePath As String
-Private mDebugLevel As String
-Private mIniFilePath As String
-Private mbDocCountCurrent As Boolean
-Private mbDoPrepare As Boolean
-
-Dim mDocFiles As CollectedFiles
-
-Private Declare Sub InitCommonControls Lib "comctl32" ()
-Private Declare Function GetTickCount Lib "kernel32" () As Long
-Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
-
-Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
-
-Private Declare Function FormatMessage Lib "kernel32" Alias _
- "FormatMessageA" (ByVal dwFlags As Long, lpSource As Long, _
- ByVal dwMessageId As Long, ByVal dwLanguageId As Long, _
- ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Any) As Long
-
-
-Private Const HKEY_CURRENT_USER As Long = &H80000001
-Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
-
-Const WORD_APP = "word"
-Const EXCEL_APP = "excel"
-Const PP_APP = "pp"
-Const REG_KEY_APP_PATH = "Software\Microsoft\Windows\CurrentVersion\App Paths\"
-
-
-Function GetAppPath(myApp As String) As String
- Dim myPath As String
-
- If (myApp = WORD_APP) Then
- myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "winword.exe", "")
- ElseIf (myApp = EXCEL_APP) Then
- myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "excel.exe", "")
- ElseIf (myApp = PP_APP) Then
- myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "powerpnt.exe", "")
- Else
- MsgBox "Unknown application: " & myApp, vbCritical
- Exit Function
- End If
-
- If (myPath = "") Then
- If (myApp = WORD_APP) Then
- myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "winword.exe", "")
- ElseIf (myApp = EXCEL_APP) Then
- myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "excel.exe", "")
- ElseIf (myApp = PP_APP) Then
- myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "powerpnt.exe", "")
- End If
- End If
-
- GetAppPath = myPath
-End Function
-
-Function GetDriverDoc(myApp As String) As String
- Dim myPath As String
- Dim errStr As String
- Dim fso As New FileSystemObject
-
- If (myApp = WORD_APP) Then
- myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE)
- ElseIf (myApp = EXCEL_APP) Then
- myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE)
- ElseIf (myApp = PP_APP) Then
- myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE)
- Else
- MsgBox "Unknown application: " & myApp, vbCritical
- GoTo FinalExit
- End If
-
- If Not fso.FileExists(myPath) Then
- errStr = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _
- TOPIC_STR, myPath, CR_STR, Chr(13))
- WriteDebug errStr
- MsgBox errStr, vbCritical
- GoTo FinalExit
- End If
-
- GetDriverDoc = myPath
-
-FinalExit:
- Set fso = Nothing
-End Function
-
-
-
-
-Private Function AutomationMessageText(lCode As Long) As String
- Dim sRtrnCode As String
- Dim lRet As Long
-
- sRtrnCode = Space$(256)
- lRet = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&, lCode, 0&, _
- sRtrnCode, 256&, 0&)
- If lRet > 0 Then
- AutomationMessageText = Left(sRtrnCode, lRet)
- Else
- AutomationMessageText = "Error not found."
- End If
-
-End Function
-
-Private Sub btnBrowseDirInput_Click()
- Dim folder As String
- Dim StartDir As String
-
- If Len(txtInputDir.Text) > 0 Then
- StartDir = txtInputDir.Text
- End If
-
- folder = BrowseForFolder(Me, GetResString(BROWSE_FOR_DOC_DIR_ID), StartDir)
- If Len(folder) = 0 Then
- Exit Sub 'User Selected Cancel
- End If
- txtInputDir.Text = folder
- txtInputDir.ToolTipText = folder
-
- If Len(txtOutputDir.Text) = 0 Then
- txtOutputDir.Text = folder
- txtOutputDir.ToolTipText = folder
- End If
-End Sub
-
-Private Sub btnBrowseDirOut_Click()
- Dim folder As String
- Dim StartDir As String
-
- If Len(txtOutputDir.Text) > 0 Then
- StartDir = txtOutputDir.Text
- End If
-
- folder = BrowseForFolder(Me, GetResString(BROWSE_FOR_RES_DIR_ID), StartDir)
- If Len(folder) = 0 Then
- Exit Sub 'User Selected Cancel
- End If
- txtOutputDir.Text = folder
- txtOutputDir.ToolTipText = folder
-End Sub
-
-Private Sub btnPrepare_Click()
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "btnPrepare_Click"
-
- mbDoPrepare = True
- mbAllowExit = True
-
- btnViewResults.Enabled = False
- btnRunAnalysis.Enabled = False
- btnPrepare.Enabled = False
-
- cmdNav(BTN_CANCEL).Enabled = False
- cmdNav(BTN_BACK).Enabled = False
- cmdNav(BTN_NEXT).Enabled = False
- cmdNav(BTN_FINISH).Enabled = False
- btnPrepare.Caption = GetResString(RUNBTN_RUNNING_ID)
-
- Dim str As String
-
- If RunAnalysis(True) Then
- cmdNav(BTN_FINISH).Enabled = True
- btnRunAnalysis.Enabled = True
- btnViewResults.Enabled = True
- btnPrepare.Enabled = True
- btnViewResults.SetFocus
- str = ReplaceTopic2Tokens(GetResString(RID_STR_ENG_OTHER_PREPARE_COMPLETED_PREP_ID), _
- TOPIC_STR, getOutputDir, CR_STR, Chr(13))
- MsgBox str, vbInformation
- Else
- cmdNav(BTN_FINISH).Enabled = False
- btnRunAnalysis.Enabled = True
- btnViewResults.Enabled = False
- btnPrepare.Enabled = False
- End If
-
-FinalExit:
- mbDoPrepare = False
- cmdNav(BTN_CANCEL).Enabled = True
- cmdNav(BTN_BACK).Enabled = True
- cmdNav(BTN_NEXT).Enabled = False
- btnPrepare.Caption = GetResString(PREPAREBTN_START_ID)
- Exit Sub
-
-HandleErrors:
- cmdNav(BTN_FINISH).Enabled = False
- btnRunAnalysis.Enabled = True
- btnViewResults.Enabled = False
- btnPrepare.Enabled = False
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-
-Private Sub cmdNav_Click(Index As Integer)
- On Error GoTo HandleError
- Dim currentFunctionName As String
- currentFunctionName = "cmdNav_Click"
- Dim nAltStep As Integer
- Dim rc As Long
- Dim fso As Scripting.FileSystemObject
-
- Select Case Index
- Case BTN_CANCEL
- 'Copy backup configuration file over existing
- If fso Is Nothing Then
- Set fso = New Scripting.FileSystemObject
- End If
- If fso.FileExists(mIniFilePath & CCONFIG_BACKUP_EXT) Then
- DeleteFile mIniFilePath
- AttemptToCopyFile mIniFilePath & CCONFIG_BACKUP_EXT, mIniFilePath
- End If
- Set mDocFiles = Nothing
-
- Unload Me
-
- Case BTN_BACK
- nAltStep = mnCurStep - 1
- SetStep nAltStep, DIR_BACK
-
- Case BTN_NEXT
- nAltStep = mnCurStep + 1
- SetStep nAltStep, DIR_NEXT
-
- Case BTN_FINISH
- If (Not mbAllowExit) Then
- Dim str As String
- Dim response As Integer
-
- str = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYSE_NOT_RUN), CR_STR, Chr(13))
- response = MsgBox(str, vbOKCancel + vbInformation)
- If response = vbOK Then ' User chose Ok.
- mbAllowExit = True
- End If
- End If
-
- If (mbAllowExit) Then
- DeleteFile mIniFilePath & CCONFIG_BACKUP_EXT
- Set mDocFiles = Nothing
- Unload Me
- End If
- End Select
-
-FinalExit:
- Set fso = Nothing
- Exit Sub
-
-HandleError:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
-
- Resume FinalExit
-End Sub
-
-Private Sub btnRunAnalysis_Click()
- On Error GoTo HandleErrors
- Dim bViewResults As Boolean
- Dim str As String
- Dim response As Integer
-
- btnViewResults.Enabled = False
- btnRunAnalysis.Enabled = False
- btnPrepare.Enabled = False
- bViewResults = False
- mbAllowExit = True
-
- cmdNav(BTN_CANCEL).Enabled = False
- cmdNav(BTN_BACK).Enabled = False
- cmdNav(BTN_NEXT).Enabled = False
- cmdNav(BTN_FINISH).Enabled = False
- btnRunAnalysis.Caption = GetResString(RUNBTN_RUNNING_ID)
-
- If RunAnalysis(False) Then
- cmdNav(BTN_FINISH).Enabled = True
- btnRunAnalysis.Enabled = True
- btnViewResults.Enabled = True
- btnPrepare.Enabled = True
- btnViewResults.SetFocus
- btnRunAnalysis.Caption = GetResString(RUNBTN_START_ID)
-
- str = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYZE_COMPLETED_ID), CR_STR, Chr(13))
- response = MsgBox(str, vbOKCancel + vbInformation)
- If response = vbOK Then ' User chose Ok.
- bViewResults = True
- End If
- Else
- btnRunAnalysis.Enabled = True
- btnViewResults.Enabled = False
- btnPrepare.Enabled = False
- End If
-
-FinalExit:
- cmdNav(BTN_CANCEL).Enabled = True
- cmdNav(BTN_BACK).Enabled = True
- cmdNav(BTN_NEXT).Enabled = False
- btnRunAnalysis.Caption = GetResString(RUNBTN_START_ID)
-
- If bViewResults Then
- btnViewResults_Click
- End If
-
- Exit Sub
-
-HandleErrors:
- cmdNav(BTN_FINISH).Enabled = False
- btnRunAnalysis.Enabled = True
- btnViewResults.Enabled = False
- btnPrepare.Enabled = False
- WriteDebug "Document Analysis: View Analysis Results" & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Private Sub btnViewResults_Click()
- On Error GoTo HandleErrors
- Dim resultsFile As String
- Dim fso As New FileSystemObject
- Dim str As String
-
- mbAllowExit = True
-
- resultsFile = getOutputDir & "\" & txtResultsName.Text
-
- If GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_XML Or _
- GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_BOTH Then
-
- Dim base As String
- Dim path As String
- base = fso.GetParentFolderName(resultsFile) & "\" & fso.GetBaseName(txtResultsName.Text)
- If CheckWordDocsToAnalyze Then
- path = base & "_" & CAPPNAME_WORD & "." & COUTPUT_TYPE_XML
- End If
- If CheckExcelDocsToAnalyze Then
- If path <> "" Then path = path & vbLf
- path = path & base & "_" & CAPPNAME_EXCEL & "." & COUTPUT_TYPE_XML
- End If
- If CheckPPDocsToAnalyze Then
- If path <> "" Then path = path & vbLf
- path = path & base & "_" & CAPPNAME_POWERPOINT & "." & COUTPUT_TYPE_XML
- End If
-
- str = ReplaceTopic2Tokens(GetResString(XML_RESULTS_ID), _
- TOPIC_STR, path, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbInformation
- If GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_XML Then
- Resume FinalExit
- End If
- End If
-
- If Not fso.FileExists(resultsFile) Then
- str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_RESULTS_DOC), _
- TOPIC_STR, resultsFile, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- Resume FinalExit
- End If
-
- Dim xl As Excel.application
- Set xl = New Excel.application
- xl.Visible = True
- xl.Workbooks.Open resultsFile
-
-FinalExit:
- Set xl = Nothing
- Set fso = Nothing
-
- Exit Sub
-HandleErrors:
- WriteDebug "Document Analysis: View Analysis Results" & Err.Number & " " & Err.Description & " " & Err.Source
-End Sub
-
-Private Sub Form_Activate()
- Dim currentFunctionName As String
- Dim missingFile As String
- currentFunctionName = "Form_Activate"
- On Error GoTo HandleErrors
-
- If Not CheckNeededFiles(missingFile) Then
- Dim str As String
- str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _
- TOPIC_STR, missingFile, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
-
- End 'Exit application - some needed files are missing
- End If
-
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- GoTo FinalExit
-End Sub
-
-Private Sub Form_Initialize()
- Dim currentFunctionName As String
- currentFunctionName = "Form_Initialize"
- On Error GoTo ErrorHandler
- Call InitCommonControls 'Use Windows XP Visual Style
-
-FinalExit:
- Exit Sub
-
-ErrorHandler:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- GoTo FinalExit
-End Sub
-
-Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
- If KeyCode = vbKeyF1 Then
- 'cmdNav_Click BTN_HELP
- End If
-End Sub
-
-Private Sub Form_Load()
- Const COS_CHECK = "oscheck"
-
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "Form_Load"
-
- Dim fso As New FileSystemObject
- Dim i As Integer
- 'init all vars
- mbFinishOK = False
- mbTrue = True
- mbFalse = False
-
- mLogFilePath = GetLogFilePath
- mIniFilePath = GetIniFilePath
- mbDocCountCurrent = False
- mbDoPrepare = False
- mbAllowExit = False
-
- 'Check OS before running
- Dim bOSCheck As Boolean
- bOSCheck = IIf(GetIniSetting(COS_CHECK) = "False", False, True)
-
- If bOSCheck Then
- If Not IsWin98Plus Then
- Dim str As String
- Dim winVer As RGB_WINVER
- str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_OSVERSION), _
- TOPIC_STR, GetWinVersion(winVer), CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
-
- End 'Exit application - unsupported OS
- End If
- Else
- Err.Clear
- WriteDebug "IsWin2000Plus OS Check bypassed by analysis.ini oscheck=False setting"
- End If
-
-
- For i = 0 To NUM_STEPS - 1
- fraStep(i).Left = -10000
- Next
-
- 'Load All string info for Form
- LoadResStrings Me
-
- frmWizard.Caption = ReplaceTopicTokens(GetResString(TITLE_ID), CPRODUCTNAME_STR, _
- GetResString(PRODUCTNAME_ID))
- lblIntroduction1.Caption = ReplaceTopicTokens(GetResString(INTRO1_ID), CPRODUCTNAME_STR, _
- GetResString(PRODUCTNAME_ID))
- mLblSteps = GetResString(LBL_STEPS_ID)
- mChbSubdirs = GetResString(CHK_SUBDIRS_ID)
-
- ' Setup Doc Preparation specific strings
- If gBoolPreparation Then
- ' Steps
- lblStep1_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID)
- lblStep2_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID)
- lblStep3_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID)
- lblStep4_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID)
-
- ' Preparation - Step 1. Introduction
- lblIntroduction1.Caption = ReplaceTopicTokens(GetResString(RID_STR_ENG_INTRODUCTION_INTRO1_PREP_ID), CPRODUCTNAME_STR, _
- GetResString(PRODUCTNAME_ID))
- lblIntroduction2.Caption = GetResString(RID_STR_ENG_INTRODUCTION_INTRO2_PREP_ID)
- lblIntroduction3.Caption = GetResString(RID_STR_ENG_INTRODUCTION_INTRO3_PREP_ID)
-
- ' Preparation - Step 2. Documents
- lblChooseDocs.Caption = GetResString(RID_STR_ENG_DOCUMENTS_CHOOSE_DOCUMENTS_PREP_ID)
- lblDocTypes.Caption = GetResString(RID_STR_ENG_DOCUMENTS_CHOOSE_DOC_TYPES_PREP_ID)
- 'mChbSubdirs = GetResString(RID_STR_ENG_DOCUMENTS_INCLUDE_SUBDIRECTORIES_PREP_ID)
- chkIgnoreOld.Caption = GetResString(RID_STR_IGNORE_OLDER_CB_ID)
-
- cbIgnoreOld.Clear
- cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_3_MONTHS_ID))
- cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_6_MONTHS_ID))
- cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_12_MONTHS_ID))
- cbIgnoreOld.ListIndex = 0
-
- ' Preparation - Step 3. Results
- lblChooseResults.Caption = GetResString(RID_STR_ENG_RESULTS_CHOOSE_OPTIONS_PREP_ID)
- txtResultsName.Text = GetResString(RID_STR_ENG_RESULTS_ANALYSIS_XLS_PREP_ID)
-
- 'Show Append option
- rdbResultsAppend.Visible = True
-
- ' Preparation - Step 4. Analysis
- lblSetupDone.Caption = GetResString(RID_STR_ENG_ANALYZE_SETUP_COMPLETE_PREP_ID)
- btnPrepare.Visible = True
- Else
- ' The next line is a work around for a wrong translated string and should be removed
- ' when RID_STR_ENG_RESULTS_CHOOSE_OPTIONS has been corrected
- lblChooseResults.Caption = GetResString(RID_STR_ENG_RESULTS_CHOOSE_OPTIONS_PREP_ID)
- mDefaultPassword = IIf(GetIniSetting(CDEFAULT_PASSWORD) = "", _
- CSTR_TEST_PASSWORD, GetIniSetting(CDEFAULT_PASSWORD))
- End If
-
- SetStep 0, DIR_NEXT
- Dim tmpStr As String
-
- 'Setup Params
- tmpStr = GetIniSetting(CINPUT_DIR)
- If tmpStr <> "" Then
- txtInputDir.Text = tmpStr
- txtInputDir.ToolTipText = tmpStr
- End If
- tmpStr = GetIniSetting(COUTPUT_DIR)
- If tmpStr <> "" Then
- If Right(tmpStr, 1) = ":" And Len(tmpStr) = 2 Then
- tmpStr = tmpStr & "\"
- End If
- txtOutputDir.Text = tmpStr
- txtOutputDir.ToolTipText = tmpStr
- End If
- tmpStr = GetIniSetting(CRESULTS_FILE)
- If tmpStr <> "" Then txtResultsName.Text = tmpStr
-
- rdbResultsPrompt.value = False
- rdbResultsOverwrite.value = False
- rdbResultsAppend.value = False
- Dim resultsSetting As String
- resultsSetting = GetIniSetting(CRESULTS_EXIST)
- If resultsSetting = CPROMPT_FILE Then
- rdbResultsPrompt.value = True
- ElseIf resultsSetting = CAPPEND_FILE Then
- rdbResultsAppend.value = True
- Else
- rdbResultsOverwrite.value = True
- End If
-
- chkWordDoc.value = IIf(GetIniSetting(CTYPE_WORDDOC) = CStr(True), vbChecked, 0)
- chkWordTemplate.value = IIf(GetIniSetting(CTYPE_WORDDOT) = CStr(True), vbChecked, 0)
- chkExcelDoc.value = IIf(GetIniSetting(CTYPE_EXCELDOC) = CStr(True), vbChecked, 0)
- chkExcelTemplate.value = IIf(GetIniSetting(CTYPE_EXCELDOT) = CStr(True), vbChecked, 0)
- chkPPDoc.value = IIf(GetIniSetting(CTYPE_PPDOC) = CStr(True), vbChecked, 0)
- chkPPTemplate.value = IIf(GetIniSetting(CTYPE_PPDOT) = CStr(True), vbChecked, 0)
- chkIncludeSubdirs.value = IIf(GetIniSetting(CINCLUDE_SUBDIRS) = CStr(True), vbChecked, 0)
- mDebugLevel = IIf(GetIniSetting(CDEBUG_LEVEL) = "", CDEBUG_LEVEL_DEFAULT, GetIniSetting(CDEBUG_LEVEL))
- chkIgnoreOld.value = IIf(GetIniSetting(CIGNORE_OLD_DOCS) = CStr(True), vbChecked, 0)
-
- mIssueLimit = IIf(GetIniSetting(CISSUE_LIMIT) = "", CISSUE_LIMIT_DAW, GetIniSetting(CISSUE_LIMIT))
- If (mIssueLimit <= 3) Then
- cbIgnoreOld.ListIndex = 0
- ElseIf (mIssueLimit <= 6) Then
- cbIgnoreOld.ListIndex = 1
- Else
- cbIgnoreOld.ListIndex = 2
- End If
-
- 'Always ensure at least one doc type is selected on startup
- If (chkWordDoc.value <> vbChecked) And _
- (chkWordTemplate.value <> vbChecked) And _
- (chkExcelDoc.value <> vbChecked) And _
- (chkExcelTemplate.value <> vbChecked) And _
- (chkPPDoc.value <> vbChecked) And _
- (chkPPTemplate.value <> vbChecked) Then
-
- chkWordDoc.value = vbChecked
- End If
-
-FinalExit:
- Set fso = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Private Sub SetStep(nStep As Integer, nDirection As Integer)
- On Error GoTo HandleError
- Const driveTypeIsCDROM = 4
- Dim val As String
- Dim fso As Scripting.FileSystemObject
- Set fso = New Scripting.FileSystemObject
- Dim drive
-
-
- mbDocCountCurrent = False
-
- Select Case nStep
- Case STEP_INTRO
- 'MsgBox "Enter Intro"
- Case STEP_1
- 'Leave Introduction
- 'Workaround - resource bug for SubDir checkbox, have to set it explicitly
- chkIncludeSubdirs.Caption = mChbSubdirs
- Case STEP_2
- 'Leave Documents
-
- Set drive = fso.GetDrive(fso.GetDriveName(txtInputDir.Text))
- If drive.DriveType = driveTypeIsCDROM Then
- If Not drive.IsReady Then
- MsgBox GetResString(ERR_CDROM_NOT_READY), vbCritical
- Exit Sub
- End If
- End If
-
- If txtInputDir.Text = "" Or Not fso.FolderExists(txtInputDir.Text) Then ' fso.FolderExists() has replaced dir()
- MsgBox ReplaceTopicTokens(GetResString(ERR_NO_DOC_DIR), _
- CR_STR, Chr(13)), vbCritical
- Exit Sub
- End If
-
- If Not CheckUserChosenDocsToAnalyze Then
- MsgBox GetResString(ERR_NO_DOC_TYPES), vbCritical
- Exit Sub
- End If
- 'Expand directory name only without path to full path
- txtInputDir.Text = fso.GetAbsolutePathName(txtInputDir.Text)
-
- If txtOutputDir.Text = "" Then
- txtOutputDir.Text = txtInputDir.Text
- End If
-
- mbFinishOK = False
-
- 'Workaround - label resource bug for Steps, have to set it explicitly
- Label12(0).Caption = mLblSteps
- Label12(5).Caption = mLblSteps
- Case STEP_FINISH
- 'Leave Results
- If Not CheckResultsDir(getOutputDir) Then
- Exit Sub
- End If
-
- 'Expand directory name only without path to full path
- txtOutputDir.Text = fso.GetAbsolutePathName(txtOutputDir)
-
- 'Check Results file is there and has a valid extension
- If fso.GetBaseName(txtResultsName.Text) = "" Then
- txtResultsName.Text = GetResString(SETUP_ANALYSIS_XLS_ID)
- End If
- txtResultsName.Text = fso.GetBaseName(txtResultsName.Text) & CRESULTS_FILE_EXTENSION
-
- Screen.MousePointer = vbHourglass
- DeleteFile mLogFilePath
- Set mDocFiles = Nothing
- If Not CheckNumberDocsToAnalyze Then
- Screen.MousePointer = vbDefault
- Exit Sub
- End If
-
- Screen.MousePointer = vbDefault
-
- btnRunAnalysis.Enabled = True
-
- If GetNumberOfDocsToAnalyze = 0 Then
- btnRunAnalysis.Enabled = False
- End If
-
- 'Backup configuration
- If Not AttemptToCopyFile(mIniFilePath, mIniFilePath & CCONFIG_BACKUP_EXT) Then
- Exit Sub
- End If
-
- 'Save current Wizard Settings
- WriteWizardSettingsToLog mIniFilePath
-
- 'If results file already exists, enable View and Prepare
- If fso.FileExists(getOutputDir & "\" & txtResultsName.Text) Then
- btnViewResults.Enabled = True
- btnPrepare.Enabled = True
- End If
-
- mbFinishOK = True
- End Select
-
- 'move to new step
- fraStep(mnCurStep).Enabled = False
- fraStep(nStep).Left = 0
- If nStep <> mnCurStep Then
- fraStep(mnCurStep).Left = -10000
- fraStep(mnCurStep).Enabled = False
- End If
- fraStep(nStep).Enabled = True
-
- SetNavBtns nStep
- Exit Sub
-
-FinalExit:
- Set fso = Nothing
- Set drive = Nothing
- Exit Sub
-
-HandleError:
- Screen.MousePointer = vbDefault
- WriteDebug "Document Analysis: SetStep() " & Err.Number & " " & Err.Description & " " & Err.Source
-
- Resume FinalExit
-End Sub
-
-Function CheckResultsDir(resultsDir As String) As Boolean
- On Error GoTo HandleError
- Dim fso As Scripting.FileSystemObject
- Set fso = New Scripting.FileSystemObject
- Const driveTypeIsCDROM = 4
- Const readOnlyFolderRemainder = 1
- Dim drive
- CheckResultsDir = False
-
- If resultsDir = "" Then
- MsgBox ReplaceTopicTokens(GetResString(ERR_NO_RESULTS_DIRECTORY), _
- CR_STR, Chr(13)), vbCritical
- CheckResultsDir = False
- Exit Function
- End If
-
- Set drive = fso.GetDrive(fso.GetDriveName(resultsDir))
- If drive.DriveType = driveTypeIsCDROM Then 'If CD-ROM Drive Then
- Dim Msg1 As String
- Msg1 = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _
- TOPIC_STR, txtResultsName.Text, CR_STR, Chr(13))
- MsgBox Msg1, vbCritical
- CheckResultsDir = False
- Exit Function
- End If
-
-
- If Not fso.FolderExists(resultsDir) Then
- Dim Msg, Style, response
-
- Msg = ReplaceTopicTokens(GetResString(ERR_NO_RES_DIR), CR_STR, Chr(13))
- Style = vbYesNo + vbQuestion + vbDefaultButton1 ' Define buttons.
-
- response = MsgBox(Msg, Style)
- If response = vbYes Then ' User chose Yes.
- If Not CreateDir(getOutputDir) Then
- CheckResultsDir = False
- Exit Function
- End If
- Else ' User chose No.
- CheckResultsDir = False
- Exit Function
- End If
- End If
-
- Dim testFile As String
- testFile = resultsDir & "\" & fso.GetTempName
- Do While fso.FileExists(testFile)
- testFile = resultsDir & "\" & fso.GetTempName
- Loop
-
- On Error GoTo HandleReadOnly
- Dim aText As TextStream
- Set aText = fso.CreateTextFile(testFile, False, False)
- aText.WriteLine ("Dies ist ein Test.")
- aText.Close
- fso.DeleteFile (testFile)
-
-' GetAttr doesn't work reliable ( returns read only for 'my Documents' and rw for read only network folder
-' If ((GetAttr(resultsDir) Mod 2) = readOnlyFolderRemainder) Then 'If the attribute is odd then the folder is read-only
-' MsgBox GetResString(ERR_NO_WRITE_TO_READ_ONLY_FOLDER), vbCritical
-' CheckResultsDir = False
-' Exit Function
-' End If
-
- CheckResultsDir = True
-
- Exit Function
-HandleError:
- WriteDebug "Document Analysis: CheckResultsDir() " & Err.Number & " " & Err.Description & " " & Err.Source
- CheckResultsDir = False
- Exit Function
-HandleReadOnly:
- Dim str As String
- str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _
- TOPIC_STR, txtResultsName.Text, CR_STR, Chr(13))
- MsgBox str, vbCritical
- CheckResultsDir = False
- Exit Function
-End Function
-
-Function CheckUserChosenDocsToAnalyze() As Boolean
- CheckUserChosenDocsToAnalyze = Not ((chkWordDoc.value <> vbChecked) And (chkWordTemplate.value <> vbChecked) And _
- (chkExcelDoc.value <> vbChecked) And (chkExcelTemplate.value <> vbChecked) And _
- (chkPPDoc.value <> vbChecked) And (chkPPTemplate.value <> vbChecked))
-End Function
-
-Function AttemptToCopyFile(Source As String, dest As String) As Boolean
- On Error GoTo HandleErrors
- Dim fso As Scripting.FileSystemObject
- Set fso = New Scripting.FileSystemObject
-
- If fso.FileExists(Source) Then
- fso.CopyFile Source, dest
- End If
-
- 'True if no source or copy succeded
- AttemptToCopyFile = True
-
-FinalExit:
- Set fso = Nothing
- Exit Function
-
-HandleErrors:
- AttemptToCopyFile = False
- Dim str As String
- str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _
- TOPIC_STR, mIniFilePath & CCONFIG_BACKUP_EXT, CR_STR, Chr(13))
- Resume FinalExit
-
-End Function
-
-Function CreateDir(dir As String) As Boolean
- On Error GoTo HandleErrors
- Dim fso As Scripting.FileSystemObject
- Set fso = New Scripting.FileSystemObject
-
- fso.CreateFolder (dir)
-
- CreateDir = True
-
-FinalExit:
- Set fso = Nothing
- Exit Function
-
-HandleErrors:
- Dim str As String
- str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_DIR), _
- TOPIC_STR, dir, CR_STR, Chr(13))
- Select Case Err.Number
- Case 76
- WriteDebug str
- MsgBox str, vbCritical
- CreateDir = False
- Case 58
- 'Don't care if it exists already
- CreateDir = True
- Case Else
- WriteDebug str
- MsgBox str, vbCritical
- CreateDir = False
- End Select
- Resume FinalExit
-
-End Function
-Private Sub SetNavBtns(nStep As Integer)
- mnCurStep = nStep
-
- If mnCurStep = 0 Then
- cmdNav(BTN_BACK).Enabled = False
- cmdNav(BTN_NEXT).Enabled = True
- ElseIf mnCurStep = NUM_STEPS - 1 Then
- cmdNav(BTN_NEXT).Enabled = False
- cmdNav(BTN_BACK).Enabled = True
- Else
- cmdNav(BTN_BACK).Enabled = True
- cmdNav(BTN_NEXT).Enabled = True
- End If
-
- If mbFinishOK Then
- cmdNav(BTN_FINISH).Enabled = True
- Else
- cmdNav(BTN_FINISH).Enabled = False
- End If
-End Sub
-Function CheckForSupportedApp(app As String, lowerVerLimit As Long) As Boolean
- Dim appRegStr As String
- Dim appVer As Long
- appRegStr = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "")
- appVer = val(Right(appRegStr, Len(appRegStr) - Len(app & ".Application.")))
- If appVer >= lowerVerLimit Then
- CheckForSupportedApp = True
- Else
- CheckForSupportedApp = False
- End If
-End Function
-Function GetAppVersion(app As String) As Long
- Dim appRegStr As String
- Dim appVer As Long
- appRegStr = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "")
- GetAppVersion = val(Right(appRegStr, Len(appRegStr) - Len(app & ".Application.")))
-End Function
-Function GetInstalledApp(app As String) As String
- GetInstalledApp = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "")
-End Function
-
-Sub WriteInfoToApplicationLog(wordAppStr As String, excelAppStr As String, ppAppStr As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteInfoToApplicationLog"
-
- Dim userLCID As Long
- userLCID = GetUserDefaultLCID()
- Dim sysLCID As Long
- sysLCID = GetSystemDefaultLCID()
-
- WriteToLog CWORD_VERSION, IIf(wordAppStr <> "", wordAppStr, CNOT_INSTALLED)
- WriteToLog CEXCEL_VERSION, IIf(excelAppStr <> "", excelAppStr, CNOT_INSTALLED)
- WriteToLog CPOWERPOINT_VERSION, IIf(ppAppStr <> "", ppAppStr, CNOT_INSTALLED)
-
- WriteToLog CUSER_LOCALE_INFO, _
- "langid: " & GetUserLocaleInfo(userLCID, LOCALE_ILANGUAGE) & ": " & _
- GetUserLocaleInfo(userLCID, LOCALE_SENGLANGUAGE) & _
- "-" & GetUserLocaleInfo(userLCID, LOCALE_SENGCOUNTRY) & _
- " abrv: " & GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME) & _
- "-" & GetUserLocaleInfo(userLCID, LOCALE_SISO3166CTRYNAME) & _
- " sdate: " & GetUserLocaleInfo(userLCID, LOCALE_SSHORTDATE)
-
- WriteToLog CSYS_LOCALE_INFO, _
- "langid: " & GetUserLocaleInfo(sysLCID, LOCALE_ILANGUAGE) & ": " & _
- GetUserLocaleInfo(sysLCID, LOCALE_SENGLANGUAGE) & _
- "-" & GetUserLocaleInfo(sysLCID, LOCALE_SENGCOUNTRY) & _
- " abrv: " & GetUserLocaleInfo(sysLCID, LOCALE_SISO639LANGNAME) & _
- "-" & GetUserLocaleInfo(sysLCID, LOCALE_SISO3166CTRYNAME) & _
- " sdate: " & GetUserLocaleInfo(userLCID, LOCALE_SSHORTDATE)
-
- Dim myWinVer As RGB_WINVER
- GetWinVersion myWinVer
- WriteToLog CWINVERSION, myWinVer.VersionName & " " & myWinVer.VersionNo & _
- " " & myWinVer.ServicePack & _
- " build " & myWinVer.BuildNo
- WriteToLog CNUMBER_TOTAL_DOCS, CStr(mTotalDocCount)
- WriteToLog CNUMBER_DOCS_DOC, CStr(mWordDocCount)
- WriteToLog CNUMBER_TEMPLATES_DOT, CStr(mWordTemplateCount)
- WriteToLog CNUMBER_DOCS_XLS, CStr(mExcelDocCount)
- WriteToLog CNUMBER_TEMPLATES_XLT, CStr(mExcelTemplateCount)
- WriteToLog CNUMBER_DOCS_PPT, CStr(mPPDocCount)
- WriteToLog CNUMBER_TEMPLATES_POT, CStr(mPPTemplateCount)
-FinalExit:
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Function CheckTemplatePath(sMigrationResultsTemplatePath As String, fso As FileSystemObject) As Boolean
- If Not fso.FileExists(sMigrationResultsTemplatePath) Then
- Dim str As String
- str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_RESULTS_TEMPLATE), _
- TOPIC_STR, sMigrationResultsTemplatePath, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- CheckTemplatePath = False
- Else
- CheckTemplatePath = True
- End If
-End Function
-
-Function RunAnalysis(bDoPrepare) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "RunAnalysis"
- Dim tstart As Single 'timer var for this routine only
- Dim tend As Single 'timer var for this routine only
- Dim fso As New FileSystemObject
- Dim wordAppStr As String
- Dim excelAppStr As String
- Dim ppAppStr As String
- Dim sMigrationResultsTemplatePath As String
- Dim startDate As Variant
- Dim bSuccess
-
- bSuccess = True
- startDate = Now
- tstart = GetTickCount()
-
- app.OleRequestPendingMsgText = GetResString(RUNBTN_RUNNING_ID)
- app.OleRequestPendingMsgTitle = frmWizard.Caption
-
- wordAppStr = GetInstalledApp(CAPPNAME_WORD)
- excelAppStr = GetInstalledApp(CAPPNAME_EXCEL)
- ppAppStr = GetInstalledApp(CAPPNAME_POWERPOINT)
- 'Write locale, version info and settings to the Application log
- WriteInfoToApplicationLog wordAppStr, excelAppStr, ppAppStr
-
- 'Check for template
- sMigrationResultsTemplatePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESULTS_TEMPLATE_FILE)
- If Not CheckTemplatePath(sMigrationResultsTemplatePath, fso) Then
- bSuccess = False
- GoTo FinalExit
- End If
-
- 'Check for installed Apps
- If Not CheckInstalledApps(wordAppStr, excelAppStr, ppAppStr) Then
- bSuccess = False
- GoTo FinalExit
- End If
-
- If bDoPrepare Then
- 'Show MsgBox ( to give apps some time to quit )
- Dim strMsgBox As String
- Dim response As Integer
-
- strMsgBox = ReplaceTopic2Tokens(GetResString(RID_STR_ENG_OTHER_PREPARE_PROMPT_PREP_ID), _
- TOPIC_STR, getOutputDir & "\" & txtResultsName.Text, TOPIC2_STR, getOutputDir)
- strMsgBox = ReplaceTopicTokens(strMsgBox, CR_STR, Chr(13))
- response = MsgBox(strMsgBox, Buttons:=vbOKCancel + vbInformation)
-
- If response <> vbOK Then
- bSuccess = False
- GoTo FinalExit
- End If
- End If
-
- 'Write Wizard Setting to Application log
- WriteWizardSettingsToLog mLogFilePath
-
- 'Write to Analysis ini file - used by driver docs
- WriteCommonParamsToLog sMigrationResultsTemplatePath, mLogFilePath, mIniFilePath, fso
-
- Screen.MousePointer = vbHourglass
- ' Doc Counts are setup by CheckNumberDocsToAnalyze() when user moves to Analysis Panel
- ' Takes account of user Options selected and inspects source directory
- Dim analysisAborted As Boolean
- analysisAborted = False
-
- SetupInputVariables mLogFilePath, fso
-
- Load ShowProgress
- Call ShowProgress.SP_Init(mDocFiles.WordFiles.count + _
- mDocFiles.ExcelFiles.count + _
- mDocFiles.PowerPointFiles.count)
-
- Dim myOffset As Long
- myOffset = 0
- If (mDocFiles.WordFiles.count > 0) Then
- bSuccess = AnalyseList(mDocFiles.WordFiles, "word", mIniFilePath, myOffset, analysisAborted)
- 'bSuccess = RunWordAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso)
- End If
-
- myOffset = mDocFiles.WordFiles.count
- If ((mDocFiles.ExcelFiles.count > 0) And (Not analysisAborted)) Then
- bSuccess = bSuccess And _
- AnalyseList(mDocFiles.ExcelFiles, "excel", mIniFilePath, myOffset, analysisAborted)
- 'bSuccess = RunExcelAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso)
- End If
-
- myOffset = myOffset + mDocFiles.ExcelFiles.count
- If ((mDocFiles.PowerPointFiles.count > 0) And (Not analysisAborted)) Then
- bSuccess = bSuccess And _
- AnalyseList(mDocFiles.PowerPointFiles, "pp", mIniFilePath, myOffset, analysisAborted)
- 'bSuccess = RunPPAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso)
- End If
-
- SetupInputVariables mLogFilePath, fso
-
- tend = GetTickCount()
- WriteToLog CELAPSED_TIME, (FormatNumber((tend - tstart) / 1000, 0) & " seconds: ") & _
- (FormatNumber((tend - tstart), 0) & " miliseconds")
-
-FinalExit:
- Unload ShowProgress
- Screen.MousePointer = vbDefault
- WriteToLog CSTART_TIME, CDate(startDate)
- WriteToLog CEND_TIME, Now
- Set fso = Nothing
-
- RunAnalysis = bSuccess
- Exit Function
-
-HandleErrors:
- bSuccess = False
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function CheckInstalledApps(wordAppStr As String, excelAppStr As String, ppAppStr As String) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- Dim str As String
- currentFunctionName = "CheckInstalledApps"
-
- Dim missingInstalledApps As String
- Dim unsupportedApps As String
- Dim runningApps As String
- Dim bSuccess As Boolean
-
- bSuccess = False
-
- If mWordDocCount > 0 Or mWordTemplateCount > 0 Then
- If wordAppStr = "" Then 'Word not installed
- missingInstalledApps = CAPPNAME_WORD
- ElseIf Not CheckForSupportedApp(CAPPNAME_WORD, CSUPPORTED_VERSION) Then
- unsupportedApps = CAPPNAME_WORD
- ElseIf IsOfficeAppRunning(CAPPNAME_WORD) Then
- runningApps = CAPPNAME_WORD
- End If
- End If
-
- If excelAppStr = "" Then
- If missingInstalledApps <> "" Then missingInstalledApps = missingInstalledApps & ", "
- missingInstalledApps = missingInstalledApps & CAPPNAME_EXCEL
- ElseIf Not CheckForSupportedApp(CAPPNAME_EXCEL, CSUPPORTED_VERSION) Then
- If unsupportedApps <> "" Then unsupportedApps = unsupportedApps & ", "
- unsupportedApps = unsupportedApps & CAPPNAME_EXCEL
- ElseIf IsOfficeAppRunning(CAPPNAME_EXCEL) Then
- If runningApps <> "" Then runningApps = runningApps & ", "
- runningApps = runningApps & CAPPNAME_EXCEL
- End If
-
- If mPPDocCount > 0 Or mPPTemplateCount > 0 Then
- If ppAppStr = "" Then 'PP not installed
- If missingInstalledApps <> "" Then missingInstalledApps = missingInstalledApps & ", "
- missingInstalledApps = missingInstalledApps & CAPPNAME_POWERPOINT
- ElseIf Not CheckForSupportedApp(CAPPNAME_POWERPOINT, CSUPPORTED_VERSION) Then
- If unsupportedApps <> "" Then unsupportedApps = unsupportedApps & ", "
- unsupportedApps = unsupportedApps & CAPPNAME_POWERPOINT
- ElseIf IsOfficeAppRunning(CAPPNAME_POWERPOINT) Then
- If runningApps <> "" Then runningApps = runningApps & ", "
- runningApps = runningApps & CAPPNAME_POWERPOINT
- End If
- End If
-
- If missingInstalledApps <> "" Then
- str = ReplaceTopic2Tokens(GetResString(ERR_NOT_INSTALLED), _
- TOPIC_STR, missingInstalledApps, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- GoTo FinalExit
- End If
-
- If unsupportedApps <> "" Then
- str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _
- TOPIC_STR, unsupportedApps, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- GoTo FinalExit
- End If
-
- If runningApps <> "" Then
- str = ReplaceTopic2Tokens(GetResString(ERR_APPLICATION_IN_USE), _
- TOPIC_STR, runningApps, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- GoTo FinalExit
- End If
-
- 'Check for Excel automation server
- If CheckForExcel Then
- str = ReplaceTopicTokens(GetResString(ERR_EXCEL_OPEN), _
- CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- bSuccess = True
-
-FinalExit:
- CheckInstalledApps = bSuccess
- Exit Function
-
-HandleErrors:
- bSuccess = False
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function RunPPAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean
-'DV: do we need this? get some error handling ideas here
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "RunPPAnalysis"
- Const APP_PP = "PowerPoint"
- Dim str As String
- Dim bSuccess
- bSuccess = False
-
- If (chkPPDoc.value <> vbChecked) And (chkPPTemplate.value <> vbChecked) Then
- RunPPAnalysis = True
- Exit Function
- End If
-
- Dim sPPDriverDocPath As String
-
- sPPDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE)
- If Not fsObject.FileExists(sPPDriverDocPath) Then
- str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_PP_DRIVER), _
- TOPIC_STR, sPPDriverDocPath, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- Dim pp As PowerPoint.application
- Dim po As Object
- Dim aPres As PowerPoint.Presentation
- Dim RegValue As Long
- Set po = GetObject(sPPDriverDocPath)
- Set pp = po.application
-
- If val(pp.Version) < CSUPPORTED_VERSION Then
- str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _
- TOPIC_STR, pp.Version, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- If Not CheckForAccesToPPVBProject(pp, aPres) Then
- RegValue = -1
- If Not GiveAccessToMacroProject(APP_PP, pp.Version, RegValue) Then
- Dim Style, response
- str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _
- TOPIC_STR, CAPPNAME_POWERPOINT, CR_STR, Chr(13))
- WriteDebug str
- Style = vbYesNo + vbQuestion + vbDefaultButton1
-
- response = MsgBox(str, Style)
- If response <> vbYes Then
- bSuccess = False
- GoTo FinalExit
- End If
- End If
- End If
-
- Set aPres = pp.Presentations(1)
- Dim ppSlideHidden As PowerPoint.Slide
- Set ppSlideHidden = aPres.Slides(2)
-
- 'Setup Input Variables
- 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_POWERPOINT
-
- 'Run PowerPoint Analysis
- pp.Run (fsObject.GetFileName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) & "!AnalysisDriver.AnalyseDirectory")
-
- bSuccess = True
-
-FinalExit:
- 'Cannot seem to close it down from VB
- 'Workaround is to close it in macro
- '
- 'If Not aPres Is Nothing Then
- ' aPres.Saved = msoTrue
- 'End If
- 'If Not pp Is Nothing Then pp.Quit
-
- 'Swallow error as we are closing down PP from macro
- 'Does not seem to be possible to close it down from VB
- On Error Resume Next
- If RegValue <> -1 Then
- SetDefaultRegValue APP_PP, pp.Version, RegValue
- End If
- If RegValue = 0 Then
- DeleteRegValue APP_PP, pp.Version
- End If
-
- If Not pp Is Nothing Then
- pp.Run (fsObject.GetFileName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) & "!ApplicationSpecific.QuitPowerPoint")
- End If
-
-
- Set aPres = Nothing
- Set pp = Nothing
- Set po = Nothing
-
- RunPPAnalysis = bSuccess
- Exit Function
-
-HandleErrors:
- bSuccess = False
- Set pp = Nothing
- Dim failedDoc As String
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
-
- failedDoc = GetDebug(CAPPNAME_POWERPOINT, CANALYZING)
- If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then
- str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _
- TOPIC_STR, CAPPNAME_POWERPOINT, CR_STR, Chr(13))
- Else
- str = ReplaceTopic2Tokens(GetResString(ERR_PP_DRIVER_CRASH), _
- TOPIC_STR, failedDoc, CR_STR, Chr(13))
- End If
-
- WriteDebug str
- MsgBox str, vbCritical
-
- Resume FinalExit
-End Function
-
-Sub SetupInputVariables(logFile As String, fso As FileSystemObject)
- Dim bNewResultsFile As Boolean
-
- bNewResultsFile = CheckCreateNewResultsFile(fso)
-
- WriteToLog CNEW_RESULTS_FILE, IIf(bNewResultsFile, "True", "False"), mIniFilePath
- WriteToLog CNEW_RESULTS_FILE, IIf(bNewResultsFile, "True", "False"), logFile
-End Sub
-
-
-
-Function RunExcelAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "RunExcelAnalysis"
- Const APP_EXCEL = "Excel"
- Dim str As String
- Dim bSuccess
- bSuccess = False
-
- If (chkExcelDoc.value <> vbChecked) And (chkExcelTemplate.value <> vbChecked) Then
- RunExcelAnalysis = True
- Exit Function
- End If
-
- Dim xl As Excel.application
- Dim aWb As Excel.Workbook
- Dim sExcelDriverDocPath As String
- Dim RegValue As Long
-
- sExcelDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE)
- If Not fsObject.FileExists(sExcelDriverDocPath) Then
- str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_EXCEL_DRIVER), _
- TOPIC_STR, sExcelDriverDocPath, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- Set xl = GetExcelInstance
- If val(xl.Version) < CSUPPORTED_VERSION Then
- str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _
- TOPIC_STR, xl.Version, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- If Not CheckForAccesToExcelVBProject(xl) Then
- RegValue = -1
- If Not GiveAccessToMacroProject(APP_EXCEL, xl.Version, RegValue) Then
- Dim Style, response
- str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _
- TOPIC_STR, CAPPNAME_EXCEL, CR_STR, Chr(13))
- WriteDebug str
- Style = vbYesNo + vbQuestion + vbDefaultButton1
-
- response = MsgBox(str, Style)
- If response <> vbYes Then
- bSuccess = False
- GoTo FinalExit
- End If
- End If
- End If
-
- Set aWb = xl.Workbooks.Open(fileName:=sExcelDriverDocPath)
- 'Setup Input Variables
- 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_EXCEL
-
- 'Run Excel Analysis
- xl.Run ("AnalysisTool.AnalysisDriver.AnalyseDirectory")
-
- bSuccess = True
-FinalExit:
- If RegValue <> -1 Then
- SetDefaultRegValue APP_EXCEL, xl.Version, RegValue
- End If
- If RegValue = 0 Then
- DeleteRegValue APP_EXCEL, xl.Version
- End If
-
- If Not aWb Is Nothing Then
- If xl.Workbooks.count = 1 Then
- xl.Visible = False
- End If
- aWb.Close (False)
- End If
- Set aWb = Nothing
-
- If Not xl Is Nothing Then
- If xl.Workbooks.count = 0 Then
- xl.Quit
- End If
- End If
-
- Set xl = Nothing
-
- RunExcelAnalysis = bSuccess
- Exit Function
-
-HandleErrors:
- bSuccess = False
- Set aWb = Nothing
- Set xl = Nothing
- Dim failedDoc As String
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
-
- failedDoc = GetDebug(CAPPNAME_EXCEL, CANALYZING)
- If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then
- str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _
- TOPIC_STR, CAPPNAME_EXCEL, CR_STR, Chr(13))
- Else
- str = ReplaceTopic2Tokens(GetResString(ERR_EXCEL_DRIVER_CRASH), _
- TOPIC_STR, failedDoc, CR_STR, Chr(13))
- End If
-
- WriteDebug str
- MsgBox str, vbCritical
-
- On Error Resume Next
- Resume FinalExit
-End Function
-
-Sub WriteWizardSettingsToLog(path As String)
- '### DO NOT USE Boolean True/ False it is loaclised by the OS - use "True"/ "False"
- WriteToLog CINPUT_DIR, getInputDir, path
- WriteToLog CINCLUDE_SUBDIRS, IIf(chkIncludeSubdirs.value, "True", "False"), path
- WriteToLog COUTPUT_DIR, getOutputDir, path
- WriteToLog CRESULTS_FILE, txtResultsName.Text, path
-
- WriteToLog CTYPE_WORDDOC, IIf(chkWordDoc.value, "True", "False"), path
- WriteToLog CTYPE_WORDDOT, IIf(chkWordTemplate.value, "True", "False"), path
- WriteToLog CTYPE_EXCELDOC, IIf(chkExcelDoc.value, "True", "False"), path
- WriteToLog CTYPE_EXCELDOT, IIf(chkExcelTemplate.value, "True", "False"), path
- WriteToLog CTYPE_PPDOC, IIf(chkPPDoc.value, "True", "False"), path
- WriteToLog CTYPE_PPDOT, IIf(chkPPTemplate.value, "True", "False"), path
-
- Dim resultsSetting As String
- If rdbResultsPrompt.value Then
- resultsSetting = CPROMPT_FILE
- ElseIf rdbResultsAppend.value Then
- resultsSetting = CAPPEND_FILE
- Else
- resultsSetting = COVERWRITE_FILE
- End If
- WriteToLog CRESULTS_EXIST, resultsSetting, path
-
- WriteToLog CIGNORE_OLD_DOCS, IIf(chkIgnoreOld.value, "True", "False"), path
- WriteToLog CISSUE_LIMIT, CStr(mIssueLimit), path
-
- 'WriteToLog CVERSION, Version, path
-End Sub
-
-Sub WriteCommonParamsToLog(resultsTemplate As String, logFile As String, path As String, fso As Scripting.FileSystemObject)
- WriteToLog CLOG_FILE, logFile, path
- WriteToLog CRESULTS_TEMPLATE, resultsTemplate, path
- WriteToLog CDEBUG_LEVEL, CLng(mDebugLevel), path
- WriteToLog CDOPREPARE, IIf(mbDoPrepare, "True", "False"), path
- WriteToLog CTITLE, frmWizard.Caption, path
- WriteToLog CLAST_CHECKPOINT, ""
- WriteToLog CNEXT_FILE, ""
- WriteToLog C_ABORT_ANALYSIS, ""
-End Sub
-
-Function GetNumberOfDocsToAnalyze() As Long
- Dim count As Long
-
- count = 0
-
- If CheckWordDocsToAnalyze Then
- count = mWordDocCount + mWordTemplateCount
- End If
- If CheckExcelDocsToAnalyze Then
- count = count + mExcelDocCount + mExcelTemplateCount
- End If
- If CheckPPDocsToAnalyze Then
- count = count + mPPDocCount + mPPTemplateCount
- End If
-
- GetNumberOfDocsToAnalyze = count
-End Function
-
-Function CheckWordDocsToAnalyze() As Boolean
-
- CheckWordDocsToAnalyze = mbDocCountCurrent And (chkWordDoc.value = vbChecked And mWordDocCount > 0) Or _
- (chkWordTemplate.value = vbChecked And mWordTemplateCount > 0)
-End Function
-
-Function CheckExcelDocsToAnalyze() As Boolean
- CheckExcelDocsToAnalyze = mbDocCountCurrent And (chkExcelDoc.value = vbChecked And mExcelDocCount > 0) Or _
- (chkExcelTemplate.value = vbChecked And mExcelTemplateCount > 0)
-End Function
-
-Function CheckPPDocsToAnalyze() As Boolean
- CheckPPDocsToAnalyze = mbDocCountCurrent And (chkPPDoc.value = vbChecked And mPPDocCount > 0) Or _
- (chkPPTemplate.value = vbChecked And mPPTemplateCount > 0)
-End Function
-
-Function CheckNumberDocsToAnalyze() As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckNumberDocsToAnalyze"
-
- Set mDocFiles = New CollectedFiles
-
- Dim docSearchTypes As Collection
- Set docSearchTypes = New Collection
-
- mbDocCountCurrent = False
-
- SetupDocSearchTypes docSearchTypes
-
- If (cbIgnoreOld.ListIndex = 0) Then
- mIssueLimit = 3
- ElseIf (cbIgnoreOld.ListIndex = 1) Then
- mIssueLimit = 6
- Else
- mIssueLimit = 12
- End If
-
- If Not mDocFiles.Search(rootDir:=getInputDir, FileSpecs:=docSearchTypes, _
- IncludeSubdirs:=IIf(chkIncludeSubdirs.value, mbTrue, mbFalse), _
- ignoreOld:=IIf(chkIgnoreOld.value, mbTrue, mbFalse), Months:=mIssueLimit) Then
- CheckNumberDocsToAnalyze = False
- GoTo FinalExit
- End If
-
- SetDocCountsFromFileSearch mDocFiles
- WriteFileDateCountsToLog mDocFiles
-
- 'WriteDocsToAnalyzeToLog mDocFiles 'UNCOMMENT Recovery - want to list out files to analyze
-
- mbDocCountCurrent = True
-
- lblNumDocs.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_ID), TOPIC_STR, _
- CStr(mWordDocCount))
- lblNumTemplates.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _
- CStr(mWordTemplateCount))
-
- lblNumXLS.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_XLS_ID), TOPIC_STR, _
- CStr(mExcelDocCount))
- lblNumXLT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _
- CStr(mExcelTemplateCount))
-
- lblNumPPT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_PPT_ID), TOPIC_STR, _
- CStr(mPPDocCount))
- lblNumPOT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _
- CStr(mPPTemplateCount))
-
- lblTotalNumDocs.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TOTAL_NUM_DOCS_ID), TOPIC_STR, _
- CStr(mTotalDocCount))
-
- If (mIgnoredDocCount > 0) Then
- lblSkippedOld.Caption = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYZE_IGNORED_DOCS_ID), _
- TOPIC_STR, CStr(mIgnoredDocCount))
- lblSkippedOld.Visible = True
- Else
- lblSkippedOld.Visible = False
- End If
-
- CheckNumberDocsToAnalyze = True
-
-FinalExit:
- Set docSearchTypes = Nothing
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Sub SetDocCountsFromFileSearch(myDocFiles As CollectedFiles)
- 'No Error handling required
- mWordDocCount = myDocFiles.DocCount
- mWordTemplateCount = myDocFiles.DotCount
- mExcelDocCount = myDocFiles.XlsCount
- mExcelTemplateCount = myDocFiles.XltCount
- mPPDocCount = myDocFiles.PptCount
- mPPTemplateCount = myDocFiles.PotCount
- mTotalDocCount = mWordDocCount + mWordTemplateCount + mExcelDocCount + mExcelTemplateCount + _
- mPPDocCount + mPPTemplateCount
- mIgnoredDocCount = myDocFiles.IgnoredDocCount
-End Sub
-
-Sub SetupDocSearchTypes(docSearchTypes As Collection)
- 'No Error handling required
- If chkWordDoc.value Then docSearchTypes.add ("*.doc")
- If chkWordTemplate.value Then docSearchTypes.add ("*.dot")
- If chkExcelDoc.value Then docSearchTypes.add ("*.xls")
- If chkExcelTemplate.value Then docSearchTypes.add ("*.xlt")
- If chkPPDoc.value Then docSearchTypes.add ("*.ppt")
- If chkPPTemplate.value Then docSearchTypes.add ("*.pot")
-End Sub
-
-Sub WriteDocsToAnalyzeToLog(myDocFiles As CollectedFiles)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteDocsToAnalyzeToLog"
-
- Dim vFileName As Variant
- Dim Index As Long
- Dim limit As Long
- limit = myDocFiles.WordFiles.count
- For Index = 1 To limit
- vFileName = myDocFiles.WordFiles(Index)
- WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_WORD)
- Next
- limit = myDocFiles.ExcelFiles.count
- For Index = 1 To limit
- vFileName = myDocFiles.ExcelFiles(Index)
- WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_EXCEL)
- Next
- limit = myDocFiles.PowerPointFiles.count
- For Index = 1 To limit
- vFileName = myDocFiles.PowerPointFiles(Index)
- WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_POWERPOINT)
- Next
-
-FinalExit:
- Exit Sub
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Sub WriteFileDateCountsToLog(myDocFiles As CollectedFiles)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "WriteFileDateCountsToLog"
-
- WriteToLog C_DOCS_LESS_3_MONTH, CStr(myDocFiles.DocsLessThan3Months), mIniFilePath
- WriteToLog C_DOCS_LESS_6_MONTH, CStr(myDocFiles.DocsLessThan6Months), mIniFilePath
- WriteToLog C_DOCS_LESS_12_MONTH, CStr(myDocFiles.DocsLessThan12Months), mIniFilePath
- WriteToLog C_DOCS_MORE_12_MONTH, CStr(myDocFiles.DocsMoreThan12Months), mIniFilePath
-
-FinalExit:
- Exit Sub
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-
-Function RunWordAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "RunWordAnalysis"
- Const APP_WORD = "Word"
- Dim str As String
- Dim bSuccess
- bSuccess = False
-
- Dim wrd As Word.application
- Dim aDoc As Word.Document
- Dim sWordDriverDocPath As String
- Dim RegValue As Long
-
- If (chkWordDoc.value <> vbChecked) And (chkWordTemplate.value <> vbChecked) Then
- 'No Word doc filters selected
- RunWordAnalysis = True
- Exit Function
- End If
-
- sWordDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE)
- If Not fsObject.FileExists(sWordDriverDocPath) Then
- str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _
- TOPIC_STR, sWordDriverDocPath, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- Set wrd = New Word.application
- If val(wrd.Version) < CSUPPORTED_VERSION Then
- str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _
- TOPIC_STR, wrd.Version, CR_STR, Chr(13))
- WriteDebug str
- MsgBox str, vbCritical
- bSuccess = False
- GoTo FinalExit
- End If
-
- If Not CheckForAccesToWordVBProject(wrd) Then
- RegValue = -1
- If Not GiveAccessToMacroProject(APP_WORD, wrd.Version, RegValue) Then
- Dim Style, response
- str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _
- TOPIC_STR, CAPPNAME_WORD, CR_STR, Chr(13))
- WriteDebug str
- Style = vbYesNo + vbQuestion + vbDefaultButton1
-
- response = MsgBox(str, Style)
- If response <> vbYes Then
- bSuccess = False
- GoTo FinalExit
- End If
- End If
- End If
-
- Set aDoc = wrd.Documents.Open(fileName:=sWordDriverDocPath)
- 'Clear out any doc vars
- Dim MyObj As Variable
- For Each MyObj In aDoc.Variables
- MyObj.Delete
- Next
-
- 'Setup Input Variables
- 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_WORD
-
- wrd.Run ("AnalysisTool.AnalysisDriver.AnalyseDirectory")
-
- wrd.Visible = False
- bSuccess = True
-
-FinalExit:
- If RegValue <> -1 Then
- SetDefaultRegValue APP_WORD, wrd.Version, RegValue
- End If
- If RegValue = 0 Then
- DeleteRegValue APP_WORD, wrd.Version
- End If
- If Not aDoc Is Nothing Then aDoc.Close (False)
- Set aDoc = Nothing
-
- If Not wrd Is Nothing Then wrd.Quit (False)
- Set wrd = Nothing
-
- RunWordAnalysis = bSuccess
- Exit Function
-
-HandleErrors:
- On Error Resume Next
-
- bSuccess = False
- Set aDoc = Nothing
- Set wrd = Nothing
-
- Dim failedDoc As String
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
-
- failedDoc = GetDebug(CAPPNAME_WORD, CANALYZING)
- If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then
- str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _
- TOPIC_STR, CAPPNAME_WORD, CR_STR, Chr(13))
- Else
- str = ReplaceTopic2Tokens(GetResString(ERR_WORD_DRIVER_CRASH), _
- TOPIC_STR, failedDoc, CR_STR, Chr(13))
- End If
-
- WriteDebug str
- MsgBox str, vbCritical
-
- Resume FinalExit
-End Function
-
-Function stripLastBackslash(inputStr As String) As String
- Const MIN_DIR_SIZE = 3
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "stripLastBackslash"
-
- If Len(inputStr) > MIN_DIR_SIZE Then
- Dim lastStrChar As String
- lastStrChar = Right(inputStr, 1)
- If lastStrChar = "\" Then
- inputStr = Left(inputStr, Len(inputStr) - 1)
- End If
- End If
- stripLastBackslash = inputStr
-
- Exit Function
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- stripLastBackslash = inputStr
-End Function
-
-Function getInputDir() As String
- getInputDir = stripLastBackslash(txtInputDir.Text)
-End Function
-
-Function getOutputDir() As String
- Dim tmpStr As String
-
- tmpStr = stripLastBackslash(txtOutputDir.Text)
-
- 'Bug when specifying C:\
- If tmpStr <> "" Then
- If Right(tmpStr, 1) = "\" Then
- tmpStr = Left(tmpStr, Len(tmpStr) - 1)
- End If
- End If
- getOutputDir = tmpStr
-End Function
-
-Function CheckCreateNewResultsFile(fsObject As FileSystemObject) As Boolean
- If Not fsObject.FileExists(getOutputDir & "\" & txtResultsName.Text) Then
- 'No Results File - Create it
- CheckCreateNewResultsFile = True
- ElseIf rdbResultsAppend.value Then
- 'Results File exists and user wants to append to it
- CheckCreateNewResultsFile = False
- Else
- 'Results File exists and user has elected not to append
- CheckCreateNewResultsFile = True
- End If
-End Function
-
-Sub DeleteFile(file As String)
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "DeleteFile"
- Dim fso As Scripting.FileSystemObject
- Set fso = New Scripting.FileSystemObject
- Dim filePath As String
-
- filePath = fso.GetAbsolutePathName(file)
- If fso.FileExists(filePath) Then
- fso.DeleteFile filePath, True
- End If
-
-FinalExit:
- Set fso = Nothing
- Exit Sub
-
-HandleErrors:
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Sub
-
-Public Property Get Version() As String
- Version = app.Major & "." & app.Minor & "." & app.Revision
-End Property
-
-Function GetExcelInstance() As Excel.application
- Dim xl As Excel.application
- On Error Resume Next
- 'Try and get an existing instance
- Set xl = GetObject(, "Excel.Application")
- If Err.Number = 429 Then
- Set xl = CreateObject("Excel.Application")
- ElseIf Err.Number <> 0 Then
- Set xl = Nothing
- MsgBox "Error: " & Err.Description
- Exit Function
- End If
- Set GetExcelInstance = xl
- Set xl = Nothing
-End Function
-
-Function CheckForAnalysisResultsWorkbook(analysisResultsName As String) As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckForAnalysisResultsWorkbook"
-
- CheckForAnalysisResultsWorkbook = False
-
- Dim xl As Excel.application
- Set xl = GetExcelInstance
-
- Dim aWb As Excel.Workbook
- For Each aWb In xl.Workbooks
-
- If aWb.Name = analysisResultsName Then
- CheckForAnalysisResultsWorkbook = True
- Exit For
- End If
- Next aWb
-
-FinalExit:
- If Not xl Is Nothing Then
- If xl.Workbooks.count = 0 Then
- xl.Quit
- End If
- End If
-
- Set xl = Nothing
-
- Exit Function
-
-HandleErrors:
- Set xl = Nothing
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Function CheckForExcel() As Boolean
- On Error GoTo HandleErrors
- Dim currentFunctionName As String
- currentFunctionName = "CheckForExcel"
-
- CheckForExcel = False
-
- Dim xl As Excel.application
- Set xl = GetExcelInstance
-
-
- If xl.Workbooks.count > 0 Then
- CheckForExcel = True
- End If
-
-FinalExit:
- If Not xl Is Nothing Then
- If xl.Workbooks.count = 0 Then
- xl.Quit
- End If
- End If
-
- Set xl = Nothing
-
- Exit Function
-
-HandleErrors:
- Set xl = Nothing
-
- WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
- Resume FinalExit
-End Function
-
-Public Function GetIniSetting(key As String) As String
-
- If mIniFilePath = "" Or key = "" Then Exit Function
-
- GetIniSetting = ProfileGetItem(WIZARD_NAME, key, "", mIniFilePath)
-End Function
-
-Sub WriteIniSetting(key As String, value As String)
-
- If mIniFilePath = "" Or key = "" Then Exit Sub
-
- Call WritePrivateProfileString(WIZARD_NAME, key, value, mIniFilePath)
-End Sub
-
-Private Sub lblSetupComplete_Click(Index As Integer)
-
-End Sub
-
-Private Function CheckNeededFiles(missingFile As String) As Boolean
-
- Dim fso As New FileSystemObject
- Dim filePath As String
-
- CheckNeededFiles = False
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CLAUNCH_DRIVERS_EXE)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CMSO_KILL_EXE)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESULTS_TEMPLATE_FILE)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESOURCE_DLL)
- If Not fso.FileExists(filePath) Then
- missingFile = filePath
- Exit Function
- End If
-
- CheckNeededFiles = True
-End Function
+VERSION 5.00 +Begin VB.Form frmWizard + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 1 'Fixed Single + Caption = "OpenOffice.org Document Analysis Wizard" + ClientHeight = 5520 + ClientLeft = 1965 + ClientTop = 1815 + ClientWidth = 8175 + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Icon = "Wizard.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 5520 + ScaleWidth = 8175 + Tag = "1000" + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Introduction" + ClipControls = 0 'False + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4905 + Index = 0 + Left = -10000 + TabIndex = 25 + Tag = "1000" + Top = 0 + Width = 8235 + Begin VB.PictureBox Picture4 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 4935 + Index = 0 + Left = 0 + ScaleHeight = 4935 + ScaleWidth = 2565 + TabIndex = 2 + TabStop = 0 'False + Top = 0 + Width = 2565 + Begin VB.PictureBox Picture10 + Height = 735 + Left = 2580 + ScaleHeight = 735 + ScaleWidth = 30 + TabIndex = 68 + TabStop = 0 'False + Top = 2610 + Width = 30 + End + Begin VB.PictureBox Picture6 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1485 + Left = 150 + ScaleHeight = 1485 + ScaleWidth = 2355 + TabIndex = 67 + TabStop = 0 'False + Top = 3390 + Width = 2355 + Begin VB.PictureBox Picture1 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1200 + Index = 0 + Left = 200 + Picture = "Wizard.frx":482C2 + ScaleHeight = 1200 + ScaleWidth = 1980 + TabIndex = 7 + TabStop = 0 'False + Tag = "1060" + Top = 300 + Width = 1980 + End + End + Begin VB.Label lblStep1_4 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "4. Analyze" + ForeColor = &H00BF4F59& + Height = 195 + Left = 120 + TabIndex = 89 + Tag = "1044" + Top = 1800 + Width = 2140 + End + Begin VB.Line Line2 + BorderColor = &H00808080& + Index = 2 + X1 = 2550 + X2 = 2550 + Y1 = 0 + Y2 = 4920 + End + Begin VB.Line Line3 + Index = 1 + X1 = 120 + X2 = 2280 + Y1 = 480 + Y2 = 480 + End + Begin VB.Label Label7 + BackColor = &H00EED3C2& + Caption = "1. Introduction" + ForeColor = &H00BF4F59& + Height = 255 + Index = 1 + Left = 120 + TabIndex = 11 + Tag = "1041" + Top = 720 + Width = 2140 + End + Begin VB.Label Label8 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "3. Results" + ForeColor = &H00BF4F59& + Height = 255 + Index = 1 + Left = 120 + TabIndex = 9 + Tag = "1043" + Top = 1440 + Width = 2140 + End + Begin VB.Label Label9 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "2. Documents" + ForeColor = &H00BF4F59& + Height = 255 + Index = 1 + Left = 120 + TabIndex = 10 + Tag = "1042" + Top = 1080 + Width = 2140 + End + Begin VB.Label Label12 + BackStyle = 0 'Transparent + Caption = "Steps" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Index = 1 + Left = 120 + TabIndex = 8 + Tag = "1040" + Top = 240 + Width = 2115 + End + End + Begin VB.PictureBox Picture8 + Appearance = 0 'Flat + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 4935 + Left = 2400 + ScaleHeight = 4935 + ScaleWidth = 5925 + TabIndex = 3 + TabStop = 0 'False + Top = -30 + Width = 5925 + Begin VB.CheckBox chkShowIntro + Caption = "Do not show this introduction again" + Enabled = 0 'False + Height = 315 + Left = 690 + MaskColor = &H00000000& + TabIndex = 6 + Tag = "1103" + Top = 4890 + Visible = 0 'False + Width = 3810 + End + Begin VB.Label lblIntroduction1 + AutoSize = -1 'True + Caption = $"Wizard.frx":4F8B8 + Height = 585 + Left = 690 + TabIndex = 93 + Tag = "1101" + Top = 750 + Width = 4890 + WordWrap = -1 'True + End + Begin VB.Label lblIntroduction3 + AutoSize = -1 'True + Caption = "The wizard will remain on screen while the analysis is carried out." + Height = 195 + Left = 690 + TabIndex = 0 + Tag = "1104" + Top = 2670 + Width = 4845 + WordWrap = -1 'True + End + Begin VB.Label lblIntroduction2 + AutoSize = -1 'True + Caption = "You will be able to select which documents you want to analyze as well as where you want the results to the analysis to be saved. " + Height = 390 + Left = 690 + TabIndex = 1 + Tag = "1102" + Top = 1800 + Width = 4875 + WordWrap = -1 'True + End + Begin VB.Label Label12 + BackStyle = 0 'Transparent + Caption = "Introduction" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Index = 2 + Left = 450 + TabIndex = 5 + Tag = "1100" + Top = 270 + Width = 4000 + End + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Setup" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4905 + Index = 1 + Left = -10000 + TabIndex = 32 + Tag = "2000" + Top = 0 + Width = 8235 + Begin VB.PictureBox Picture4 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 4905 + Index = 1 + Left = 0 + ScaleHeight = 4905 + ScaleWidth = 2565 + TabIndex = 61 + TabStop = 0 'False + Top = 0 + Width = 2565 + Begin VB.PictureBox Picture1 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1200 + Index = 1 + Left = 350 + Picture = "Wizard.frx":4F971 + ScaleHeight = 1200 + ScaleWidth = 1980 + TabIndex = 62 + TabStop = 0 'False + Tag = "1060" + Top = 3690 + Width = 1980 + End + Begin VB.Label lblStep2_4 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "4. Analyze" + ForeColor = &H00BF4F59& + Height = 195 + Left = 120 + TabIndex = 90 + Tag = "1044" + Top = 1800 + Width = 2140 + End + Begin VB.Line Line2 + BorderColor = &H00808080& + Index = 1 + X1 = 2550 + X2 = 2550 + Y1 = 0 + Y2 = 4920 + End + Begin VB.Label Label12 + BackStyle = 0 'Transparent + Caption = "Steps" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Index = 3 + Left = 120 + TabIndex = 66 + Tag = "1040" + Top = 240 + Width = 1335 + End + Begin VB.Label Label9 + BackColor = &H00EED3C2& + Caption = "2. Documents" + ForeColor = &H00BF4F59& + Height = 255 + Index = 2 + Left = 120 + TabIndex = 65 + Tag = "1042" + Top = 1080 + Width = 2140 + End + Begin VB.Label Label8 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "3. Results" + ForeColor = &H00BF4F59& + Height = 255 + Index = 2 + Left = 120 + TabIndex = 64 + Tag = "1043" + Top = 1440 + Width = 2140 + End + Begin VB.Label Label7 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "1. Introduction" + ForeColor = &H00BF4F59& + Height = 255 + Index = 2 + Left = 120 + TabIndex = 63 + Tag = "1041" + Top = 720 + Width = 2140 + End + Begin VB.Line Line3 + Index = 2 + X1 = 120 + X2 = 2280 + Y1 = 480 + Y2 = 480 + End + End + Begin VB.PictureBox Picture7 + Appearance = 0 'Flat + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 4725 + Left = 2580 + ScaleHeight = 4725 + ScaleWidth = 5535 + TabIndex = 58 + TabStop = 0 'False + Top = 0 + Width = 5535 + Begin VB.ComboBox cbIgnoreOld + Height = 330 + ItemData = "Wizard.frx":56F67 + Left = 3950 + List = "Wizard.frx":56F74 + Style = 2 'Dropdown List + TabIndex = 99 + Top = 1570 + Width = 1215 + End + Begin VB.CheckBox chkIgnoreOld + Caption = "Ignore documents older than" + Height = 225 + Left = 450 + TabIndex = 98 + Top = 1600 + Width = 3400 + End + Begin VB.CheckBox chkWordDoc + Caption = "Documents (*.doc)" + Height = 225 + Left = 2160 + TabIndex = 19 + Tag = "1208" + Top = 2600 + Value = 1 'Checked + Width = 3200 + End + Begin VB.CheckBox chkWordTemplate + Caption = "Templates (*.dot)" + Height = 225 + Left = 2160 + TabIndex = 20 + Tag = "1209" + Top = 2900 + Width = 3200 + End + Begin VB.CheckBox chkPPTemplate + Caption = "Templates (*.pot)" + Height = 225 + Left = 2160 + TabIndex = 24 + Tag = "1215" + Top = 4400 + Width = 3200 + End + Begin VB.CheckBox chkPPDoc + Caption = "Presentations (*.ppt)" + Height = 225 + Left = 2160 + TabIndex = 23 + Tag = "1214" + Top = 4100 + Width = 3200 + End + Begin VB.CheckBox chkExcelDoc + Caption = "Spreadsheets (*.xls)" + Height = 225 + Left = 2160 + TabIndex = 21 + Tag = "1211" + Top = 3350 + Width = 3200 + End + Begin VB.CheckBox chkExcelTemplate + Caption = "Templates (*.xlt)" + Height = 225 + Left = 2160 + TabIndex = 22 + Tag = "1212" + Top = 3650 + Width = 3200 + End + Begin VB.CommandButton btnBrowseDirInput + Caption = "..." + Height = 315 + Left = 4740 + TabIndex = 17 + Top = 900 + Width = 400 + End + Begin VB.TextBox txtInputDir + Height = 315 + Left = 450 + TabIndex = 16 + Tag = "1205" + Text = "C:\" + Top = 900 + Width = 4155 + End + Begin VB.CheckBox chkIncludeSubdirs + Caption = "Include subdirectories in the analysis" + Height = 225 + Left = 450 + TabIndex = 18 + Tag = "1202" + Top = 1300 + Width = 4965 + End + Begin VB.Label lblDocTypes + Caption = "Document types to analyze" + Height = 225 + Left = 450 + TabIndex = 95 + Tag = "1206" + Top = 2250 + Width = 4905 + End + Begin VB.Label lblChooseDocs + AutoSize = -1 'True + Caption = "Choose the documents you want to analyze" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 195 + Left = 300 + TabIndex = 94 + Tag = "1200" + Top = 240 + Width = 5115 + WordWrap = -1 'True + End + Begin VB.Label Label13 + AutoSize = -1 'True + Caption = "PowerPoint" + Height = 225 + Index = 2 + Left = 690 + TabIndex = 74 + Tag = "1213" + Top = 4100 + Width = 1245 + WordWrap = -1 'True + End + Begin VB.Label Label13 + AutoSize = -1 'True + Caption = "Excel" + Height = 225 + Index = 1 + Left = 690 + TabIndex = 73 + Tag = "1210" + Top = 3350 + Width = 1245 + WordWrap = -1 'True + End + Begin VB.Label Label13 + AutoSize = -1 'True + Caption = "Word" + Height = 225 + Index = 0 + Left = 690 + TabIndex = 72 + Tag = "1207" + Top = 2600 + Width = 1245 + WordWrap = -1 'True + End + Begin VB.Label Label1 + Caption = "Location of Microsoft Office documents" + Height = 200 + Left = 450 + TabIndex = 59 + Tag = "1201" + Top = 600 + Width = 4935 + End + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Options" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4905 + Index = 2 + Left = -10000 + TabIndex = 33 + Tag = "2002" + Top = 0 + Width = 8235 + Begin VB.PictureBox Picture11 + BorderStyle = 0 'None + Height = 555 + Left = 7260 + ScaleHeight = 555 + ScaleWidth = 705 + TabIndex = 75 + Top = 1890 + Width = 705 + Begin VB.CommandButton btnBrowseDirOut + Caption = "..." + Height = 375 + Left = 90 + TabIndex = 28 + Top = 90 + Width = 495 + End + End + Begin VB.TextBox txtResultsName + Height = 375 + Left = 3030 + TabIndex = 26 + Tag = "1302" + Text = "Analysis Results.xls" + Top = 1140 + Width = 3045 + End + Begin VB.TextBox txtOutputDir + Height = 375 + Left = 3030 + TabIndex = 27 + Top = 1980 + Width = 4185 + End + Begin VB.PictureBox Picture5 + Appearance = 0 'Flat + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1365 + Left = 3300 + ScaleHeight = 1365 + ScaleWidth = 4635 + TabIndex = 57 + TabStop = 0 'False + Top = 3210 + Width = 4635 + Begin VB.OptionButton rdbResultsPrompt + Caption = "Ask me before overwriting" + Height = 435 + Left = 0 + TabIndex = 29 + Tag = "1312" + Top = 0 + Value = -1 'True + Width = 4485 + End + Begin VB.OptionButton rdbResultsOverwrite + Caption = "Overwrite without asking me" + Height = 435 + Left = 0 + TabIndex = 30 + Tag = "1313" + Top = 450 + Width = 4455 + End + Begin VB.OptionButton rdbResultsAppend + Caption = "Append the new results to the existing results" + Height = 675 + Left = 0 + TabIndex = 31 + Tag = "1314" + Top = 780 + Visible = 0 'False + Width = 4515 + End + End + Begin VB.Frame Frame3 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + Enabled = 0 'False + ForeColor = &H0099A8AC& + Height = 5175 + Index = 0 + Left = 0 + TabIndex = 39 + Top = 0 + Width = 2535 + Begin VB.PictureBox Picture1 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1200 + Index = 3 + Left = 350 + Picture = "Wizard.frx":56F97 + ScaleHeight = 1200 + ScaleWidth = 1980 + TabIndex = 40 + TabStop = 0 'False + Top = 3690 + Width = 1980 + End + Begin VB.Label lblStep3_4 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "4. Analyze" + ForeColor = &H00BF4F59& + Height = 195 + Left = 120 + TabIndex = 91 + Tag = "1044" + Top = 1800 + Width = 2140 + End + Begin VB.Label Label12 + BackStyle = 0 'Transparent + Caption = "Steps" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Index = 0 + Left = 120 + TabIndex = 53 + Tag = "1040" + Top = 240 + Width = 1335 + End + Begin VB.Label Label9 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "2. Documents" + ForeColor = &H00BF4F59& + Height = 255 + Index = 0 + Left = 120 + TabIndex = 43 + Tag = "1042" + Top = 1080 + Width = 2140 + End + Begin VB.Label Label8 + BackColor = &H00EED3C2& + Caption = "3. Results" + ForeColor = &H00BF4F59& + Height = 255 + Index = 0 + Left = 120 + TabIndex = 42 + Tag = "1043" + Top = 1440 + Width = 2140 + End + Begin VB.Label Label7 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "1. Introduction" + ForeColor = &H00BF4F59& + Height = 255 + Index = 0 + Left = 120 + TabIndex = 41 + Tag = "1041" + Top = 720 + Width = 2140 + End + Begin VB.Line Line3 + Index = 0 + X1 = 120 + X2 = 2280 + Y1 = 480 + Y2 = 480 + End + End + Begin VB.Label Label3 + Caption = "File name for the results spreadsheet" + Height = 195 + Left = 3030 + TabIndex = 71 + Tag = "1301" + Top = 840 + Width = 4785 + End + Begin VB.Label lblResultsLocation + Caption = "Location" + Height = 195 + Left = 3030 + TabIndex = 70 + Tag = "1304" + Top = 1710 + Width = 4755 + End + Begin VB.Label Label13 + AutoSize = -1 'True + Caption = "If results already exisit under the same name and location:" + Height = 195 + Index = 5 + Left = 3030 + TabIndex = 38 + Tag = "1311" + Top = 2730 + Width = 4230 + WordWrap = -1 'True + End + Begin VB.Line Line2 + BorderColor = &H00808080& + Index = 0 + X1 = 2550 + X2 = 2550 + Y1 = 0 + Y2 = 4920 + End + Begin VB.Label lblChooseResults + AutoSize = -1 'True + Caption = "Choose where and how to save the analysis results" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 195 + Left = 2880 + TabIndex = 37 + Tag = "1300" + Top = 240 + Width = 5055 + WordWrap = -1 'True + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Analyze" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4905 + Index = 3 + Left = 0 + TabIndex = 34 + Tag = "3000" + Top = 0 + Width = 2.45745e5 + Begin VB.PictureBox Picture12 + Appearance = 0 'Flat + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 4905 + Left = 10020 + ScaleHeight = 4905 + ScaleWidth = 8175 + TabIndex = 69 + TabStop = 0 'False + Top = 0 + Width = 8175 + End + Begin VB.CommandButton btnPrepare + Caption = "Prepare" + Enabled = 0 'False + Height = 375 + Left = 3340 + TabIndex = 97 + Tag = "1411" + Top = 4410 + Visible = 0 'False + Width = 4000 + End + Begin VB.CommandButton btnRunAnalysis + Caption = "Run" + Height = 375 + Left = 3340 + TabIndex = 35 + Tag = "1404" + Top = 3410 + Width = 4000 + End + Begin VB.CommandButton btnViewResults + Caption = "View" + Enabled = 0 'False + Height = 375 + Left = 3340 + TabIndex = 36 + Tag = "1406" + Top = 3910 + Width = 4000 + End + Begin VB.Frame Frame3 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + Enabled = 0 'False + ForeColor = &H0099A8AC& + Height = 5175 + Index = 3 + Left = 0 + TabIndex = 44 + Top = 0 + Width = 2535 + Begin VB.PictureBox Picture4 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1575 + Index = 2 + Left = 150 + ScaleHeight = 1575 + ScaleWidth = 2385 + TabIndex = 55 + TabStop = 0 'False + Top = 3390 + Width = 2385 + Begin VB.PictureBox Picture1 + Appearance = 0 'Flat + BackColor = &H80000005& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1200 + Index = 2 + Left = 200 + Picture = "Wizard.frx":5E58D + ScaleHeight = 1200 + ScaleWidth = 2475 + TabIndex = 56 + TabStop = 0 'False + Tag = "1060" + Top = 300 + Width = 2480 + End + End + Begin VB.Label lblStep4_4 + BackColor = &H00EED3C2& + Caption = "4. Analyze" + ForeColor = &H00BF4F59& + Height = 255 + Left = 120 + TabIndex = 92 + Tag = "1044" + Top = 1800 + Width = 2140 + End + Begin VB.Label Label12 + BackStyle = 0 'Transparent + Caption = "Steps" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Index = 5 + Left = 120 + TabIndex = 54 + Tag = "1040" + Top = 240 + Width = 1335 + End + Begin VB.Label Label9 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "2. Documents" + ForeColor = &H00BF4F59& + Height = 255 + Index = 3 + Left = 120 + TabIndex = 47 + Tag = "1042" + Top = 1080 + Width = 2140 + End + Begin VB.Label Label8 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "3. Results" + ForeColor = &H00BF4F59& + Height = 255 + Index = 3 + Left = 120 + TabIndex = 46 + Tag = "1043" + Top = 1440 + Width = 2140 + End + Begin VB.Label Label7 + BackColor = &H00EED3C2& + BackStyle = 0 'Transparent + Caption = "1. Introduction" + ForeColor = &H00BF4F59& + Height = 255 + Index = 3 + Left = 120 + TabIndex = 45 + Tag = "1041" + Top = 720 + Width = 2140 + End + Begin VB.Line Line3 + Index = 3 + X1 = 120 + X2 = 2280 + Y1 = 480 + Y2 = 480 + End + End + Begin VB.Label lblSkippedOld + Caption = "Skipped <TOPIC> documets, because they were too old" + Height = 195 + Left = 3180 + TabIndex = 60 + Top = 2880 + Width = 4935 + End + Begin VB.Label lblSetupDone + AutoSize = -1 'True + Caption = "Run the analysis and view the results" + BeginProperty Font + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 195 + Left = 2880 + TabIndex = 96 + Tag = "1400" + Top = 240 + Width = 4905 + WordWrap = -1 'True + End + Begin VB.Label lblNumPPT + Caption = "<TOPIC> Presentations" + Height = 255 + Left = 4620 + TabIndex = 88 + Tag = "1409" + Top = 2280 + Width = 3375 + End + Begin VB.Label lblNumPOT + Caption = "<TOPIC> Templates" + Height = 255 + Left = 4620 + TabIndex = 87 + Tag = "1403" + Top = 2550 + Width = 3375 + End + Begin VB.Label lblNumXLS + Caption = "<TOPIC> Spreadsheets" + Height = 255 + Left = 4620 + TabIndex = 86 + Tag = "1408" + Top = 1680 + Width = 3375 + End + Begin VB.Label lblNumXLT + Caption = "<TOPIC> Templates" + Height = 255 + Left = 4620 + TabIndex = 85 + Tag = "1403" + Top = 1950 + Width = 3375 + End + Begin VB.Label Label16 + AutoSize = -1 'True + Caption = "PowerPoint" + Height = 195 + Left = 3360 + TabIndex = 82 + Tag = "1213" + Top = 2280 + Width = 1095 + WordWrap = -1 'True + End + Begin VB.Label Label13 + Caption = "Word" + Height = 705 + Index = 10 + Left = 0 + TabIndex = 81 + Tag = "1207" + Top = 0 + Width = 1245 + End + Begin VB.Label Label13 + Caption = "Excel" + Height = 705 + Index = 9 + Left = 0 + TabIndex = 80 + Tag = "1210" + Top = 810 + Width = 1245 + End + Begin VB.Label Label13 + Caption = "PowerPoint" + Height = 585 + Index = 8 + Left = 0 + TabIndex = 79 + Tag = "1213" + Top = 1620 + Width = 1245 + End + Begin VB.Label Label13 + Caption = "Word" + Height = 585 + Index = 7 + Left = 0 + TabIndex = 78 + Tag = "1207" + Top = 0 + Width = 1245 + End + Begin VB.Label Label13 + Caption = "Excel" + Height = 585 + Index = 6 + Left = 0 + TabIndex = 77 + Tag = "1210" + Top = 810 + Width = 1245 + End + Begin VB.Label Label13 + Caption = "PowerPoint" + Height = 465 + Index = 4 + Left = 0 + TabIndex = 76 + Tag = "1213" + Top = 1620 + Width = 1245 + End + Begin VB.Label lblNumTemplates + Caption = "<TOPIC> Templates" + Height = 255 + Left = 4620 + TabIndex = 52 + Tag = "1403" + Top = 1350 + Width = 3375 + End + Begin VB.Label lblNumDocs + Caption = "<TOPIC> Documents" + Height = 255 + Left = 4620 + TabIndex = 51 + Tag = "1402" + Top = 1080 + Width = 3375 + End + Begin VB.Line Line6 + BorderColor = &H00808080& + X1 = 2640 + X2 = 8040 + Y1 = 3270 + Y2 = 3270 + End + Begin VB.Label Label15 + AutoSize = -1 'True + Caption = "Excel" + Height = 195 + Left = 3360 + TabIndex = 50 + Tag = "1210" + Top = 1680 + Width = 1095 + WordWrap = -1 'True + End + Begin VB.Label Label14 + AutoSize = -1 'True + Caption = "Word" + Height = 195 + Left = 3360 + TabIndex = 49 + Tag = "1207" + Top = 1080 + Width = 1110 + WordWrap = -1 'True + End + Begin VB.Label lblTotalNumDocs + AutoSize = -1 'True + Caption = "A total of <TOPIC> documents will be analyzed:" + Height = 195 + Left = 3180 + TabIndex = 48 + Tag = "1401" + Top = 660 + Width = 4800 + WordWrap = -1 'True + End + Begin VB.Line Line2 + BorderColor = &H00808080& + Index = 3 + X1 = 2550 + X2 = 2550 + Y1 = 0 + Y2 = 4920 + End + End + Begin VB.PictureBox picNav + Align = 2 'Align Bottom + Appearance = 0 'Flat + BorderStyle = 0 'None + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + ForeColor = &H80000008& + Height = 570 + Left = 0 + ScaleHeight = 570 + ScaleWidth = 8175 + TabIndex = 4 + TabStop = 0 'False + Top = 4950 + Width = 8175 + Begin VB.CommandButton cmdNav + Caption = "Finish" + Height = 312 + Index = 4 + Left = 5325 + MaskColor = &H00000000& + TabIndex = 14 + Tag = "1023" + Top = 120 + Width = 1320 + End + Begin VB.CommandButton cmdNav + Caption = "Next >>" + Height = 312 + Index = 3 + Left = 3870 + MaskColor = &H00000000& + TabIndex = 13 + Tag = "1022" + Top = 120 + Width = 1320 + End + Begin VB.CommandButton cmdNav + Caption = "<< Back" + Height = 312 + Index = 2 + Left = 2535 + MaskColor = &H00000000& + TabIndex = 12 + Tag = "1021" + Top = 120 + Width = 1320 + End + Begin VB.CommandButton cmdNav + Cancel = -1 'True + Caption = "Cancel" + Height = 312 + Index = 1 + Left = 6750 + MaskColor = &H00000000& + TabIndex = 15 + Tag = "1024" + Top = 120 + Width = 1320 + End + End + Begin VB.Label Label18 + Caption = "<TOPIC> Documents" + Height = 255 + Left = 0 + TabIndex = 84 + Top = 0 + Width = 2085 + WordWrap = -1 'True + End + Begin VB.Label Label17 + Caption = "<TOPIC> Templates" + Height = 255 + Left = 0 + TabIndex = 83 + Top = 390 + Width = 3615 + WordWrap = -1 'True + End + Begin VB.Line Line4 + BorderColor = &H00808080& + X1 = 0 + X2 = 8160 + Y1 = 4920 + Y2 = 4920 + End +End +Attribute VB_Name = "frmWizard" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +' ******************************************************************************* +' * +' * Copyright 2000, 2010 Oracle and/or its affiliates. All rights reserved. Use of this +' * product is subject to license terms. +' * +' ******************************************************************************* + +Option Explicit + +Const TOPIC_STR = "<TOPIC>" +Const TOPIC2_STR = "<TOPIC2>" +Const CR_STR = "<CR>" +Const CDEBUG_LEVEL_DEFAULT = 1 'Will output all Debug output to analysis.log file +Const CSUPPORTED_VERSION = 9# + +Const NUM_STEPS = 4 + +Const CAPPNAME_WORD = "Word" +Const CAPPNAME_EXCEL = "Excel" +Const CAPPNAME_POWERPOINT = "PowerPoint" +Const CANALYZING = "Analyzing" + +Const BTN_CANCEL = 1 +Const BTN_BACK = 2 +Const BTN_NEXT = 3 +Const BTN_FINISH = 4 + +Const STEP_INTRO = 0 +Const STEP_1 = 1 +Const STEP_2 = 2 +Const STEP_FINISH = 3 + +Const DIR_NONE = 0 +Const DIR_BACK = 1 +Const DIR_NEXT = 2 + +Const CPRODUCTNAME_STR = "<PRODUCTNAME>" + +Const CSTR_ANALYSIS_LOG_DONE = "Done" + +Const CINPUT_DIR = "indir" +Const COUTPUT_DIR = "outdir" +Const CRESULTS_FILE = "resultsfile" +Const CLOG_FILE = "logfile" +Const CRESULTS_TEMPLATE = "resultstemplate" +Const CRESULTS_EXIST = "resultsexist" +Const CPROMPT_FILE = "promptfile" +Const COVERWRITE_FILE = "overwritefile" +Const CAPPEND_FILE = "appendfile" +Const CNEW_RESULTS_FILE = "newresultsfile" +Const CINCLUDE_SUBDIRS = "includesubdirs" +Const CDEBUG_LEVEL = "debuglevel" +Const CTYPE_WORDDOC = "typeworddoc" +Const CTYPE_WORDDOT = "typeworddot" +Const CTYPE_EXCELDOC = "typeexceldoc" +Const CTYPE_EXCELDOT = "typeexceldot" +Const CTYPE_PPDOC = "typepowerpointdoc" +Const CTYPE_PPDOT = "typepowerpointdot" +Const COUTPUT_TYPE = "outputtype" +Const COUTPUT_TYPE_XLS = "xls" +Const COUTPUT_TYPE_XML = "xml" +Const COUTPUT_TYPE_BOTH = "both" +Const CVERSION = "version" +Const CDOPREPARE = "prepare" +Const CTITLE = "title" +Const CIGNORE_OLD_DOCS = "ignoreolddocuments" +Const CISSUE_LIMIT = "issuesmonthlimit" +Const CISSUE_LIMIT_DAW = 6 +Private mIssueLimit As Integer +Const CDEFAULT_PASSWORD = "defaultpassword" +Const CSTR_TEST_PASSWORD = "test" +Private mDefaultPassword As String + +Const CLAST_CHECKPOINT As String = "LastCheckpoint" +Const CNEXT_FILE As String = "NextFile" +Const C_ABORT_ANALYSIS As String = "AbortAnalysis" + +Const CNUMBER_TOTAL_DOCS = "total_numberdocs" +Const CNUMBER_DOCS_DOC = "numberdocs_doc" +Const CNUMBER_TEMPLATES_DOT = "numbertemplates_dot" +Const CNUMBER_DOCS_XLS = "numberdocs_xls" +Const CNUMBER_TEMPLATES_XLT = "numbertemplates_xlt" +Const CNUMBER_DOCS_PPT = "numberdocs_ppt" +Const CNUMBER_TEMPLATES_POT = "numbertemplates_pot" +Const CSTART_TIME = "start" +Const CEND_TIME = "end" +Const CELAPSED_TIME = "time_for_analysis" +Const CWINVERSION = "win_version" +Const CUSER_LOCALE_INFO = "user_locale" +Const CSYS_LOCALE_INFO = "system_locale" +Const CWORD_VERSION = "word_ver" +Const CEXCEL_VERSION = "excel_ver" +Const CPOWERPOINT_VERSION = "powerpoint_ver" +Const CNOT_INSTALLED = "not installed" + +Const CRESULTS_FILE_EXTENSION = ".xls" +Const CCONFIG_BACKUP_EXT = "_bak" +Const CDEFAULT_README_NAME = "UserGuide" + +Const C_DOCS_LESS_3_MONTH = "DocumentsYoungerThan3Month" +Const C_DOCS_LESS_6_MONTH = "DocumentsYoungerThan6Month" +Const C_DOCS_LESS_12_MONTH = "DocumentsYoungerThan12Month" +Const C_DOCS_MORE_12_MONTH = "DocumentsOlderThan12Month" + +'module level vars +Dim mnCurStep As Integer +Dim mbTrue As Boolean +Dim mbFalse As Boolean +Dim mLblSteps As String +Dim mChbSubdirs As String + +Dim mWordDocCount As Long +Dim mExcelDocCount As Long +Dim mPPDocCount As Long + +Dim mWordTemplateCount As Long +Dim mExcelTemplateCount As Long +Dim mPPTemplateCount As Long +Dim mTotalDocCount As Long +Dim mIgnoredDocCount As Long + +Public VBInst As VBIDE.VBE +Dim mbFinishOK As Boolean +Dim mbAllowExit As Boolean +Private mStrTrue As String +Private mLogFilePath As String +Private mDebugLevel As String +Private mIniFilePath As String +Private mbDocCountCurrent As Boolean +Private mbDoPrepare As Boolean + +Dim mDocFiles As CollectedFiles + +Private Declare Sub InitCommonControls Lib "comctl32" () +Private Declare Function GetTickCount Lib "kernel32" () As Long +Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) + +Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000 + +Private Declare Function FormatMessage Lib "kernel32" Alias _ + "FormatMessageA" (ByVal dwFlags As Long, lpSource As Long, _ + ByVal dwMessageId As Long, ByVal dwLanguageId As Long, _ + ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Any) As Long + + +Private Const HKEY_CURRENT_USER As Long = &H80000001 +Private Const HKEY_LOCAL_MACHINE As Long = &H80000002 + +Const WORD_APP = "word" +Const EXCEL_APP = "excel" +Const PP_APP = "pp" +Const REG_KEY_APP_PATH = "Software\Microsoft\Windows\CurrentVersion\App Paths\" + + +Function GetAppPath(myApp As String) As String + Dim myPath As String + + If (myApp = WORD_APP) Then + myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "winword.exe", "") + ElseIf (myApp = EXCEL_APP) Then + myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "excel.exe", "") + ElseIf (myApp = PP_APP) Then + myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "powerpnt.exe", "") + Else + MsgBox "Unknown application: " & myApp, vbCritical + Exit Function + End If + + If (myPath = "") Then + If (myApp = WORD_APP) Then + myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "winword.exe", "") + ElseIf (myApp = EXCEL_APP) Then + myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "excel.exe", "") + ElseIf (myApp = PP_APP) Then + myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "powerpnt.exe", "") + End If + End If + + GetAppPath = myPath +End Function + +Function GetDriverDoc(myApp As String) As String + Dim myPath As String + Dim errStr As String + Dim fso As New FileSystemObject + + If (myApp = WORD_APP) Then + myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE) + ElseIf (myApp = EXCEL_APP) Then + myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE) + ElseIf (myApp = PP_APP) Then + myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) + Else + MsgBox "Unknown application: " & myApp, vbCritical + GoTo FinalExit + End If + + If Not fso.FileExists(myPath) Then + errStr = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _ + TOPIC_STR, myPath, CR_STR, Chr(13)) + WriteDebug errStr + MsgBox errStr, vbCritical + GoTo FinalExit + End If + + GetDriverDoc = myPath + +FinalExit: + Set fso = Nothing +End Function + + + + +Private Function AutomationMessageText(lCode As Long) As String + Dim sRtrnCode As String + Dim lRet As Long + + sRtrnCode = Space$(256) + lRet = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&, lCode, 0&, _ + sRtrnCode, 256&, 0&) + If lRet > 0 Then + AutomationMessageText = Left(sRtrnCode, lRet) + Else + AutomationMessageText = "Error not found." + End If + +End Function + +Private Sub btnBrowseDirInput_Click() + Dim folder As String + Dim StartDir As String + + If Len(txtInputDir.Text) > 0 Then + StartDir = txtInputDir.Text + End If + + folder = BrowseForFolder(Me, GetResString(BROWSE_FOR_DOC_DIR_ID), StartDir) + If Len(folder) = 0 Then + Exit Sub 'User Selected Cancel + End If + txtInputDir.Text = folder + txtInputDir.ToolTipText = folder + + If Len(txtOutputDir.Text) = 0 Then + txtOutputDir.Text = folder + txtOutputDir.ToolTipText = folder + End If +End Sub + +Private Sub btnBrowseDirOut_Click() + Dim folder As String + Dim StartDir As String + + If Len(txtOutputDir.Text) > 0 Then + StartDir = txtOutputDir.Text + End If + + folder = BrowseForFolder(Me, GetResString(BROWSE_FOR_RES_DIR_ID), StartDir) + If Len(folder) = 0 Then + Exit Sub 'User Selected Cancel + End If + txtOutputDir.Text = folder + txtOutputDir.ToolTipText = folder +End Sub + +Private Sub btnPrepare_Click() + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "btnPrepare_Click" + + mbDoPrepare = True + mbAllowExit = True + + btnViewResults.Enabled = False + btnRunAnalysis.Enabled = False + btnPrepare.Enabled = False + + cmdNav(BTN_CANCEL).Enabled = False + cmdNav(BTN_BACK).Enabled = False + cmdNav(BTN_NEXT).Enabled = False + cmdNav(BTN_FINISH).Enabled = False + btnPrepare.Caption = GetResString(RUNBTN_RUNNING_ID) + + Dim str As String + + If RunAnalysis(True) Then + cmdNav(BTN_FINISH).Enabled = True + btnRunAnalysis.Enabled = True + btnViewResults.Enabled = True + btnPrepare.Enabled = True + btnViewResults.SetFocus + str = ReplaceTopic2Tokens(GetResString(RID_STR_ENG_OTHER_PREPARE_COMPLETED_PREP_ID), _ + TOPIC_STR, getOutputDir, CR_STR, Chr(13)) + MsgBox str, vbInformation + Else + cmdNav(BTN_FINISH).Enabled = False + btnRunAnalysis.Enabled = True + btnViewResults.Enabled = False + btnPrepare.Enabled = False + End If + +FinalExit: + mbDoPrepare = False + cmdNav(BTN_CANCEL).Enabled = True + cmdNav(BTN_BACK).Enabled = True + cmdNav(BTN_NEXT).Enabled = False + btnPrepare.Caption = GetResString(PREPAREBTN_START_ID) + Exit Sub + +HandleErrors: + cmdNav(BTN_FINISH).Enabled = False + btnRunAnalysis.Enabled = True + btnViewResults.Enabled = False + btnPrepare.Enabled = False + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + + +Private Sub cmdNav_Click(Index As Integer) + On Error GoTo HandleError + Dim currentFunctionName As String + currentFunctionName = "cmdNav_Click" + Dim nAltStep As Integer + Dim rc As Long + Dim fso As Scripting.FileSystemObject + + Select Case Index + Case BTN_CANCEL + 'Copy backup configuration file over existing + If fso Is Nothing Then + Set fso = New Scripting.FileSystemObject + End If + If fso.FileExists(mIniFilePath & CCONFIG_BACKUP_EXT) Then + DeleteFile mIniFilePath + AttemptToCopyFile mIniFilePath & CCONFIG_BACKUP_EXT, mIniFilePath + End If + Set mDocFiles = Nothing + + Unload Me + + Case BTN_BACK + nAltStep = mnCurStep - 1 + SetStep nAltStep, DIR_BACK + + Case BTN_NEXT + nAltStep = mnCurStep + 1 + SetStep nAltStep, DIR_NEXT + + Case BTN_FINISH + If (Not mbAllowExit) Then + Dim str As String + Dim response As Integer + + str = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYSE_NOT_RUN), CR_STR, Chr(13)) + response = MsgBox(str, vbOKCancel + vbInformation) + If response = vbOK Then ' User chose Ok. + mbAllowExit = True + End If + End If + + If (mbAllowExit) Then + DeleteFile mIniFilePath & CCONFIG_BACKUP_EXT + Set mDocFiles = Nothing + Unload Me + End If + End Select + +FinalExit: + Set fso = Nothing + Exit Sub + +HandleError: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + + Resume FinalExit +End Sub + +Private Sub btnRunAnalysis_Click() + On Error GoTo HandleErrors + Dim bViewResults As Boolean + Dim str As String + Dim response As Integer + + btnViewResults.Enabled = False + btnRunAnalysis.Enabled = False + btnPrepare.Enabled = False + bViewResults = False + mbAllowExit = True + + cmdNav(BTN_CANCEL).Enabled = False + cmdNav(BTN_BACK).Enabled = False + cmdNav(BTN_NEXT).Enabled = False + cmdNav(BTN_FINISH).Enabled = False + btnRunAnalysis.Caption = GetResString(RUNBTN_RUNNING_ID) + + If RunAnalysis(False) Then + cmdNav(BTN_FINISH).Enabled = True + btnRunAnalysis.Enabled = True + btnViewResults.Enabled = True + btnPrepare.Enabled = True + btnViewResults.SetFocus + btnRunAnalysis.Caption = GetResString(RUNBTN_START_ID) + + str = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYZE_COMPLETED_ID), CR_STR, Chr(13)) + response = MsgBox(str, vbOKCancel + vbInformation) + If response = vbOK Then ' User chose Ok. + bViewResults = True + End If + Else + btnRunAnalysis.Enabled = True + btnViewResults.Enabled = False + btnPrepare.Enabled = False + End If + +FinalExit: + cmdNav(BTN_CANCEL).Enabled = True + cmdNav(BTN_BACK).Enabled = True + cmdNav(BTN_NEXT).Enabled = False + btnRunAnalysis.Caption = GetResString(RUNBTN_START_ID) + + If bViewResults Then + btnViewResults_Click + End If + + Exit Sub + +HandleErrors: + cmdNav(BTN_FINISH).Enabled = False + btnRunAnalysis.Enabled = True + btnViewResults.Enabled = False + btnPrepare.Enabled = False + WriteDebug "Document Analysis: View Analysis Results" & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Private Sub btnViewResults_Click() + On Error GoTo HandleErrors + Dim resultsFile As String + Dim fso As New FileSystemObject + Dim str As String + + mbAllowExit = True + + resultsFile = getOutputDir & "\" & txtResultsName.Text + + If GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_XML Or _ + GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_BOTH Then + + Dim base As String + Dim path As String + base = fso.GetParentFolderName(resultsFile) & "\" & fso.GetBaseName(txtResultsName.Text) + If CheckWordDocsToAnalyze Then + path = base & "_" & CAPPNAME_WORD & "." & COUTPUT_TYPE_XML + End If + If CheckExcelDocsToAnalyze Then + If path <> "" Then path = path & vbLf + path = path & base & "_" & CAPPNAME_EXCEL & "." & COUTPUT_TYPE_XML + End If + If CheckPPDocsToAnalyze Then + If path <> "" Then path = path & vbLf + path = path & base & "_" & CAPPNAME_POWERPOINT & "." & COUTPUT_TYPE_XML + End If + + str = ReplaceTopic2Tokens(GetResString(XML_RESULTS_ID), _ + TOPIC_STR, path, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbInformation + If GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_XML Then + Resume FinalExit + End If + End If + + If Not fso.FileExists(resultsFile) Then + str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_RESULTS_DOC), _ + TOPIC_STR, resultsFile, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + Resume FinalExit + End If + + Dim xl As Excel.application + Set xl = New Excel.application + xl.Visible = True + xl.Workbooks.Open resultsFile + +FinalExit: + Set xl = Nothing + Set fso = Nothing + + Exit Sub +HandleErrors: + WriteDebug "Document Analysis: View Analysis Results" & Err.Number & " " & Err.Description & " " & Err.Source +End Sub + +Private Sub Form_Activate() + Dim currentFunctionName As String + Dim missingFile As String + currentFunctionName = "Form_Activate" + On Error GoTo HandleErrors + + If Not CheckNeededFiles(missingFile) Then + Dim str As String + str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _ + TOPIC_STR, missingFile, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + + End 'Exit application - some needed files are missing + End If + +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + GoTo FinalExit +End Sub + +Private Sub Form_Initialize() + Dim currentFunctionName As String + currentFunctionName = "Form_Initialize" + On Error GoTo ErrorHandler + Call InitCommonControls 'Use Windows XP Visual Style + +FinalExit: + Exit Sub + +ErrorHandler: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + GoTo FinalExit +End Sub + +Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) + If KeyCode = vbKeyF1 Then + 'cmdNav_Click BTN_HELP + End If +End Sub + +Private Sub Form_Load() + Const COS_CHECK = "oscheck" + + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "Form_Load" + + Dim fso As New FileSystemObject + Dim i As Integer + 'init all vars + mbFinishOK = False + mbTrue = True + mbFalse = False + + mLogFilePath = GetLogFilePath + mIniFilePath = GetIniFilePath + mbDocCountCurrent = False + mbDoPrepare = False + mbAllowExit = False + + 'Check OS before running + Dim bOSCheck As Boolean + bOSCheck = IIf(GetIniSetting(COS_CHECK) = "False", False, True) + + If bOSCheck Then + If Not IsWin98Plus Then + Dim str As String + Dim winVer As RGB_WINVER + str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_OSVERSION), _ + TOPIC_STR, GetWinVersion(winVer), CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + + End 'Exit application - unsupported OS + End If + Else + Err.Clear + WriteDebug "IsWin2000Plus OS Check bypassed by analysis.ini oscheck=False setting" + End If + + + For i = 0 To NUM_STEPS - 1 + fraStep(i).Left = -10000 + Next + + 'Load All string info for Form + LoadResStrings Me + + frmWizard.Caption = ReplaceTopicTokens(GetResString(TITLE_ID), CPRODUCTNAME_STR, _ + GetResString(PRODUCTNAME_ID)) + lblIntroduction1.Caption = ReplaceTopicTokens(GetResString(INTRO1_ID), CPRODUCTNAME_STR, _ + GetResString(PRODUCTNAME_ID)) + mLblSteps = GetResString(LBL_STEPS_ID) + mChbSubdirs = GetResString(CHK_SUBDIRS_ID) + + ' Setup Doc Preparation specific strings + If gBoolPreparation Then + ' Steps + lblStep1_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) + lblStep2_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) + lblStep3_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) + lblStep4_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) + + ' Preparation - Step 1. Introduction + lblIntroduction1.Caption = ReplaceTopicTokens(GetResString(RID_STR_ENG_INTRODUCTION_INTRO1_PREP_ID), CPRODUCTNAME_STR, _ + GetResString(PRODUCTNAME_ID)) + lblIntroduction2.Caption = GetResString(RID_STR_ENG_INTRODUCTION_INTRO2_PREP_ID) + lblIntroduction3.Caption = GetResString(RID_STR_ENG_INTRODUCTION_INTRO3_PREP_ID) + + ' Preparation - Step 2. Documents + lblChooseDocs.Caption = GetResString(RID_STR_ENG_DOCUMENTS_CHOOSE_DOCUMENTS_PREP_ID) + lblDocTypes.Caption = GetResString(RID_STR_ENG_DOCUMENTS_CHOOSE_DOC_TYPES_PREP_ID) + 'mChbSubdirs = GetResString(RID_STR_ENG_DOCUMENTS_INCLUDE_SUBDIRECTORIES_PREP_ID) + chkIgnoreOld.Caption = GetResString(RID_STR_IGNORE_OLDER_CB_ID) + + cbIgnoreOld.Clear + cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_3_MONTHS_ID)) + cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_6_MONTHS_ID)) + cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_12_MONTHS_ID)) + cbIgnoreOld.ListIndex = 0 + + ' Preparation - Step 3. Results + lblChooseResults.Caption = GetResString(RID_STR_ENG_RESULTS_CHOOSE_OPTIONS_PREP_ID) + txtResultsName.Text = GetResString(RID_STR_ENG_RESULTS_ANALYSIS_XLS_PREP_ID) + + 'Show Append option + rdbResultsAppend.Visible = True + + ' Preparation - Step 4. Analysis + lblSetupDone.Caption = GetResString(RID_STR_ENG_ANALYZE_SETUP_COMPLETE_PREP_ID) + btnPrepare.Visible = True + Else + ' The next line is a work around for a wrong translated string and should be removed + ' when RID_STR_ENG_RESULTS_CHOOSE_OPTIONS has been corrected + lblChooseResults.Caption = GetResString(RID_STR_ENG_RESULTS_CHOOSE_OPTIONS_PREP_ID) + mDefaultPassword = IIf(GetIniSetting(CDEFAULT_PASSWORD) = "", _ + CSTR_TEST_PASSWORD, GetIniSetting(CDEFAULT_PASSWORD)) + End If + + SetStep 0, DIR_NEXT + Dim tmpStr As String + + 'Setup Params + tmpStr = GetIniSetting(CINPUT_DIR) + If tmpStr <> "" Then + txtInputDir.Text = tmpStr + txtInputDir.ToolTipText = tmpStr + End If + tmpStr = GetIniSetting(COUTPUT_DIR) + If tmpStr <> "" Then + If Right(tmpStr, 1) = ":" And Len(tmpStr) = 2 Then + tmpStr = tmpStr & "\" + End If + txtOutputDir.Text = tmpStr + txtOutputDir.ToolTipText = tmpStr + End If + tmpStr = GetIniSetting(CRESULTS_FILE) + If tmpStr <> "" Then txtResultsName.Text = tmpStr + + rdbResultsPrompt.value = False + rdbResultsOverwrite.value = False + rdbResultsAppend.value = False + Dim resultsSetting As String + resultsSetting = GetIniSetting(CRESULTS_EXIST) + If resultsSetting = CPROMPT_FILE Then + rdbResultsPrompt.value = True + ElseIf resultsSetting = CAPPEND_FILE Then + rdbResultsAppend.value = True + Else + rdbResultsOverwrite.value = True + End If + + chkWordDoc.value = IIf(GetIniSetting(CTYPE_WORDDOC) = CStr(True), vbChecked, 0) + chkWordTemplate.value = IIf(GetIniSetting(CTYPE_WORDDOT) = CStr(True), vbChecked, 0) + chkExcelDoc.value = IIf(GetIniSetting(CTYPE_EXCELDOC) = CStr(True), vbChecked, 0) + chkExcelTemplate.value = IIf(GetIniSetting(CTYPE_EXCELDOT) = CStr(True), vbChecked, 0) + chkPPDoc.value = IIf(GetIniSetting(CTYPE_PPDOC) = CStr(True), vbChecked, 0) + chkPPTemplate.value = IIf(GetIniSetting(CTYPE_PPDOT) = CStr(True), vbChecked, 0) + chkIncludeSubdirs.value = IIf(GetIniSetting(CINCLUDE_SUBDIRS) = CStr(True), vbChecked, 0) + mDebugLevel = IIf(GetIniSetting(CDEBUG_LEVEL) = "", CDEBUG_LEVEL_DEFAULT, GetIniSetting(CDEBUG_LEVEL)) + chkIgnoreOld.value = IIf(GetIniSetting(CIGNORE_OLD_DOCS) = CStr(True), vbChecked, 0) + + mIssueLimit = IIf(GetIniSetting(CISSUE_LIMIT) = "", CISSUE_LIMIT_DAW, GetIniSetting(CISSUE_LIMIT)) + If (mIssueLimit <= 3) Then + cbIgnoreOld.ListIndex = 0 + ElseIf (mIssueLimit <= 6) Then + cbIgnoreOld.ListIndex = 1 + Else + cbIgnoreOld.ListIndex = 2 + End If + + 'Always ensure at least one doc type is selected on startup + If (chkWordDoc.value <> vbChecked) And _ + (chkWordTemplate.value <> vbChecked) And _ + (chkExcelDoc.value <> vbChecked) And _ + (chkExcelTemplate.value <> vbChecked) And _ + (chkPPDoc.value <> vbChecked) And _ + (chkPPTemplate.value <> vbChecked) Then + + chkWordDoc.value = vbChecked + End If + +FinalExit: + Set fso = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Private Sub SetStep(nStep As Integer, nDirection As Integer) + On Error GoTo HandleError + Const driveTypeIsCDROM = 4 + Dim val As String + Dim fso As Scripting.FileSystemObject + Set fso = New Scripting.FileSystemObject + Dim drive + + + mbDocCountCurrent = False + + Select Case nStep + Case STEP_INTRO + 'MsgBox "Enter Intro" + Case STEP_1 + 'Leave Introduction + 'Workaround - resource bug for SubDir checkbox, have to set it explicitly + chkIncludeSubdirs.Caption = mChbSubdirs + Case STEP_2 + 'Leave Documents + + Set drive = fso.GetDrive(fso.GetDriveName(txtInputDir.Text)) + If drive.DriveType = driveTypeIsCDROM Then + If Not drive.IsReady Then + MsgBox GetResString(ERR_CDROM_NOT_READY), vbCritical + Exit Sub + End If + End If + + If txtInputDir.Text = "" Or Not fso.FolderExists(txtInputDir.Text) Then ' fso.FolderExists() has replaced dir() + MsgBox ReplaceTopicTokens(GetResString(ERR_NO_DOC_DIR), _ + CR_STR, Chr(13)), vbCritical + Exit Sub + End If + + If Not CheckUserChosenDocsToAnalyze Then + MsgBox GetResString(ERR_NO_DOC_TYPES), vbCritical + Exit Sub + End If + 'Expand directory name only without path to full path + txtInputDir.Text = fso.GetAbsolutePathName(txtInputDir.Text) + + If txtOutputDir.Text = "" Then + txtOutputDir.Text = txtInputDir.Text + End If + + mbFinishOK = False + + 'Workaround - label resource bug for Steps, have to set it explicitly + Label12(0).Caption = mLblSteps + Label12(5).Caption = mLblSteps + Case STEP_FINISH + 'Leave Results + If Not CheckResultsDir(getOutputDir) Then + Exit Sub + End If + + 'Expand directory name only without path to full path + txtOutputDir.Text = fso.GetAbsolutePathName(txtOutputDir) + + 'Check Results file is there and has a valid extension + If fso.GetBaseName(txtResultsName.Text) = "" Then + txtResultsName.Text = GetResString(SETUP_ANALYSIS_XLS_ID) + End If + txtResultsName.Text = fso.GetBaseName(txtResultsName.Text) & CRESULTS_FILE_EXTENSION + + Screen.MousePointer = vbHourglass + DeleteFile mLogFilePath + Set mDocFiles = Nothing + If Not CheckNumberDocsToAnalyze Then + Screen.MousePointer = vbDefault + Exit Sub + End If + + Screen.MousePointer = vbDefault + + btnRunAnalysis.Enabled = True + + If GetNumberOfDocsToAnalyze = 0 Then + btnRunAnalysis.Enabled = False + End If + + 'Backup configuration + If Not AttemptToCopyFile(mIniFilePath, mIniFilePath & CCONFIG_BACKUP_EXT) Then + Exit Sub + End If + + 'Save current Wizard Settings + WriteWizardSettingsToLog mIniFilePath + + 'If results file already exists, enable View and Prepare + If fso.FileExists(getOutputDir & "\" & txtResultsName.Text) Then + btnViewResults.Enabled = True + btnPrepare.Enabled = True + End If + + mbFinishOK = True + End Select + + 'move to new step + fraStep(mnCurStep).Enabled = False + fraStep(nStep).Left = 0 + If nStep <> mnCurStep Then + fraStep(mnCurStep).Left = -10000 + fraStep(mnCurStep).Enabled = False + End If + fraStep(nStep).Enabled = True + + SetNavBtns nStep + Exit Sub + +FinalExit: + Set fso = Nothing + Set drive = Nothing + Exit Sub + +HandleError: + Screen.MousePointer = vbDefault + WriteDebug "Document Analysis: SetStep() " & Err.Number & " " & Err.Description & " " & Err.Source + + Resume FinalExit +End Sub + +Function CheckResultsDir(resultsDir As String) As Boolean + On Error GoTo HandleError + Dim fso As Scripting.FileSystemObject + Set fso = New Scripting.FileSystemObject + Const driveTypeIsCDROM = 4 + Const readOnlyFolderRemainder = 1 + Dim drive + CheckResultsDir = False + + If resultsDir = "" Then + MsgBox ReplaceTopicTokens(GetResString(ERR_NO_RESULTS_DIRECTORY), _ + CR_STR, Chr(13)), vbCritical + CheckResultsDir = False + Exit Function + End If + + Set drive = fso.GetDrive(fso.GetDriveName(resultsDir)) + If drive.DriveType = driveTypeIsCDROM Then 'If CD-ROM Drive Then + Dim Msg1 As String + Msg1 = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _ + TOPIC_STR, txtResultsName.Text, CR_STR, Chr(13)) + MsgBox Msg1, vbCritical + CheckResultsDir = False + Exit Function + End If + + + If Not fso.FolderExists(resultsDir) Then + Dim Msg, Style, response + + Msg = ReplaceTopicTokens(GetResString(ERR_NO_RES_DIR), CR_STR, Chr(13)) + Style = vbYesNo + vbQuestion + vbDefaultButton1 ' Define buttons. + + response = MsgBox(Msg, Style) + If response = vbYes Then ' User chose Yes. + If Not CreateDir(getOutputDir) Then + CheckResultsDir = False + Exit Function + End If + Else ' User chose No. + CheckResultsDir = False + Exit Function + End If + End If + + Dim testFile As String + testFile = resultsDir & "\" & fso.GetTempName + Do While fso.FileExists(testFile) + testFile = resultsDir & "\" & fso.GetTempName + Loop + + On Error GoTo HandleReadOnly + Dim aText As TextStream + Set aText = fso.CreateTextFile(testFile, False, False) + aText.WriteLine ("Dies ist ein Test.") + aText.Close + fso.DeleteFile (testFile) + +' GetAttr doesn't work reliable ( returns read only for 'my Documents' and rw for read only network folder +' If ((GetAttr(resultsDir) Mod 2) = readOnlyFolderRemainder) Then 'If the attribute is odd then the folder is read-only +' MsgBox GetResString(ERR_NO_WRITE_TO_READ_ONLY_FOLDER), vbCritical +' CheckResultsDir = False +' Exit Function +' End If + + CheckResultsDir = True + + Exit Function +HandleError: + WriteDebug "Document Analysis: CheckResultsDir() " & Err.Number & " " & Err.Description & " " & Err.Source + CheckResultsDir = False + Exit Function +HandleReadOnly: + Dim str As String + str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _ + TOPIC_STR, txtResultsName.Text, CR_STR, Chr(13)) + MsgBox str, vbCritical + CheckResultsDir = False + Exit Function +End Function + +Function CheckUserChosenDocsToAnalyze() As Boolean + CheckUserChosenDocsToAnalyze = Not ((chkWordDoc.value <> vbChecked) And (chkWordTemplate.value <> vbChecked) And _ + (chkExcelDoc.value <> vbChecked) And (chkExcelTemplate.value <> vbChecked) And _ + (chkPPDoc.value <> vbChecked) And (chkPPTemplate.value <> vbChecked)) +End Function + +Function AttemptToCopyFile(Source As String, dest As String) As Boolean + On Error GoTo HandleErrors + Dim fso As Scripting.FileSystemObject + Set fso = New Scripting.FileSystemObject + + If fso.FileExists(Source) Then + fso.CopyFile Source, dest + End If + + 'True if no source or copy succeeded + AttemptToCopyFile = True + +FinalExit: + Set fso = Nothing + Exit Function + +HandleErrors: + AttemptToCopyFile = False + Dim str As String + str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _ + TOPIC_STR, mIniFilePath & CCONFIG_BACKUP_EXT, CR_STR, Chr(13)) + Resume FinalExit + +End Function + +Function CreateDir(dir As String) As Boolean + On Error GoTo HandleErrors + Dim fso As Scripting.FileSystemObject + Set fso = New Scripting.FileSystemObject + + fso.CreateFolder (dir) + + CreateDir = True + +FinalExit: + Set fso = Nothing + Exit Function + +HandleErrors: + Dim str As String + str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_DIR), _ + TOPIC_STR, dir, CR_STR, Chr(13)) + Select Case Err.Number + Case 76 + WriteDebug str + MsgBox str, vbCritical + CreateDir = False + Case 58 + 'Don't care if it exists already + CreateDir = True + Case Else + WriteDebug str + MsgBox str, vbCritical + CreateDir = False + End Select + Resume FinalExit + +End Function +Private Sub SetNavBtns(nStep As Integer) + mnCurStep = nStep + + If mnCurStep = 0 Then + cmdNav(BTN_BACK).Enabled = False + cmdNav(BTN_NEXT).Enabled = True + ElseIf mnCurStep = NUM_STEPS - 1 Then + cmdNav(BTN_NEXT).Enabled = False + cmdNav(BTN_BACK).Enabled = True + Else + cmdNav(BTN_BACK).Enabled = True + cmdNav(BTN_NEXT).Enabled = True + End If + + If mbFinishOK Then + cmdNav(BTN_FINISH).Enabled = True + Else + cmdNav(BTN_FINISH).Enabled = False + End If +End Sub +Function CheckForSupportedApp(app As String, lowerVerLimit As Long) As Boolean + Dim appRegStr As String + Dim appVer As Long + appRegStr = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "") + appVer = val(Right(appRegStr, Len(appRegStr) - Len(app & ".Application."))) + If appVer >= lowerVerLimit Then + CheckForSupportedApp = True + Else + CheckForSupportedApp = False + End If +End Function +Function GetAppVersion(app As String) As Long + Dim appRegStr As String + Dim appVer As Long + appRegStr = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "") + GetAppVersion = val(Right(appRegStr, Len(appRegStr) - Len(app & ".Application."))) +End Function +Function GetInstalledApp(app As String) As String + GetInstalledApp = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "") +End Function + +Sub WriteInfoToApplicationLog(wordAppStr As String, excelAppStr As String, ppAppStr As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteInfoToApplicationLog" + + Dim userLCID As Long + userLCID = GetUserDefaultLCID() + Dim sysLCID As Long + sysLCID = GetSystemDefaultLCID() + + WriteToLog CWORD_VERSION, IIf(wordAppStr <> "", wordAppStr, CNOT_INSTALLED) + WriteToLog CEXCEL_VERSION, IIf(excelAppStr <> "", excelAppStr, CNOT_INSTALLED) + WriteToLog CPOWERPOINT_VERSION, IIf(ppAppStr <> "", ppAppStr, CNOT_INSTALLED) + + WriteToLog CUSER_LOCALE_INFO, _ + "langid: " & GetUserLocaleInfo(userLCID, LOCALE_ILANGUAGE) & ": " & _ + GetUserLocaleInfo(userLCID, LOCALE_SENGLANGUAGE) & _ + "-" & GetUserLocaleInfo(userLCID, LOCALE_SENGCOUNTRY) & _ + " abrv: " & GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME) & _ + "-" & GetUserLocaleInfo(userLCID, LOCALE_SISO3166CTRYNAME) & _ + " sdate: " & GetUserLocaleInfo(userLCID, LOCALE_SSHORTDATE) + + WriteToLog CSYS_LOCALE_INFO, _ + "langid: " & GetUserLocaleInfo(sysLCID, LOCALE_ILANGUAGE) & ": " & _ + GetUserLocaleInfo(sysLCID, LOCALE_SENGLANGUAGE) & _ + "-" & GetUserLocaleInfo(sysLCID, LOCALE_SENGCOUNTRY) & _ + " abrv: " & GetUserLocaleInfo(sysLCID, LOCALE_SISO639LANGNAME) & _ + "-" & GetUserLocaleInfo(sysLCID, LOCALE_SISO3166CTRYNAME) & _ + " sdate: " & GetUserLocaleInfo(userLCID, LOCALE_SSHORTDATE) + + Dim myWinVer As RGB_WINVER + GetWinVersion myWinVer + WriteToLog CWINVERSION, myWinVer.VersionName & " " & myWinVer.VersionNo & _ + " " & myWinVer.ServicePack & _ + " build " & myWinVer.BuildNo + WriteToLog CNUMBER_TOTAL_DOCS, CStr(mTotalDocCount) + WriteToLog CNUMBER_DOCS_DOC, CStr(mWordDocCount) + WriteToLog CNUMBER_TEMPLATES_DOT, CStr(mWordTemplateCount) + WriteToLog CNUMBER_DOCS_XLS, CStr(mExcelDocCount) + WriteToLog CNUMBER_TEMPLATES_XLT, CStr(mExcelTemplateCount) + WriteToLog CNUMBER_DOCS_PPT, CStr(mPPDocCount) + WriteToLog CNUMBER_TEMPLATES_POT, CStr(mPPTemplateCount) +FinalExit: + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Function CheckTemplatePath(sMigrationResultsTemplatePath As String, fso As FileSystemObject) As Boolean + If Not fso.FileExists(sMigrationResultsTemplatePath) Then + Dim str As String + str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_RESULTS_TEMPLATE), _ + TOPIC_STR, sMigrationResultsTemplatePath, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + CheckTemplatePath = False + Else + CheckTemplatePath = True + End If +End Function + +Function RunAnalysis(bDoPrepare) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "RunAnalysis" + Dim tstart As Single 'timer var for this routine only + Dim tend As Single 'timer var for this routine only + Dim fso As New FileSystemObject + Dim wordAppStr As String + Dim excelAppStr As String + Dim ppAppStr As String + Dim sMigrationResultsTemplatePath As String + Dim startDate As Variant + Dim bSuccess + + bSuccess = True + startDate = Now + tstart = GetTickCount() + + app.OleRequestPendingMsgText = GetResString(RUNBTN_RUNNING_ID) + app.OleRequestPendingMsgTitle = frmWizard.Caption + + wordAppStr = GetInstalledApp(CAPPNAME_WORD) + excelAppStr = GetInstalledApp(CAPPNAME_EXCEL) + ppAppStr = GetInstalledApp(CAPPNAME_POWERPOINT) + 'Write locale, version info and settings to the Application log + WriteInfoToApplicationLog wordAppStr, excelAppStr, ppAppStr + + 'Check for template + sMigrationResultsTemplatePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESULTS_TEMPLATE_FILE) + If Not CheckTemplatePath(sMigrationResultsTemplatePath, fso) Then + bSuccess = False + GoTo FinalExit + End If + + 'Check for installed Apps + If Not CheckInstalledApps(wordAppStr, excelAppStr, ppAppStr) Then + bSuccess = False + GoTo FinalExit + End If + + If bDoPrepare Then + 'Show MsgBox ( to give apps some time to quit ) + Dim strMsgBox As String + Dim response As Integer + + strMsgBox = ReplaceTopic2Tokens(GetResString(RID_STR_ENG_OTHER_PREPARE_PROMPT_PREP_ID), _ + TOPIC_STR, getOutputDir & "\" & txtResultsName.Text, TOPIC2_STR, getOutputDir) + strMsgBox = ReplaceTopicTokens(strMsgBox, CR_STR, Chr(13)) + response = MsgBox(strMsgBox, Buttons:=vbOKCancel + vbInformation) + + If response <> vbOK Then + bSuccess = False + GoTo FinalExit + End If + End If + + 'Write Wizard Setting to Application log + WriteWizardSettingsToLog mLogFilePath + + 'Write to Analysis ini file - used by driver docs + WriteCommonParamsToLog sMigrationResultsTemplatePath, mLogFilePath, mIniFilePath, fso + + Screen.MousePointer = vbHourglass + ' Doc Counts are setup by CheckNumberDocsToAnalyze() when user moves to Analysis Panel + ' Takes account of user Options selected and inspects source directory + Dim analysisAborted As Boolean + analysisAborted = False + + SetupInputVariables mLogFilePath, fso + + Load ShowProgress + Call ShowProgress.SP_Init(mDocFiles.WordFiles.count + _ + mDocFiles.ExcelFiles.count + _ + mDocFiles.PowerPointFiles.count) + + Dim myOffset As Long + myOffset = 0 + If (mDocFiles.WordFiles.count > 0) Then + bSuccess = AnalyseList(mDocFiles.WordFiles, "word", mIniFilePath, myOffset, analysisAborted) + 'bSuccess = RunWordAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso) + End If + + myOffset = mDocFiles.WordFiles.count + If ((mDocFiles.ExcelFiles.count > 0) And (Not analysisAborted)) Then + bSuccess = bSuccess And _ + AnalyseList(mDocFiles.ExcelFiles, "excel", mIniFilePath, myOffset, analysisAborted) + 'bSuccess = RunExcelAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso) + End If + + myOffset = myOffset + mDocFiles.ExcelFiles.count + If ((mDocFiles.PowerPointFiles.count > 0) And (Not analysisAborted)) Then + bSuccess = bSuccess And _ + AnalyseList(mDocFiles.PowerPointFiles, "pp", mIniFilePath, myOffset, analysisAborted) + 'bSuccess = RunPPAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso) + End If + + SetupInputVariables mLogFilePath, fso + + tend = GetTickCount() + WriteToLog CELAPSED_TIME, (FormatNumber((tend - tstart) / 1000, 0) & " seconds: ") & _ + (FormatNumber((tend - tstart), 0) & " miliseconds") + +FinalExit: + Unload ShowProgress + Screen.MousePointer = vbDefault + WriteToLog CSTART_TIME, CDate(startDate) + WriteToLog CEND_TIME, Now + Set fso = Nothing + + RunAnalysis = bSuccess + Exit Function + +HandleErrors: + bSuccess = False + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function CheckInstalledApps(wordAppStr As String, excelAppStr As String, ppAppStr As String) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + Dim str As String + currentFunctionName = "CheckInstalledApps" + + Dim missingInstalledApps As String + Dim unsupportedApps As String + Dim runningApps As String + Dim bSuccess As Boolean + + bSuccess = False + + If mWordDocCount > 0 Or mWordTemplateCount > 0 Then + If wordAppStr = "" Then 'Word not installed + missingInstalledApps = CAPPNAME_WORD + ElseIf Not CheckForSupportedApp(CAPPNAME_WORD, CSUPPORTED_VERSION) Then + unsupportedApps = CAPPNAME_WORD + ElseIf IsOfficeAppRunning(CAPPNAME_WORD) Then + runningApps = CAPPNAME_WORD + End If + End If + + If excelAppStr = "" Then + If missingInstalledApps <> "" Then missingInstalledApps = missingInstalledApps & ", " + missingInstalledApps = missingInstalledApps & CAPPNAME_EXCEL + ElseIf Not CheckForSupportedApp(CAPPNAME_EXCEL, CSUPPORTED_VERSION) Then + If unsupportedApps <> "" Then unsupportedApps = unsupportedApps & ", " + unsupportedApps = unsupportedApps & CAPPNAME_EXCEL + ElseIf IsOfficeAppRunning(CAPPNAME_EXCEL) Then + If runningApps <> "" Then runningApps = runningApps & ", " + runningApps = runningApps & CAPPNAME_EXCEL + End If + + If mPPDocCount > 0 Or mPPTemplateCount > 0 Then + If ppAppStr = "" Then 'PP not installed + If missingInstalledApps <> "" Then missingInstalledApps = missingInstalledApps & ", " + missingInstalledApps = missingInstalledApps & CAPPNAME_POWERPOINT + ElseIf Not CheckForSupportedApp(CAPPNAME_POWERPOINT, CSUPPORTED_VERSION) Then + If unsupportedApps <> "" Then unsupportedApps = unsupportedApps & ", " + unsupportedApps = unsupportedApps & CAPPNAME_POWERPOINT + ElseIf IsOfficeAppRunning(CAPPNAME_POWERPOINT) Then + If runningApps <> "" Then runningApps = runningApps & ", " + runningApps = runningApps & CAPPNAME_POWERPOINT + End If + End If + + If missingInstalledApps <> "" Then + str = ReplaceTopic2Tokens(GetResString(ERR_NOT_INSTALLED), _ + TOPIC_STR, missingInstalledApps, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + GoTo FinalExit + End If + + If unsupportedApps <> "" Then + str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ + TOPIC_STR, unsupportedApps, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + GoTo FinalExit + End If + + If runningApps <> "" Then + str = ReplaceTopic2Tokens(GetResString(ERR_APPLICATION_IN_USE), _ + TOPIC_STR, runningApps, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + GoTo FinalExit + End If + + 'Check for Excel automation server + If CheckForExcel Then + str = ReplaceTopicTokens(GetResString(ERR_EXCEL_OPEN), _ + CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + bSuccess = True + +FinalExit: + CheckInstalledApps = bSuccess + Exit Function + +HandleErrors: + bSuccess = False + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function RunPPAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean +'DV: do we need this? get some error handling ideas here + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "RunPPAnalysis" + Const APP_PP = "PowerPoint" + Dim str As String + Dim bSuccess + bSuccess = False + + If (chkPPDoc.value <> vbChecked) And (chkPPTemplate.value <> vbChecked) Then + RunPPAnalysis = True + Exit Function + End If + + Dim sPPDriverDocPath As String + + sPPDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) + If Not fsObject.FileExists(sPPDriverDocPath) Then + str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_PP_DRIVER), _ + TOPIC_STR, sPPDriverDocPath, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + Dim pp As PowerPoint.application + Dim po As Object + Dim aPres As PowerPoint.Presentation + Dim RegValue As Long + Set po = GetObject(sPPDriverDocPath) + Set pp = po.application + + If val(pp.Version) < CSUPPORTED_VERSION Then + str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ + TOPIC_STR, pp.Version, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + If Not CheckForAccesToPPVBProject(pp, aPres) Then + RegValue = -1 + If Not GiveAccessToMacroProject(APP_PP, pp.Version, RegValue) Then + Dim Style, response + str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _ + TOPIC_STR, CAPPNAME_POWERPOINT, CR_STR, Chr(13)) + WriteDebug str + Style = vbYesNo + vbQuestion + vbDefaultButton1 + + response = MsgBox(str, Style) + If response <> vbYes Then + bSuccess = False + GoTo FinalExit + End If + End If + End If + + Set aPres = pp.Presentations(1) + Dim ppSlideHidden As PowerPoint.Slide + Set ppSlideHidden = aPres.Slides(2) + + 'Setup Input Variables + 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_POWERPOINT + + 'Run PowerPoint Analysis + pp.Run (fsObject.GetFileName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) & "!AnalysisDriver.AnalyseDirectory") + + bSuccess = True + +FinalExit: + 'Cannot seem to close it down from VB + 'Workaround is to close it in macro + ' + 'If Not aPres Is Nothing Then + ' aPres.Saved = msoTrue + 'End If + 'If Not pp Is Nothing Then pp.Quit + + 'Swallow error as we are closing down PP from macro + 'Does not seem to be possible to close it down from VB + On Error Resume Next + If RegValue <> -1 Then + SetDefaultRegValue APP_PP, pp.Version, RegValue + End If + If RegValue = 0 Then + DeleteRegValue APP_PP, pp.Version + End If + + If Not pp Is Nothing Then + pp.Run (fsObject.GetFileName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) & "!ApplicationSpecific.QuitPowerPoint") + End If + + + Set aPres = Nothing + Set pp = Nothing + Set po = Nothing + + RunPPAnalysis = bSuccess + Exit Function + +HandleErrors: + bSuccess = False + Set pp = Nothing + Dim failedDoc As String + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + + failedDoc = GetDebug(CAPPNAME_POWERPOINT, CANALYZING) + If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then + str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _ + TOPIC_STR, CAPPNAME_POWERPOINT, CR_STR, Chr(13)) + Else + str = ReplaceTopic2Tokens(GetResString(ERR_PP_DRIVER_CRASH), _ + TOPIC_STR, failedDoc, CR_STR, Chr(13)) + End If + + WriteDebug str + MsgBox str, vbCritical + + Resume FinalExit +End Function + +Sub SetupInputVariables(logFile As String, fso As FileSystemObject) + Dim bNewResultsFile As Boolean + + bNewResultsFile = CheckCreateNewResultsFile(fso) + + WriteToLog CNEW_RESULTS_FILE, IIf(bNewResultsFile, "True", "False"), mIniFilePath + WriteToLog CNEW_RESULTS_FILE, IIf(bNewResultsFile, "True", "False"), logFile +End Sub + + + +Function RunExcelAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "RunExcelAnalysis" + Const APP_EXCEL = "Excel" + Dim str As String + Dim bSuccess + bSuccess = False + + If (chkExcelDoc.value <> vbChecked) And (chkExcelTemplate.value <> vbChecked) Then + RunExcelAnalysis = True + Exit Function + End If + + Dim xl As Excel.application + Dim aWb As Excel.Workbook + Dim sExcelDriverDocPath As String + Dim RegValue As Long + + sExcelDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE) + If Not fsObject.FileExists(sExcelDriverDocPath) Then + str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_EXCEL_DRIVER), _ + TOPIC_STR, sExcelDriverDocPath, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + Set xl = GetExcelInstance + If val(xl.Version) < CSUPPORTED_VERSION Then + str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ + TOPIC_STR, xl.Version, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + If Not CheckForAccesToExcelVBProject(xl) Then + RegValue = -1 + If Not GiveAccessToMacroProject(APP_EXCEL, xl.Version, RegValue) Then + Dim Style, response + str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _ + TOPIC_STR, CAPPNAME_EXCEL, CR_STR, Chr(13)) + WriteDebug str + Style = vbYesNo + vbQuestion + vbDefaultButton1 + + response = MsgBox(str, Style) + If response <> vbYes Then + bSuccess = False + GoTo FinalExit + End If + End If + End If + + Set aWb = xl.Workbooks.Open(fileName:=sExcelDriverDocPath) + 'Setup Input Variables + 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_EXCEL + + 'Run Excel Analysis + xl.Run ("AnalysisTool.AnalysisDriver.AnalyseDirectory") + + bSuccess = True +FinalExit: + If RegValue <> -1 Then + SetDefaultRegValue APP_EXCEL, xl.Version, RegValue + End If + If RegValue = 0 Then + DeleteRegValue APP_EXCEL, xl.Version + End If + + If Not aWb Is Nothing Then + If xl.Workbooks.count = 1 Then + xl.Visible = False + End If + aWb.Close (False) + End If + Set aWb = Nothing + + If Not xl Is Nothing Then + If xl.Workbooks.count = 0 Then + xl.Quit + End If + End If + + Set xl = Nothing + + RunExcelAnalysis = bSuccess + Exit Function + +HandleErrors: + bSuccess = False + Set aWb = Nothing + Set xl = Nothing + Dim failedDoc As String + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + + failedDoc = GetDebug(CAPPNAME_EXCEL, CANALYZING) + If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then + str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _ + TOPIC_STR, CAPPNAME_EXCEL, CR_STR, Chr(13)) + Else + str = ReplaceTopic2Tokens(GetResString(ERR_EXCEL_DRIVER_CRASH), _ + TOPIC_STR, failedDoc, CR_STR, Chr(13)) + End If + + WriteDebug str + MsgBox str, vbCritical + + On Error Resume Next + Resume FinalExit +End Function + +Sub WriteWizardSettingsToLog(path As String) + '### DO NOT USE Boolean True/ False it is loaclised by the OS - use "True"/ "False" + WriteToLog CINPUT_DIR, getInputDir, path + WriteToLog CINCLUDE_SUBDIRS, IIf(chkIncludeSubdirs.value, "True", "False"), path + WriteToLog COUTPUT_DIR, getOutputDir, path + WriteToLog CRESULTS_FILE, txtResultsName.Text, path + + WriteToLog CTYPE_WORDDOC, IIf(chkWordDoc.value, "True", "False"), path + WriteToLog CTYPE_WORDDOT, IIf(chkWordTemplate.value, "True", "False"), path + WriteToLog CTYPE_EXCELDOC, IIf(chkExcelDoc.value, "True", "False"), path + WriteToLog CTYPE_EXCELDOT, IIf(chkExcelTemplate.value, "True", "False"), path + WriteToLog CTYPE_PPDOC, IIf(chkPPDoc.value, "True", "False"), path + WriteToLog CTYPE_PPDOT, IIf(chkPPTemplate.value, "True", "False"), path + + Dim resultsSetting As String + If rdbResultsPrompt.value Then + resultsSetting = CPROMPT_FILE + ElseIf rdbResultsAppend.value Then + resultsSetting = CAPPEND_FILE + Else + resultsSetting = COVERWRITE_FILE + End If + WriteToLog CRESULTS_EXIST, resultsSetting, path + + WriteToLog CIGNORE_OLD_DOCS, IIf(chkIgnoreOld.value, "True", "False"), path + WriteToLog CISSUE_LIMIT, CStr(mIssueLimit), path + + 'WriteToLog CVERSION, Version, path +End Sub + +Sub WriteCommonParamsToLog(resultsTemplate As String, logFile As String, path As String, fso As Scripting.FileSystemObject) + WriteToLog CLOG_FILE, logFile, path + WriteToLog CRESULTS_TEMPLATE, resultsTemplate, path + WriteToLog CDEBUG_LEVEL, CLng(mDebugLevel), path + WriteToLog CDOPREPARE, IIf(mbDoPrepare, "True", "False"), path + WriteToLog CTITLE, frmWizard.Caption, path + WriteToLog CLAST_CHECKPOINT, "" + WriteToLog CNEXT_FILE, "" + WriteToLog C_ABORT_ANALYSIS, "" +End Sub + +Function GetNumberOfDocsToAnalyze() As Long + Dim count As Long + + count = 0 + + If CheckWordDocsToAnalyze Then + count = mWordDocCount + mWordTemplateCount + End If + If CheckExcelDocsToAnalyze Then + count = count + mExcelDocCount + mExcelTemplateCount + End If + If CheckPPDocsToAnalyze Then + count = count + mPPDocCount + mPPTemplateCount + End If + + GetNumberOfDocsToAnalyze = count +End Function + +Function CheckWordDocsToAnalyze() As Boolean + + CheckWordDocsToAnalyze = mbDocCountCurrent And (chkWordDoc.value = vbChecked And mWordDocCount > 0) Or _ + (chkWordTemplate.value = vbChecked And mWordTemplateCount > 0) +End Function + +Function CheckExcelDocsToAnalyze() As Boolean + CheckExcelDocsToAnalyze = mbDocCountCurrent And (chkExcelDoc.value = vbChecked And mExcelDocCount > 0) Or _ + (chkExcelTemplate.value = vbChecked And mExcelTemplateCount > 0) +End Function + +Function CheckPPDocsToAnalyze() As Boolean + CheckPPDocsToAnalyze = mbDocCountCurrent And (chkPPDoc.value = vbChecked And mPPDocCount > 0) Or _ + (chkPPTemplate.value = vbChecked And mPPTemplateCount > 0) +End Function + +Function CheckNumberDocsToAnalyze() As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckNumberDocsToAnalyze" + + Set mDocFiles = New CollectedFiles + + Dim docSearchTypes As Collection + Set docSearchTypes = New Collection + + mbDocCountCurrent = False + + SetupDocSearchTypes docSearchTypes + + If (cbIgnoreOld.ListIndex = 0) Then + mIssueLimit = 3 + ElseIf (cbIgnoreOld.ListIndex = 1) Then + mIssueLimit = 6 + Else + mIssueLimit = 12 + End If + + If Not mDocFiles.Search(rootDir:=getInputDir, FileSpecs:=docSearchTypes, _ + IncludeSubdirs:=IIf(chkIncludeSubdirs.value, mbTrue, mbFalse), _ + ignoreOld:=IIf(chkIgnoreOld.value, mbTrue, mbFalse), Months:=mIssueLimit) Then + CheckNumberDocsToAnalyze = False + GoTo FinalExit + End If + + SetDocCountsFromFileSearch mDocFiles + WriteFileDateCountsToLog mDocFiles + + 'WriteDocsToAnalyzeToLog mDocFiles 'UNCOMMENT Recovery - want to list out files to analyze + + mbDocCountCurrent = True + + lblNumDocs.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_ID), TOPIC_STR, _ + CStr(mWordDocCount)) + lblNumTemplates.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _ + CStr(mWordTemplateCount)) + + lblNumXLS.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_XLS_ID), TOPIC_STR, _ + CStr(mExcelDocCount)) + lblNumXLT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _ + CStr(mExcelTemplateCount)) + + lblNumPPT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_PPT_ID), TOPIC_STR, _ + CStr(mPPDocCount)) + lblNumPOT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _ + CStr(mPPTemplateCount)) + + lblTotalNumDocs.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TOTAL_NUM_DOCS_ID), TOPIC_STR, _ + CStr(mTotalDocCount)) + + If (mIgnoredDocCount > 0) Then + lblSkippedOld.Caption = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYZE_IGNORED_DOCS_ID), _ + TOPIC_STR, CStr(mIgnoredDocCount)) + lblSkippedOld.Visible = True + Else + lblSkippedOld.Visible = False + End If + + CheckNumberDocsToAnalyze = True + +FinalExit: + Set docSearchTypes = Nothing + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Sub SetDocCountsFromFileSearch(myDocFiles As CollectedFiles) + 'No Error handling required + mWordDocCount = myDocFiles.DocCount + mWordTemplateCount = myDocFiles.DotCount + mExcelDocCount = myDocFiles.XlsCount + mExcelTemplateCount = myDocFiles.XltCount + mPPDocCount = myDocFiles.PptCount + mPPTemplateCount = myDocFiles.PotCount + mTotalDocCount = mWordDocCount + mWordTemplateCount + mExcelDocCount + mExcelTemplateCount + _ + mPPDocCount + mPPTemplateCount + mIgnoredDocCount = myDocFiles.IgnoredDocCount +End Sub + +Sub SetupDocSearchTypes(docSearchTypes As Collection) + 'No Error handling required + If chkWordDoc.value Then docSearchTypes.add ("*.doc") + If chkWordTemplate.value Then docSearchTypes.add ("*.dot") + If chkExcelDoc.value Then docSearchTypes.add ("*.xls") + If chkExcelTemplate.value Then docSearchTypes.add ("*.xlt") + If chkPPDoc.value Then docSearchTypes.add ("*.ppt") + If chkPPTemplate.value Then docSearchTypes.add ("*.pot") +End Sub + +Sub WriteDocsToAnalyzeToLog(myDocFiles As CollectedFiles) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteDocsToAnalyzeToLog" + + Dim vFileName As Variant + Dim Index As Long + Dim limit As Long + limit = myDocFiles.WordFiles.count + For Index = 1 To limit + vFileName = myDocFiles.WordFiles(Index) + WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_WORD) + Next + limit = myDocFiles.ExcelFiles.count + For Index = 1 To limit + vFileName = myDocFiles.ExcelFiles(Index) + WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_EXCEL) + Next + limit = myDocFiles.PowerPointFiles.count + For Index = 1 To limit + vFileName = myDocFiles.PowerPointFiles(Index) + WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_POWERPOINT) + Next + +FinalExit: + Exit Sub +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Sub WriteFileDateCountsToLog(myDocFiles As CollectedFiles) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "WriteFileDateCountsToLog" + + WriteToLog C_DOCS_LESS_3_MONTH, CStr(myDocFiles.DocsLessThan3Months), mIniFilePath + WriteToLog C_DOCS_LESS_6_MONTH, CStr(myDocFiles.DocsLessThan6Months), mIniFilePath + WriteToLog C_DOCS_LESS_12_MONTH, CStr(myDocFiles.DocsLessThan12Months), mIniFilePath + WriteToLog C_DOCS_MORE_12_MONTH, CStr(myDocFiles.DocsMoreThan12Months), mIniFilePath + +FinalExit: + Exit Sub +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + + +Function RunWordAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "RunWordAnalysis" + Const APP_WORD = "Word" + Dim str As String + Dim bSuccess + bSuccess = False + + Dim wrd As Word.application + Dim aDoc As Word.Document + Dim sWordDriverDocPath As String + Dim RegValue As Long + + If (chkWordDoc.value <> vbChecked) And (chkWordTemplate.value <> vbChecked) Then + 'No Word doc filters selected + RunWordAnalysis = True + Exit Function + End If + + sWordDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE) + If Not fsObject.FileExists(sWordDriverDocPath) Then + str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _ + TOPIC_STR, sWordDriverDocPath, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + Set wrd = New Word.application + If val(wrd.Version) < CSUPPORTED_VERSION Then + str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ + TOPIC_STR, wrd.Version, CR_STR, Chr(13)) + WriteDebug str + MsgBox str, vbCritical + bSuccess = False + GoTo FinalExit + End If + + If Not CheckForAccesToWordVBProject(wrd) Then + RegValue = -1 + If Not GiveAccessToMacroProject(APP_WORD, wrd.Version, RegValue) Then + Dim Style, response + str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _ + TOPIC_STR, CAPPNAME_WORD, CR_STR, Chr(13)) + WriteDebug str + Style = vbYesNo + vbQuestion + vbDefaultButton1 + + response = MsgBox(str, Style) + If response <> vbYes Then + bSuccess = False + GoTo FinalExit + End If + End If + End If + + Set aDoc = wrd.Documents.Open(fileName:=sWordDriverDocPath) + 'Clear out any doc vars + Dim MyObj As Variable + For Each MyObj In aDoc.Variables + MyObj.Delete + Next + + 'Setup Input Variables + 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_WORD + + wrd.Run ("AnalysisTool.AnalysisDriver.AnalyseDirectory") + + wrd.Visible = False + bSuccess = True + +FinalExit: + If RegValue <> -1 Then + SetDefaultRegValue APP_WORD, wrd.Version, RegValue + End If + If RegValue = 0 Then + DeleteRegValue APP_WORD, wrd.Version + End If + If Not aDoc Is Nothing Then aDoc.Close (False) + Set aDoc = Nothing + + If Not wrd Is Nothing Then wrd.Quit (False) + Set wrd = Nothing + + RunWordAnalysis = bSuccess + Exit Function + +HandleErrors: + On Error Resume Next + + bSuccess = False + Set aDoc = Nothing + Set wrd = Nothing + + Dim failedDoc As String + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + + failedDoc = GetDebug(CAPPNAME_WORD, CANALYZING) + If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then + str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _ + TOPIC_STR, CAPPNAME_WORD, CR_STR, Chr(13)) + Else + str = ReplaceTopic2Tokens(GetResString(ERR_WORD_DRIVER_CRASH), _ + TOPIC_STR, failedDoc, CR_STR, Chr(13)) + End If + + WriteDebug str + MsgBox str, vbCritical + + Resume FinalExit +End Function + +Function stripLastBackslash(inputStr As String) As String + Const MIN_DIR_SIZE = 3 + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "stripLastBackslash" + + If Len(inputStr) > MIN_DIR_SIZE Then + Dim lastStrChar As String + lastStrChar = Right(inputStr, 1) + If lastStrChar = "\" Then + inputStr = Left(inputStr, Len(inputStr) - 1) + End If + End If + stripLastBackslash = inputStr + + Exit Function + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + stripLastBackslash = inputStr +End Function + +Function getInputDir() As String + getInputDir = stripLastBackslash(txtInputDir.Text) +End Function + +Function getOutputDir() As String + Dim tmpStr As String + + tmpStr = stripLastBackslash(txtOutputDir.Text) + + 'Bug when specifying C:\ + If tmpStr <> "" Then + If Right(tmpStr, 1) = "\" Then + tmpStr = Left(tmpStr, Len(tmpStr) - 1) + End If + End If + getOutputDir = tmpStr +End Function + +Function CheckCreateNewResultsFile(fsObject As FileSystemObject) As Boolean + If Not fsObject.FileExists(getOutputDir & "\" & txtResultsName.Text) Then + 'No Results File - Create it + CheckCreateNewResultsFile = True + ElseIf rdbResultsAppend.value Then + 'Results File exists and user wants to append to it + CheckCreateNewResultsFile = False + Else + 'Results File exists and user has elected not to append + CheckCreateNewResultsFile = True + End If +End Function + +Sub DeleteFile(file As String) + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "DeleteFile" + Dim fso As Scripting.FileSystemObject + Set fso = New Scripting.FileSystemObject + Dim filePath As String + + filePath = fso.GetAbsolutePathName(file) + If fso.FileExists(filePath) Then + fso.DeleteFile filePath, True + End If + +FinalExit: + Set fso = Nothing + Exit Sub + +HandleErrors: + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Sub + +Public Property Get Version() As String + Version = app.Major & "." & app.Minor & "." & app.Revision +End Property + +Function GetExcelInstance() As Excel.application + Dim xl As Excel.application + On Error Resume Next + 'Try and get an existing instance + Set xl = GetObject(, "Excel.Application") + If Err.Number = 429 Then + Set xl = CreateObject("Excel.Application") + ElseIf Err.Number <> 0 Then + Set xl = Nothing + MsgBox "Error: " & Err.Description + Exit Function + End If + Set GetExcelInstance = xl + Set xl = Nothing +End Function + +Function CheckForAnalysisResultsWorkbook(analysisResultsName As String) As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckForAnalysisResultsWorkbook" + + CheckForAnalysisResultsWorkbook = False + + Dim xl As Excel.application + Set xl = GetExcelInstance + + Dim aWb As Excel.Workbook + For Each aWb In xl.Workbooks + + If aWb.Name = analysisResultsName Then + CheckForAnalysisResultsWorkbook = True + Exit For + End If + Next aWb + +FinalExit: + If Not xl Is Nothing Then + If xl.Workbooks.count = 0 Then + xl.Quit + End If + End If + + Set xl = Nothing + + Exit Function + +HandleErrors: + Set xl = Nothing + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Function CheckForExcel() As Boolean + On Error GoTo HandleErrors + Dim currentFunctionName As String + currentFunctionName = "CheckForExcel" + + CheckForExcel = False + + Dim xl As Excel.application + Set xl = GetExcelInstance + + + If xl.Workbooks.count > 0 Then + CheckForExcel = True + End If + +FinalExit: + If Not xl Is Nothing Then + If xl.Workbooks.count = 0 Then + xl.Quit + End If + End If + + Set xl = Nothing + + Exit Function + +HandleErrors: + Set xl = Nothing + + WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source + Resume FinalExit +End Function + +Public Function GetIniSetting(key As String) As String + + If mIniFilePath = "" Or key = "" Then Exit Function + + GetIniSetting = ProfileGetItem(WIZARD_NAME, key, "", mIniFilePath) +End Function + +Sub WriteIniSetting(key As String, value As String) + + If mIniFilePath = "" Or key = "" Then Exit Sub + + Call WritePrivateProfileString(WIZARD_NAME, key, value, mIniFilePath) +End Sub + +Private Sub lblSetupComplete_Click(Index As Integer) + +End Sub + +Private Function CheckNeededFiles(missingFile As String) As Boolean + + Dim fso As New FileSystemObject + Dim filePath As String + + CheckNeededFiles = False + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CLAUNCH_DRIVERS_EXE) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CMSO_KILL_EXE) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESULTS_TEMPLATE_FILE) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESOURCE_DLL) + If Not fso.FileExists(filePath) Then + missingFile = filePath + Exit Function + End If + + CheckNeededFiles = True +End Function diff --git a/mysqlc/source/mysqlc_connection.cxx b/mysqlc/source/mysqlc_connection.cxx index 1d375d36ca94..782e99249e5b 100644 --- a/mysqlc/source/mysqlc_connection.cxx +++ b/mysqlc/source/mysqlc_connection.cxx @@ -422,7 +422,7 @@ sal_Bool SAL_CALL OConnection::isClosed() OSL_TRACE("OConnection::isClosed"); MutexGuard aGuard(m_aMutex); - // just simple -> we are close when we are disposed taht means someone called dispose(); (XComponent) + // just simple -> we are close when we are disposed that means someone called dispose(); (XComponent) return (OConnection_BASE::rBHelper.bDisposed); } /* }}} */ diff --git a/mysqlc/source/mysqlc_statement.cxx b/mysqlc/source/mysqlc_statement.cxx index a7e87212f58a..78f2a11c48ca 100644 --- a/mysqlc/source/mysqlc_statement.cxx +++ b/mysqlc/source/mysqlc_statement.cxx @@ -419,7 +419,7 @@ void OCommonStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const throw (Exception) { OSL_TRACE("OCommonStatement::setFastPropertyValue_NoBroadcast"); - // set the value to what ever is nescessary + // set the value to what ever is necessary switch (nHandle) { case PROPERTY_ID_QUERYTIMEOUT: case PROPERTY_ID_MAXFIELDSIZE: diff --git a/mysqlc/source/mysqlc_subcomponent.hxx b/mysqlc/source/mysqlc_subcomponent.hxx index 349d36152d9c..2bd19c4bd350 100644 --- a/mysqlc/source/mysqlc_subcomponent.hxx +++ b/mysqlc/source/mysqlc_subcomponent.hxx @@ -129,7 +129,7 @@ namespace connectivity } /** call this in the getInfoHelper method of your derived class. The method returns the array helper of the - class, which is created if neccessary. + class, which is created if necessary. */ ::cppu::IPropertyArrayHelper* getArrayHelper(); diff --git a/o3tl/inc/o3tl/heap_ptr.hxx b/o3tl/inc/o3tl/heap_ptr.hxx index 5f0c73faa74c..f8a7b262550c 100644 --- a/o3tl/inc/o3tl/heap_ptr.hxx +++ b/o3tl/inc/o3tl/heap_ptr.hxx @@ -38,7 +38,7 @@ namespace o3tl ------------- heap_ptr<> can be used for class members on the heap. - One cannot forget to delete them in the destructor. - - Constness will be transfered from the owning instance. + - Constness will be transferred from the owning instance. heap_ptr<> can also be used as smart pointer in function bodies to ensure exception safety. diff --git a/odk/cfgWin.js b/odk/cfgWin.js index dd36d8f99f72..894284f7d38d 100644 --- a/odk/cfgWin.js +++ b/odk/cfgWin.js @@ -918,7 +918,7 @@ function writeBatFile(fdir, file) newFile.Write( "@echo off\n" + - "REM This script sets all enviroment variables, which\n" + + "REM This script sets all environment variables, which\n" + "REM are necessary for building the examples of the Office Development Kit.\n" + "REM The Script was developed for the operating systems Windows.\n" + "REM The SDK name\n" + diff --git a/odk/examples/DevelopersGuide/Accessibility/EventHandler.java b/odk/examples/DevelopersGuide/Accessibility/EventHandler.java index a0d768507acf..f5a259900f8f 100644 --- a/odk/examples/DevelopersGuide/Accessibility/EventHandler.java +++ b/odk/examples/DevelopersGuide/Accessibility/EventHandler.java @@ -408,7 +408,7 @@ public class EventHandler - /** The proxy that runs in a seperate thread and allows to call back to + /** The proxy that runs in a separate thread and allows to call back to the Office without running into dead-locks. */ private EventListenerProxy maListenerProxy; diff --git a/odk/examples/DevelopersGuide/Accessibility/EventListenerProxy.java b/odk/examples/DevelopersGuide/Accessibility/EventListenerProxy.java index 899b5b097f79..b6d2ff692247 100644 --- a/odk/examples/DevelopersGuide/Accessibility/EventListenerProxy.java +++ b/odk/examples/DevelopersGuide/Accessibility/EventListenerProxy.java @@ -36,7 +36,7 @@ import java.util.LinkedList; objects. 2. Top window events inform the listener about new or removed windows. - This class exists because events had to be handled in a seperate thread + This class exists because events had to be handled in a separate thread to avoid dead locks: The thread that receives an event must no call back to the Office directly. @@ -206,7 +206,7 @@ class EventListenerProxy /** The queue of event objects, LinkedList<Runnable>. The queue object will also serve as lock for the consumer/producer type - syncronization. + synchronization. */ private LinkedList maEventQueue; diff --git a/odk/examples/DevelopersGuide/Accessibility/GraphicalDisplay.java b/odk/examples/DevelopersGuide/Accessibility/GraphicalDisplay.java index 0ea1e5dc3095..a1cf6ac85153 100644 --- a/odk/examples/DevelopersGuide/Accessibility/GraphicalDisplay.java +++ b/odk/examples/DevelopersGuide/Accessibility/GraphicalDisplay.java @@ -69,7 +69,7 @@ public class GraphicalDisplay (int)(mnVOffset+0.5), (int)(mnScale*aScreenSize.getWidth()), (int)(mnScale*aScreenSize.getHeight())); - // Draw a frame arround the screen rectangle to increase its visibility. + // Draw a frame around the screen rectangle to increase its visibility. g.setColor (Color.BLACK); g.drawRect ( (int)(mnHOffset+0.5), diff --git a/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java b/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java index e6098fd5da4d..814d908dd9f3 100644 --- a/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java +++ b/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java @@ -92,7 +92,7 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob com.sun.star.task.XJobListener xListener) throws com.sun.star.lang.IllegalArgumentException { - // For asynchronous jobs a valid listener reference is guranteed normaly ... + // For asynchronous jobs a valid listener reference is guaranteed normaly ... if (xListener == null) throw new com.sun.star.lang.IllegalArgumentException("invalid listener"); @@ -118,7 +118,7 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob lDynamicData = (com.sun.star.beans.NamedValue[])com.sun.star.uno.AnyConverter.toArray(lArgs[i].Value); } - // Analyze the environment info. This sub list is the only guarenteed one! + // Analyze the environment info. This sub list is the only guaranteed one! if (lEnvironment == null) throw new com.sun.star.lang.IllegalArgumentException("no environment"); @@ -192,7 +192,7 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob aSaveRequest.Name = "SaveArguments"; aSaveRequest.Value = lJobConfig; - // Deactivation is usefull inside EXECUTOR environment only + // Deactivation is useful inside EXECUTOR environment only if (sEnvType.equals("EXECUTOR")) { ++c; @@ -201,7 +201,7 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob aDeactivation.Value = java.lang.Boolean.TRUE; } - // Sending of result events is usefull inside DISPATCH environment only + // Sending of result events is useful inside DISPATCH environment only if (sEnvType.equals("DISPATCH")) { ++c; @@ -286,8 +286,8 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob } catch(java.lang.Throwable exIgnore) { - // ignore any problem, which can occure here. - // It's not realy a bug for this example job, if + // ignore any problem, which can occur here. + // It's not really a bug for this example job, if // it's message could not be printed out! } } @@ -297,7 +297,7 @@ public class AsyncJob extends WeakBase implements XServiceInfo, XAsyncJob private void showInfoNonModal( java.lang.String sTitle , java.lang.String sMessage ) { - // Couldnt be implemented realy using the toolkit ... + // Couldnt be implemented really using the toolkit ... // Because we need a parent anytime. // And showing e.g. a java dialog can make some trouble // inside office ... but we have no chance here. diff --git a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Thumbs.java b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Thumbs.java index d6d2442d9c6c..a8fd43e6121c 100644 --- a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Thumbs.java +++ b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Thumbs.java @@ -47,7 +47,7 @@ public class Thumbs { org.openoffice.test.XImageShrinkFilter xImageShrinkFilter = org.openoffice.test.ImageShrink.create(xRemoteContext); - System.out.println("ImageShrink component succesfully instantiated"); + System.out.println("ImageShrink component successfully instantiated"); java.io.File f = new java.io.File("."); System.out.println("set SourceDrectory ..."); diff --git a/odk/examples/DevelopersGuide/Database/DriverSkeleton/How_to_write_my_own_driver.txt b/odk/examples/DevelopersGuide/Database/DriverSkeleton/How_to_write_my_own_driver.txt index 0f7782ee99d9..7424c4bc6e86 100644 --- a/odk/examples/DevelopersGuide/Database/DriverSkeleton/How_to_write_my_own_driver.txt +++ b/odk/examples/DevelopersGuide/Database/DriverSkeleton/How_to_write_my_own_driver.txt @@ -22,7 +22,7 @@ How to write my own sdbc driver Pre implementation steps -- search all occurances of skeleton and replace them to a name which you prefer +- search all occurrences of skeleton and replace them to a name which you prefer 1. Implement a class called driver or modify the existing skeleton -> have a look at SDriver.?xx 2. Implement a class called connection -> have a look at SConnection.?xx diff --git a/odk/examples/DevelopersGuide/Database/DriverSkeleton/OSubComponent.hxx b/odk/examples/DevelopersGuide/Database/DriverSkeleton/OSubComponent.hxx index 109201f2fe09..7725a96ab6c5 100644 --- a/odk/examples/DevelopersGuide/Database/DriverSkeleton/OSubComponent.hxx +++ b/odk/examples/DevelopersGuide/Database/DriverSkeleton/OSubComponent.hxx @@ -119,7 +119,7 @@ namespace connectivity } /** call this in the getInfoHelper method of your derived class. The method returns the array helper of the - class, which is created if neccessary. + class, which is created if necessary. */ ::cppu::IPropertyArrayHelper* getArrayHelper(); diff --git a/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx b/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx index 9ff0c5dfe7be..72d8b7fbe5a4 100644 --- a/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx +++ b/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx @@ -207,7 +207,7 @@ sal_Bool SAL_CALL OConnection::isClosed( ) throw(SQLException, RuntimeException { ::osl::MutexGuard aGuard( m_aMutex ); - // just simple -> we are close when we are disposed taht means someone called dispose(); (XComponent) + // just simple -> we are close when we are disposed that means someone called dispose(); (XComponent) return OConnection_BASE::rBHelper.bDisposed; } // -------------------------------------------------------------------------------- diff --git a/odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSet.cxx b/odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSet.cxx index a8594f010a01..f030eb3facc2 100644 --- a/odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSet.cxx +++ b/odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSet.cxx @@ -388,7 +388,7 @@ void SAL_CALL OResultSet::beforeFirst( ) throw(SQLException, RuntimeException) checkDisposed(OResultSet_BASE::rBHelper.bDisposed); // move before the first row so that isBeforeFirst returns false - // the smae for other movement methods + // the same for other movement methods } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::afterLast( ) throw(SQLException, RuntimeException) diff --git a/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx b/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx index 86e76640d7a4..47516e9eef8e 100644 --- a/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx +++ b/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx @@ -290,7 +290,7 @@ sal_Bool OStatement_Base::convertFastPropertyValue( // ------------------------------------------------------------------------- void OStatement_Base::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue) throw (Exception) { - // set the value to what ever is nescessary + // set the value to what ever is necessary switch(nHandle) { case PROPERTY_ID_QUERYTIMEOUT: diff --git a/odk/examples/DevelopersGuide/Forms/DataAwareness.java b/odk/examples/DevelopersGuide/Forms/DataAwareness.java index 6bda081246e4..cf3d526e02b1 100644 --- a/odk/examples/DevelopersGuide/Forms/DataAwareness.java +++ b/odk/examples/DevelopersGuide/Forms/DataAwareness.java @@ -208,7 +208,7 @@ public class DataAwareness extends DocumentBasedExample implements XPropertyChan /* ------------------------------------------------------------------ */ public void resetted( EventObject aEvent ) throws com.sun.star.uno.RuntimeException { - // check if this reset occured becase we're on a new record + // check if this reset occurred becase we're on a new record XPropertySet xFormProps = UNO.queryPropertySet( aEvent.Source ); try { @@ -445,7 +445,7 @@ public class DataAwareness extends DocumentBasedExample implements XPropertyChan } /* ------------------------------------------------------------------ */ - /** creates the table witht the given name, using the given statement + /** creates the table with the given name, using the given statement */ protected boolean implCreateTable( XConnection xConn, String sCreateStatement, String sTableName ) throws java.lang.Exception { @@ -844,7 +844,7 @@ public class DataAwareness extends DocumentBasedExample implements XPropertyChan m_aSalesLocker = new ControlLock( xSalesFormProps, "SALENR" ); m_aSalesLocker.enableLock( m_bProtectKeyFields ); - // initally, we want to generate keys when moving to a new record + // initially, we want to generate keys when moving to a new record xKeyGen.setPropertyValue( "DefaultState", new Short( (short)1 ) ); // -------------------------------------------------------------- diff --git a/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java b/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java index 8f8243d49134..8254d64a1eb0 100644 --- a/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java +++ b/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java @@ -28,7 +28,7 @@ import com.sun.star.util.XCloseable; public abstract class DocumentBasedExample implements com.sun.star.lang.XEventListener { - /// the intial remote context from the office + /// the initial remote context from the office protected XComponentContext m_xCtx; /// our current test document protected DocumentHelper m_document; diff --git a/odk/examples/DevelopersGuide/Forms/KeyGenerator.java b/odk/examples/DevelopersGuide/Forms/KeyGenerator.java index 8c81d1f17678..7a995a78c4bd 100644 --- a/odk/examples/DevelopersGuide/Forms/KeyGenerator.java +++ b/odk/examples/DevelopersGuide/Forms/KeyGenerator.java @@ -238,7 +238,7 @@ class KeyGeneratorForReset extends UniqueColumnValue implements XResetListener /* ------------------------------------------------------------------ */ public void resetted( com.sun.star.lang.EventObject aEvent ) throws com.sun.star.uno.RuntimeException { - // check if this reset occured becase we're on a new record + // check if this reset occurred becase we're on a new record XPropertySet xFormProps = UNO.queryPropertySet( aEvent.Source ); try { diff --git a/odk/examples/DevelopersGuide/Forms/Makefile b/odk/examples/DevelopersGuide/Forms/Makefile index 1110cb2126a3..22cef50d7868 100644..100755 --- a/odk/examples/DevelopersGuide/Forms/Makefile +++ b/odk/examples/DevelopersGuide/Forms/Makefile @@ -162,7 +162,7 @@ FormsExample : $(APP1_JAR) $(APP2_JAR) $(APP3_JAR) $(APP4_JAR) @echo $(MAKE) $(APP3_NAME).run @echo $(MAKE) $(APP4_NAME).run @echo - - @echo Note: The data awareness example needs a running data source whith name + @echo Note: The data awareness example needs a running data source with name @echo $(SQM) $(SQM)"$(QM)OO_SDK_Demo_DB$(QM)". Make sure that you have created such a data source, @echo - @echo The document "$(QM)ProgrammaticScriptAssignment.odt$(QM)" demonstrates diff --git a/odk/examples/DevelopersGuide/Forms/URLHelper.java b/odk/examples/DevelopersGuide/Forms/URLHelper.java index c0ab94d33243..a391f949e15a 100644 --- a/odk/examples/DevelopersGuide/Forms/URLHelper.java +++ b/odk/examples/DevelopersGuide/Forms/URLHelper.java @@ -28,7 +28,7 @@ public class URLHelper { /** * Because the office need URLs for loading/saving documents - * we must convert used system pathes. + * we must convert used system paths. * And java use another notation for file URLs ... correct it. * * @param aSystemPath diff --git a/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java b/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java index 217d3c66b3c7..6412f21996e8 100644 --- a/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java +++ b/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java @@ -31,8 +31,8 @@ import java.io.*; * * This applet is a sample implementation of the * OpenOffice.org bean. - * When initally loaded the applet has two buttons - * one for opening an existant file and one to open + * When initially loaded the applet has two buttons + * one for opening an existent file and one to open * a blank document of a given type supported by * OpenOffice.org eg. Writer, Calc, Impress, ..... * @@ -84,7 +84,7 @@ public class OOoBeanViewer extends java.applet.Applet documentTypePopUp = new javax.swing.JPopupMenu(); storeDocumentButton = new javax.swing.JButton("store to buffer"); loadDocumentButton = new javax.swing.JButton("load from buffer"); - syswinButton = new javax.swing.JButton("release/aquire"); + syswinButton = new javax.swing.JButton("release/acquire"); menuBarButton = new javax.swing.JCheckBox("MenuBar"); menuBarButton.setSelected( aBean.isMenuBarVisible() ); diff --git a/odk/examples/DevelopersGuide/OfficeDev/ContextMenuInterceptor.java b/odk/examples/DevelopersGuide/OfficeDev/ContextMenuInterceptor.java index 26e15bdbbc39..b3c0170b7cf4 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/ContextMenuInterceptor.java +++ b/odk/examples/DevelopersGuide/OfficeDev/ContextMenuInterceptor.java @@ -116,7 +116,7 @@ public class ContextMenuInterceptor implements XContextMenuInterceptor { } } catch ( com.sun.star.uno.RuntimeException ex ) { - // something strange has happend! + // something strange has happened! System.out.println( " Sample caught exception! " + ex ); System.exit(1); } @@ -234,7 +234,7 @@ public class ContextMenuInterceptor implements XContextMenuInterceptor { // we used an invalid index for accessing a container } catch ( com.sun.star.uno.Exception ex ) { - // something strange has happend! + // something strange has happened! } catch ( java.lang.Exception ex ) { // catch java exceptions and something useful diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/CustomizeView.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/CustomizeView.java index 8d3491e1af98..76bf2f363461 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/CustomizeView.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/CustomizeView.java @@ -150,7 +150,7 @@ public class CustomizeView extends JPanel // be frame action listener // The callback will update listener connections - // for status updates automaticly! + // for status updates automatically! m_aMenuBarListener = new StatusListener(m_cbMenuBar ,MENUBAR_ON ,MENUBAR_OFF ,xFrame, FEATUREURL_MENUBAR ); m_aToolBarListener = new StatusListener(m_cbToolBar ,TOOLBAR_ON ,TOOLBAR_OFF ,xFrame, FEATUREURL_TOOLBAR ); m_aObjectBarListener = new StatusListener(m_cbObjectBar,OBJECTBAR_ON,OBJECTBAR_OFF,xFrame, FEATUREURL_OBJECTBAR); diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Desk.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Desk.java index 590114a395db..e3b5e8731b7a 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Desk.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Desk.java @@ -42,7 +42,7 @@ public class Desk /** * main * Establish connection to a remote office and starts the demo application. - * User can overwrite some of neccessary start options by using command line parameters. + * User can overwrite some of necessary start options by using command line parameters. * * syntax: Desk [mode={inplace|outplace}] [file=<filename>] * @@ -76,7 +76,7 @@ public class Desk // Create first document view. // This one will register himself at the global // ViewContainer. Further views will be open - // automaticly started from this first one. + // automatically started from this first one. DocumentView aView = new DocumentView(); aView.setVisible(true); aView.createFrame(); diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java index bfbed842c1b1..d2a7cefc45ba 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java @@ -37,7 +37,7 @@ import java.awt.event.WindowEvent; // __________ Implementation __________ /** - * This implement a java frame wich contains + * This implement a java frame which contains * an office document, shows some status informations * about that, provides simple functionality on it * (e.g. toggle menubar, save document) and @@ -71,7 +71,7 @@ public class DocumentView extends JFrame /** * @member mxFrame office frame which contains the document of this view * - * @member maStatusView special panel wich show available status informations of currently loaded document + * @member maStatusView special panel which show available status informations of currently loaded document * @member maDocumentView use JNI mechanism to plug an office window into our own java UI container (used for inplace mode only!) * @member maCustomizeView special panel makes it possible to toggle menubar/toolbar or objectbar of loaded document * @member maInterceptor interceptor thread which intercept "new" menu of office frame to open new frames inside this java application @@ -163,7 +163,7 @@ public class DocumentView extends JFrame if(ViewContainer.mbInplace==true) { // create view to show opened documents - // This special view is neccessary for inplace mode only! + // This special view is necessary for inplace mode only! maDocumentView = new NativeView(); JSplitPane paSplit = new JSplitPane(); @@ -321,7 +321,7 @@ public class DocumentView extends JFrame mbDead=true; // force these sub view to release her remote - // refrences too! + // references too! maStatusView.shutdown(); maCustomizeView.shutdown(); @@ -334,7 +334,7 @@ public class DocumentView extends JFrame // close the frame and his document // Relaesing of our listener connections for disposing() - // will be forced automaticly then. Because the frame + // will be forced automatically then. Because the frame // will call us back ... if (mxFrame!=null) FunctionHelper.closeFrame(mxFrame); @@ -352,8 +352,8 @@ public class DocumentView extends JFrame /** * callback from our internal saved frame - * which wish to die. Its not neccessary to remove listener connections - * here. Because the broadcaster do it automaticly. + * which wish to die. Its not necessary to remove listener connections + * here. Because the broadcaster do it automatically. * We have to release all references to him only. * * @param aSource @@ -411,7 +411,7 @@ public class DocumentView extends JFrame if( sCommand.compareTo(COMMAND_EXIT) == 0 ) { // This will force deleting of this and - // all other currently opened views automaticly! + // all other currently opened views automatically! System.exit(0); } } diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java index 0c1341d34afe..f090987267cc 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java @@ -110,7 +110,7 @@ public class FunctionHelper { // "createInstance()" method of used service manager can throw it. // Then it wasn't possible to get the URL transformer. - // Return default instead of realy parsed URL. + // Return default instead of really parsed URL. aURL = null; } @@ -246,7 +246,7 @@ public class FunctionHelper // is returned. But normaly nobody outside the office knows this id. // New version of this method ignore the id parameter and creation will // work. - // Note: You must be shure if your window handle can be realy used by + // Note: You must be shure if your window handle can be really used by // the remote office. Means if this java client and the remote office // use the same display! com.sun.star.awt.XSystemChildFactory xChildFactory = @@ -300,8 +300,8 @@ public class FunctionHelper // the systemw window handle. A possible reason can be an invisible // java window. In this case it should be enough to set return // values to null. All other ressources (which was created before) - // will be freed automaticly if scope wil be leaved. - System.out.println("May be the NativeView object wasn't realy visible at calling time of getNativeWindow()?"); + // will be freed automatically if scope wil be leaved. + System.out.println("May be the NativeView object wasn't really visible at calling time of getNativeWindow()?"); xPeer = null; xWindow = null; } @@ -357,7 +357,7 @@ public class FunctionHelper com.sun.star.awt.XWindow xWindow = impl_createWindow(xCtx, aParentView); // pass the window the frame as his new container window. - // It's neccessary to do it first - before you call anything else there. + // It's necessary to do it first - before you call anything else there. // Otherwhise the frame throws some exceptions for "uninitialized state". xFrame.initialize( xWindow ); @@ -382,11 +382,11 @@ public class FunctionHelper if(xFrame!=null) { // Try to dispose the frame. He should deregister himself at the desktop object - // and free all internal used ressources (e.g. the container window) automaticly. + // and free all internal used ressources (e.g. the container window) automatically. // It's possible to do that here - because frame has no component inside yet. // So nobody can disagree with that. // After the dispose() call forget all references to this frame and let him die. - // If a new exception will occure ... no generell solution exist then. + // If a new exception will occur ... no generell solution exist then. // Nobody can guarantee if next call will work or not. com.sun.star.lang.XComponent xComponent = (com.sun.star.lang.XComponent)UnoRuntime.queryInterface( com.sun.star.lang.XComponent.class, @@ -399,7 +399,7 @@ public class FunctionHelper catch(com.sun.star.uno.Exception exUno) { // "createInstance()" method of used service manager can throw it. - // If it occured during creation of desktop service the frame already was created. + // If it occurred during creation of desktop service the frame already was created. // Free it by decresing his refcount. Changes on the desktop tree couldn't exist. // Without the desktop service that wasn't possible. So no further rollbacks must follow. if(xFrame!=null) @@ -421,16 +421,16 @@ public class FunctionHelper /** * Dispatch an URL to given frame. * Caller can register himself for following status events for dispatched - * URL too. But nobody guarantee that such notifications will occure. + * URL too. But nobody guarantee that such notifications will occur. * (see dispatchWithNotification() if you interest on that) * The returned dispatch object should be hold alive by caller * till he deosn't need it any longer. Otherwise the dispatcher can(!) * die by decreasing his refcount. * - * @param xFrame frame wich should be the target of this dispatch + * @param xFrame frame which should be the target of this dispatch * @param aURL full parsed and converted office URL for dispatch * @param lProperties optional arguments for dispatch - * @param xListener optional listener which is registered automaticly for status events + * @param xListener optional listener which is registered automatically for status events * (Note: Deregistration is part of this listener himself!) * * @return [XDispatch] It's the used dispatch object and can be used for deregistration of an optional listener. @@ -487,14 +487,14 @@ public class FunctionHelper * Dispatch an URL to given frame. * Caller can register himself for following result events for dispatched * URL too. Notifications are guaranteed (instead of dispatch()) - * Returning of the dispatch object isn't neccessary. + * Returning of the dispatch object isn't necessary. * Nobody must hold it alive longer the dispatch needs. * - * @param xFrame frame wich should be the target of this dispatch + * @param xFrame frame which should be the target of this dispatch * @param aURL full parsed and converted office URL for dispatch * @param lProperties optional arguments for dispatch - * @param xListener optional listener which is registered automaticly for status events - * (Note: Deregistration is not supported. Dispatcher does it automaticly.) + * @param xListener optional listener which is registered automatically for status events + * (Note: Deregistration is not supported. Dispatcher does it automatically.) */ public static void executeWithNotification(com.sun.star.frame.XFrame xFrame , com.sun.star.util.URL aURL , @@ -535,7 +535,7 @@ public class FunctionHelper * The result of this operation will be the loaded document for success * or null if loading failed. * - * @param xFrame frame wich should be the target of this load call + * @param xFrame frame which should be the target of this load call * @param sURL unparsed URL for loading * @param lProperties optional arguments * @@ -554,7 +554,7 @@ public class FunctionHelper OfficeConnect.getOfficeContext(); // First prepare frame for loading - // We must adress it inside the frame tree without any complications. + // We must address it inside the frame tree without any complications. // So we set an unambigous (we hope it) name and use it later. // Don't forget to reset original name after that. sOldName = xFrame.getName(); @@ -674,7 +674,7 @@ public class FunctionHelper * It try to export given document in HTML format. * Current document will be converted to HTML and moved to new place on disk. * A "new" file will be created by given URL (may be overwritten - * if it already exist). Right filter will be used automaticly if factory of + * if it already exist). Right filter will be used automatically if factory of * this document support it. If no valid filter can be found for export, * nothing will be done here. * @@ -688,7 +688,7 @@ public class FunctionHelper { // First detect factory of this document. // Ask for the supported service name of this document. - // If information is available it can be used to find out wich + // If information is available it can be used to find out which // filter exist for HTML export. Normaly this filter should be searched // inside the filter configuration but this little demo doesn't do so. // (see service com.sun.star.document.FilterFactory for further @@ -735,7 +735,7 @@ public class FunctionHelper { // Export can be forced by saving the document and using a // special filter name which can write needed format. Build - // neccessary argument list now. + // necessary argument list now. // Use special flag "Overwrite" too, to prevent operation // against possible exceptions, if file already exist. com.sun.star.beans.PropertyValue[] lProperties = @@ -980,7 +980,7 @@ public class FunctionHelper /** * helper to get a file URL selected by user * This method doesn't show any API concepts ... - * but is neccessary rof this demo application. + * but is necessary rof this demo application. * * @param aParent parent window of this dialog * @param bOpen If it is set to true => diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java index ba1fa34a9df8..1f1430750fea 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java @@ -45,7 +45,7 @@ public interface IOnewayLink * @param nRequest * The two user of this callback can define an unique number, * which identify the type of original interface method. So the called - * interface object can decide, which action will be neccessary. + * interface object can decide, which action will be necessary. * * @param lParams * If the original method used parameters, they will be coded here in diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Interceptor.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Interceptor.java index 06f70eb5ef38..5183546cb74d 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Interceptor.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Interceptor.java @@ -34,9 +34,9 @@ import java.util.Vector; /** * This class can be used to intercept dispatched URL's * on any frame used in this demo application. - * It intercept all URL's wich try to create a new empty frame. + * It intercept all URL's which try to create a new empty frame. * (e.g. "private:factory/swriter") - * Nobody can guarantee that this interception will be realy used - + * Nobody can guarantee that this interception will be really used - * because another interceptor (registered at a later time then this one!) * will be called before this one. * Implementation is executed inside a new thread to prevent application @@ -87,7 +87,7 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, /** * ctor * Initialize the new interceptor. Given frame reference can be used to - * register this interceptor on it automaticly later. + * register this interceptor on it automatically later. * * @seealso startListening() * @@ -107,7 +107,7 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, //_____________________ /** - * start working as frame action listener realy. + * start working as frame action listener really. * We will be frame action listener here. In case * we get a frame action which indicates, that we should * update our interception. Because such using of an interecptor @@ -308,12 +308,12 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, return; } - // deregistration will be done everytime ... - // But may it's not neccessary to establish a new registration! + // deregistration will be done every time ... + // But may it's not necessary to establish a new registration! // Don't look for ignoring actions - it was done already inside original frameAction() call! boolean bRegister = false; - // analyze the event and decide which reaction is usefull + // analyze the event and decide which reaction is useful switch(aEvent.Action.getValue()) { case com.sun.star.frame.FrameAction.COMPONENT_ATTACHED_value : bRegister = true ; break; @@ -519,7 +519,7 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, if (aURL.Complete.startsWith("private:factory") == true) { // Create view frame for showing loaded documents on demand. - // The visible state is neccessary for JNI functionality to get the HWND and plug office + // The visible state is necessary for JNI functionality to get the HWND and plug office // inside a java window hierarchy! DocumentView aNewView = new DocumentView(); aNewView.setVisible(true); @@ -532,7 +532,7 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, /** * Notification of status listener isn't guaranteed (instead of listener on XNotifyingDispatch interface). - * So this interceptor doesn't support that realy ... + * So this interceptor doesn't support that really ... */ public /*ONEWAY*/ void addStatusListener(/*IN*/ com.sun.star.frame.XStatusListener xListener,/*IN*/ com.sun.star.util.URL aURL) { @@ -563,7 +563,7 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, /** * Implements (optional!) optimization for interceptor mechanism. - * Any interceptor which provides this special interface is called automaticly + * Any interceptor which provides this special interface is called automatically * at registration time on this method. Returned URL's will be used to * call this interceptor directly without calling his masters before, IF(!) * following rules will be true: @@ -581,7 +581,7 @@ public class Interceptor implements com.sun.star.frame.XFrameActionListener, /** * This class listen on the intercepted frame to free all used ressources on closing. * We forget the reference to the frame only here. Deregistration - * isn't neccessary here - because this frame dies and wish to forgoten. + * isn't necessary here - because this frame dies and wish to forgoten. * * @param aSource * must be our internal saved frame, on which we listen for frame action events diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/NativeView.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/NativeView.java index 92c48bad23ae..f0dc3653db38 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/NativeView.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/NativeView.java @@ -47,7 +47,7 @@ public class NativeView extends java.awt.Canvas /** * ctor - * Does nothing realy. + * Does nothing really. * We can use our JNI mechanism for an already visible * canvas only. So we overload the method for showing ("setVisible()") * and make our intialization there. BUt we try to show an empty clean @@ -63,8 +63,8 @@ public class NativeView extends java.awt.Canvas // ____________________ /** - * Overload this method to make neccessary initializations here. - * (e.g. get the window handle and neccessary system informations) + * Overload this method to make necessary initializations here. + * (e.g. get the window handle and necessary system informations) * * Why here? * Because the handle seams to be available for already visible windows @@ -82,7 +82,7 @@ public class NativeView extends java.awt.Canvas /** * to guarantee right resize handling inside a swing container * (e.g. JSplitPane) we must provide some informations about our - * prefered/minimum and maximum size. + * preferred/minimum and maximum size. */ public Dimension getPreferredSize() { @@ -103,7 +103,7 @@ public class NativeView extends java.awt.Canvas /** * overload paint routine to show provide against - * repaint errors if no office view is realy plugged + * repaint errors if no office view is really plugged * into this canvas. * If handle is present - we shouldn't paint anything further. * May the remote window is already plugged. In such case we @@ -152,7 +152,7 @@ public class NativeView extends java.awt.Canvas // ____________________ /** - * for using of the JNI methods it's neccessary to load + * for using of the JNI methods it's necessary to load * system library which exports it. */ static diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OfficeConnect.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OfficeConnect.java index ba9c07f3c993..1423b171db7f 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OfficeConnect.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OfficeConnect.java @@ -78,7 +78,7 @@ public class OfficeConnect * ctor * We try to open the connection in our ctor ... transparently for user. * After it was successfully you will find an internal set member - * m_xRemoteContext wich means remote component context of the connected office. + * m_xRemoteContext which means remote component context of the connected office. * The context can be used to get the remote service manager from the office. * We made it private to support singleton pattern of these implementation. * see getConnection() for further informations @@ -106,7 +106,7 @@ public class OfficeConnect /** * create uno components inside remote office process - * After connection of these proccess to a running office we have access to + * After connection of these process to a running office we have access to * remote service manager of it. * So we can use it to create all existing services. Use this method to create * components by name and get her interface. Casting of it to right target @@ -114,7 +114,7 @@ public class OfficeConnect * * @param aType describe class type of created service * Returned object can be casted directly to this one. - * Uno query was done by this method automaticly. + * Uno query was done by this method automatically. * @param sServiceSpecifier name of service which should be created * @return the new created service object */ diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java index 309267cbed62..1210f9bc2e37 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java @@ -28,7 +28,7 @@ import java.util.Vector; /** * It's not allowed to call synchronoues back inside an oneway interface call. * (see IOnewayLink too). So we start a thread (implemented by this class), which - * gets all neccessary parameters from the original called object and + * gets all necessary parameters from the original called object and * call it back later inside his run() method. So the execution of such oneway call * will be asynchronous. It works in a generic way and can be used or any type * of oneway request. Because the source and the target of this call-link knows, @@ -73,7 +73,7 @@ class OnewayExecutor extends Thread /** * ctor - * It's initialize this thread with all neccessary parameters. + * It's initialize this thread with all necessary parameters. * It gets the object, which wish to be called back and the type * and parameters of the original request. * @@ -81,7 +81,7 @@ class OnewayExecutor extends Thread * The two user of this callback can define an unique number, * which identify the type of original interface method. * So the called interface object can decide, which action will be - * neccessary. + * necessary. * * @param lParams * If the original method used parameters, they will be coded here in @@ -110,7 +110,7 @@ class OnewayExecutor extends Thread /** * implements the thread function * Here we call the internal set link object back and - * give him all neccessary parameters. + * give it all necessary parameters. * After that we die by ouerself ... */ public void run() @@ -128,7 +128,7 @@ class OnewayExecutor extends Thread /** * static helper! - * To make convertion of the generic parameter list to the original + * To make conversion of the generic parameter list to the original * one easier - you can use this helper methods. They know how suchlist * must be coded. It's not a must to use it - but you can ... */ diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusListener.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusListener.java index b03b7bfda04d..aba2e4c33873 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusListener.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusListener.java @@ -42,7 +42,7 @@ import java.util.Vector; * * Further we are frame action listener too. * So we can update our status listener connections and - * internal holded dispatch object automaticly. + * internal holded dispatch object automatically. * * Another reason for such extra class for listening: * Most listener callbacks are asynchronoues [oneay] requests. @@ -64,7 +64,7 @@ class StatusListener implements com.sun.star.frame.XStatusListener, * @member m_sTrueText this text will be shown at the used UI control as description for an enabled status * @member m_sFalseText this text will be shown at the used UI control as description for an disabled status * @member m_xDispatch if we listen for status events, we must hold the dispatch object alive! - * @member m_xFrame reference to the frame, which can provide new dispatch objects if it's neccessary to update it + * @member m_xFrame reference to the frame, which can provide new dispatch objects if it's necessary to update it * @member m_aURL and of course we must be registered for a special URL * @member m_bIsActionListener indicates if we are currently registered as a listener for frame action events or not * @member m_bIsStatusListener indicates if we are currently registered as a listener for status events or not @@ -85,7 +85,7 @@ class StatusListener implements com.sun.star.frame.XStatusListener, /** * ctor * It initialize an instance of this class only. - * We sett all neccessary informations on our internal member - that's it + * We sett all necessary informations on our internal member - that's it */ StatusListener( /*IN*/ Component rControl , /*IN*/ String sTrueText , @@ -108,13 +108,13 @@ class StatusListener implements com.sun.star.frame.XStatusListener, //_____________________ /** - * start working as frame action listener realy. + * start working as frame action listener really. * In case we get such frame action, it indicates that we should * update our internal saved dispatch object on which we listen - * for status events. So we can do it automaticly. The outside code + * for status events. So we can do it automatically. The outside code * mustn't check such things. We can work with one frame, * till it die. It doesn't matter if he will be used for different - * load/save or any other requests. We will be up to date everytime. + * load/save or any other requests. We will be up to date every time. */ public void startListening() { @@ -182,9 +182,9 @@ class StatusListener implements com.sun.star.frame.XStatusListener, /** * This is the callback method for such frame action events, we listen for. * Because it's a oneway method we start a thread as reaction. This thread call - * us back and we can do neccessary things there. - * But we shouldn't start such action - if it's not realy neccessary. - * So we check before, if we are intereested on this event realy. + * us back and we can do necessary things there. + * But we shouldn't start such action - if it's not really necessary. + * So we check before, if we are intereested on this event really. * * @see impl_frameAction() * @@ -229,7 +229,7 @@ class StatusListener implements com.sun.star.frame.XStatusListener, * This is the callback method for the status we listen for an wish to show it * on our UI control. Of yourse it's a oneway method ... but we doesn't call back * to the office synchronously here. We update our UI only. So we don't leave this - * java process. In such case it's not neccessary to use threads to decouple it. + * java process. In such case it's not necessary to use threads to decouple it. * Do it here and now ... * * @param aEvent @@ -243,7 +243,7 @@ class StatusListener implements com.sun.star.frame.XStatusListener, return; // enable/dsiable th control. - // Means: If the feature isn't available currently - we can't show an status realy here. + // Means: If the feature isn't available currently - we can't show an status really here. // Then we should colorize it gray ... m_rControl.setEnabled(aEvent.IsEnabled); @@ -280,7 +280,7 @@ class StatusListener implements com.sun.star.frame.XStatusListener, // Detect type of state value // and set it on internal well known UI control - // But do it only, if value realy change. + // But do it only, if value really change. if(aEvent.State instanceof String) { String sState = (String)aEvent.State; @@ -325,7 +325,7 @@ class StatusListener implements com.sun.star.frame.XStatusListener, return; } // Don't look for ignoring actions - it was done already inside original frameAction() call! - // deregistration as status listener will be done here everytime - but registration only, if neccessary! + // deregistration as status listener will be done here every time - but registration only, if necessary! boolean bRegister = false; switch(aEvent.Action.getValue()) { @@ -383,9 +383,9 @@ class StatusListener implements com.sun.star.frame.XStatusListener, /** * callback for disposing events * Our dispatch or frame object inform us about his following dead ... - * So we must forget his reference. But it's not neccessary to + * So we must forget his reference. But it's not necessary to * remove listener connections here. Because the broadcaster - * forget us automaticly. The only thing we have to do: release + * forget us automatically. The only thing we have to do: release * his reference and let him die! * * @param aEvent diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusView.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusView.java index b3d8173a1604..652588fb2086 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusView.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusView.java @@ -34,10 +34,10 @@ import java.lang.String; /** * Implement a view to show status informations * of currently loaded document of a document view. - * It use seperate listener threads to get this informations - * and actualize it automaticly if frame broadcast changes of + * It use separate listener threads to get this informations + * and actualize it automatically if frame broadcast changes of * his contained document. - * Threads are neccessary to prevent this view against deadlocks. + * Threads are necessary to prevent this view against deadlocks. * These deadlocks can occure if a listener will be notified * by the office in an "oneway" method and try to call back * to the office by using a synchronous method. @@ -202,7 +202,7 @@ public class StatusView extends JPanel * And because the environment of the frame can be changed - these * listener refresh himself internaly for frame action events too. * So we register it as such frame action listener only here. - * Rest is done automaticly ... + * Rest is done automatically ... * * @param xFrame * will be used as source of possible status events @@ -214,7 +214,7 @@ public class StatusView extends JPanel // create some listener on given frame for available status events // Created listener instances will register herself on this frame and - // show her received informations automaticly on setted UI controls. + // show her received informations automatically on setted UI controls. m_aFontListener = new StatusListener(m_laFontValue ,FONT_ON ,FONT_OFF ,xFrame, FEATUREURL_FONT ); m_aSizeListener = new StatusListener(m_laSizeValue ,SIZE_ON ,SIZE_OFF ,xFrame, FEATUREURL_SIZE ); m_aBoldListener = new StatusListener(m_laBoldValue ,BOLD_ON ,BOLD_OFF ,xFrame, FEATUREURL_BOLD ); diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/ViewContainer.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/ViewContainer.java index 3517f3cdbe24..afe9665ab521 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/ViewContainer.java +++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/ViewContainer.java @@ -47,7 +47,7 @@ public class ViewContainer extends Thread /** * provides a singleton view container - * Neccessary for terminate(9 functionality to be able + * Necessary for terminate(9 functionality to be able * to call Runtime.runFinilization(). * * @return a reference to the singleton ViewContainer instance @@ -78,7 +78,7 @@ public class ViewContainer extends Thread /** * This register a new view inside this global container - * (if it doesnt already exist). + * (if it doesn't already exist). * * @param aView view which whish to be registered inside this container */ @@ -119,7 +119,7 @@ public class ViewContainer extends Thread } // If this view is a registered shutdown listener on this view container // too, we must call his interface and forget him as possible listener. - // It's neccessary to guarantee his dead ... + // It's necessary to guarantee his dead ... boolean bShutdownView = false; synchronized(mlListener) { @@ -135,7 +135,7 @@ public class ViewContainer extends Thread // hook at the runtime class. So our run() method will be called. // Teh our view container should be empty - but // our listener container can include some references. - // These objects wich to be informed then and release e.g. some + // These objects which to be informed then and release e.g. some // remote references. if (nViewCount<1) { @@ -248,7 +248,7 @@ public class ViewContainer extends Thread * @member mlListener list of all currently registered shutdown listener * @member mbShutdownActive if this shutdown hook already was started it's not a good idea to * call System.exit() again for other conditions. - * We supress it by using this variable! + * We suppress it by using this variable! */ public static boolean mbInplace = false ; private static ViewContainer maSingleton = null ; diff --git a/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/AsciiReplaceFilter.java b/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/AsciiReplaceFilter.java index 622f3276de12..3e3f72a5a790 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/AsciiReplaceFilter.java +++ b/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/AsciiReplaceFilter.java @@ -54,7 +54,7 @@ import com.sun.star.lang.IllegalArgumentException; During import/export special functionality can be used to e.g. to change some characters inside the file content or replace some strings (no using of regular expressions!). - User can decide at runtime which functionality realy should + User can decide at runtime which functionality really should be used by selecting it in an extra filter property dialog. So we show how a filter works fro iport/export, use or create @@ -107,7 +107,7 @@ public class AsciiReplaceFilter // native interface /** * special debug helper to get an idea how expensive - * the implemented filter operations are realy. + * the implemented filter operations are really. * May be usefully for own purposes. * * To see the output inside an office environment @@ -160,7 +160,7 @@ public class AsciiReplaceFilter /** * used for initializing after creation * If an instance of this service is created by UNO we will be called - * automaticly after that to get optional parameters of this creation call. + * automatically after that to get optional parameters of this creation call. * E.g.: The service com.sun.star.document.FilterFactory use such mechanism * to pass our own configuration data to this instance. * @@ -363,7 +363,7 @@ public class AsciiReplaceFilter /** * Makes the filter process breakable. To do so the outside code may use threads. - * We use a internal "condition" variable wich is queried by the real filter method on + * We use a internal "condition" variable which is queried by the real filter method on * every loop they do. So it's more a polling mechanism. */ public void cancel() @@ -404,7 +404,7 @@ public class AsciiReplaceFilter * the target text model to put the data in * * @param aOptions - * capsulate all other neccessary informations for this filter request + * capsulate all other necessary informations for this filter request * (streams, replace values ...) * * @return a bool value which describes if method was successfully or not. @@ -536,7 +536,7 @@ public class AsciiReplaceFilter * the source text model to get the data from * * @param aOptions - * capsulate all other neccessary informations for this filter request + * capsulate all other necessary informations for this filter request * (streams, replace values ...) * * @return a bool value which describes if method was successfully or not. @@ -561,7 +561,7 @@ public class AsciiReplaceFilter measure("get text from model"); - // Normaly this function isn't realy cancelable + // Normaly this function isn't really cancelable // But we following operation can be very expensive. So // this place is the last one to stop it. synchronized(this) diff --git a/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/FilterOptions.java b/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/FilterOptions.java index beca3543d4bd..4d413b328c2d 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/FilterOptions.java +++ b/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/FilterOptions.java @@ -37,8 +37,8 @@ import com.sun.star.ucb.CommandAbortedException; import com.sun.star.lang.IllegalArgumentException; /*-************************************************************************ - @title helper to analyze neccessary option properties of our filter - @description Our filter needs some neccessary properties for working: + @title helper to analyze necessary option properties of our filter + @description Our filter needs some necessary properties for working: - a stream for input or output - or an URL for creating such streams - informations about required action on filtering @@ -160,15 +160,15 @@ public class FilterOptions { // ONE argument has the wrong type // But I think we mustn't react here - because we setted - // default values for every neccessary item we need. + // default values for every necessary item we need. // In case this exception occures - this default exist // and we can live with it. } } - // Decide if it's neccessary AND possible to open streams. + // Decide if it's necessary AND possible to open streams. // Outside user can check for valid FilterOptions by using - // corresponding method isValid(). So it's not neccessary to + // corresponding method isValid(). So it's not necessary to // handle this error here in any case. if (m_xInput==null && m_xOutput==null && m_sURL!=null) impl_openStreams(bImport); @@ -176,8 +176,8 @@ public class FilterOptions /** * with this method it's possible for the outside filter to decide - * if he can use this FilterOptions realy or not. - * That means especialy if neccessary streams are available or not. + * if he can use this FilterOptions really or not. + * That means especially if necessary streams are available or not. */ public boolean isValid() { diff --git a/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx b/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx index d55d38734e1d..32c20a173dcc 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx +++ b/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx @@ -182,7 +182,7 @@ sal_Bool XFlatXml::exporter( { // read source data - // we are especialy interested in the output stream + // we are especially interested in the output stream // since that is where our xml-writer will push the data // from it's data-source interface OUString aName, sURL; diff --git a/odk/examples/DevelopersGuide/OfficeDev/Linguistic/LinguisticExamples.java b/odk/examples/DevelopersGuide/OfficeDev/Linguistic/LinguisticExamples.java index 8f4fa9eecfd1..c01db7188d68 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/Linguistic/LinguisticExamples.java +++ b/odk/examples/DevelopersGuide/OfficeDev/Linguistic/LinguisticExamples.java @@ -346,7 +346,7 @@ public class LinguisticExamples public void processLinguServiceEvent( LinguServiceEvent aServiceEvent ) { //! do here whatever you think needs to be done depending - //! on the event recieved (e.g. trigger background spellchecking + //! on the event received (e.g. trigger background spellchecking //! or hyphenation again.) System.out.println("Listener called"); diff --git a/odk/examples/DevelopersGuide/OfficeDev/OfficeConnect.java b/odk/examples/DevelopersGuide/OfficeDev/OfficeConnect.java index 3f55c3a47002..89eb5e483083 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/OfficeConnect.java +++ b/odk/examples/DevelopersGuide/OfficeDev/OfficeConnect.java @@ -100,13 +100,13 @@ public class OfficeConnect /** * create uno components inside remote office process - * After connection of these proccess to a running office we have access to remote service manager of it. + * After connection of these process to a running office we have access to remote service manager of it. * So we can use it to create all existing services. Use this method to create components by name and * get her interface. Casting of it to right target interface is part of your implementation. * * @param aType describe class type of created service * Returned object can be casted directly to this one. - * Uno query was done by this method automaticly. + * Uno query was done by this method automatically. * @param sServiceSpecifier name of service which should be created * @return Description of the Returned Value */ diff --git a/odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connect.cxx b/odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connect.cxx index 1aec7046d016..f15568bb5b17 100644 --- a/odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connect.cxx +++ b/odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connect.cxx @@ -81,7 +81,7 @@ SAL_IMPLEMENT_MAIN() return 1; } - printf( "Connected sucessfully to the office\n" ); + printf( "Connected successfully to the office\n" ); } catch( Exception &e ) { diff --git a/odk/examples/DevelopersGuide/Text/TextDocuments.java b/odk/examples/DevelopersGuide/Text/TextDocuments.java index 405818e4a1eb..dad4e5c497b2 100644 --- a/odk/examples/DevelopersGuide/Text/TextDocuments.java +++ b/odk/examples/DevelopersGuide/Text/TextDocuments.java @@ -340,7 +340,7 @@ public class TextDocuments { mxDocFactory = (XMultiServiceFactory) UnoRuntime.queryInterface( XMultiServiceFactory.class, mxDoc ); - // Examples of text fields, dependant text fields and field masters + // Examples of text fields, dependent text fields and field masters TextFieldExample (); // Example of using an XEnumerationAccess to iterate over paragraphs and @@ -530,11 +530,11 @@ public class TextDocuments { { try { - // Get a text range refering to the beginning of the text document + // Get a text range referring to the beginning of the text document XTextRange xStart = mxDocText.getStart(); // use setString to insert text at the beginning xStart.setString ( "This is text inserted at the beginning.\n\n" ); - // Get a text range refering to the end of the text document + // Get a text range referring to the end of the text document XTextRange xEnd = mxDocText.getEnd(); // use setString to insert text at the end xEnd.setString ( "This is text inserted at the end.\n\n" ); @@ -694,7 +694,7 @@ public class TextDocuments { return ( ( maRandom.nextInt() % 1000 ) * maRandom.nextDouble () ); } - /** This method sets the text colour of the cell refered to by sCellName to + /** This method sets the text colour of the cell referred to by sCellName to white and inserts the string sText in it */ protected static void insertIntoCell(String sCellName, String sText, @@ -948,14 +948,14 @@ public class TextDocuments { // Make sure that the autotext group contains at least one block if ( aBlockNames.length > 0 ) { - // Split the current cell vertically into two seperate cells + // Split the current cell vertically into two separate cells xTableCursor.splitRange ( (short) 1, false ); // Put the cursor in the newly created right hand cell // and select it xTableCursor.goRight ( (short) 1, false ); - // Split this cell horizontally to make a seperate cell + // Split this cell horizontally to make a separate cell // for each Autotext block if ( ( aBlockNames.length -1 ) > 0 ) xTableCursor.splitRange ( @@ -1726,7 +1726,7 @@ public class TextDocuments { XNamed xSectionNamed = (XNamed) UnoRuntime.queryInterface(XNamed.class, mxDocFactory.createInstance("com.sun.star.text.TextSection")); - // Set the name of our new section (appropiately) to 'Fish' + // Set the name of our new section (appropriately) to 'Fish' xSectionNamed.setName ( "Fish" ); // Create the TextColumns service and get it's XTextColumns interface diff --git a/odk/examples/DevelopersGuide/UCB/ResourceManager.java b/odk/examples/DevelopersGuide/UCB/ResourceManager.java index 738a2562aaf5..facdfa5d61e2 100644 --- a/odk/examples/DevelopersGuide/UCB/ResourceManager.java +++ b/odk/examples/DevelopersGuide/UCB/ResourceManager.java @@ -74,7 +74,7 @@ public class ResourceManager { * This method requires the main and the optional arguments to be set in order to work. * See Constructor. * - *@return boolean Returns true if resource successfully transfered, false otherwise + *@return boolean Returns true if resource successfully transferred, false otherwise *@exception com.sun.star.ucb.CommandAbortedException *@exception com.sun.star.uno.Exception */ @@ -92,8 +92,8 @@ public class ResourceManager { * *@param String Source URL *@param String Target folder URL - *@param String Transfering operation (copy, move, link) - *@return boolean Returns true if resource successfully transfered, false otherwise + *@param String Transferring operation (copy, move, link) + *@return boolean Returns true if resource successfully transferred, false otherwise *@exception com.sun.star.ucb.CommandAbortedException *@exception com.sun.star.uno.Exception */ @@ -164,9 +164,9 @@ public class ResourceManager { } /** - * Get new title for the resource to be transfered. + * Get new title for the resource to be transferred. * - *@return String That contains a new title for the transfered + *@return String That contains a new title for the transferred * resource. Can be empty. In this case resource * will keep the title it has in the source folder. */ @@ -258,7 +258,7 @@ public class ResourceManager { if ( result ) System.out.println( "\nTransfering resource succeeded." ); else - System.out.println( "Transfering resource failed." ); + System.out.println( "Transferring resource failed." ); System.out.println( " Source URL : " + sourceURL ); System.out.println( " Target Folder URL : " + targetFolderURL ); diff --git a/odk/examples/DevelopersGuide/examples.html b/odk/examples/DevelopersGuide/examples.html index 5decee1a6ad3..e4af7c6e372c 100644 --- a/odk/examples/DevelopersGuide/examples.html +++ b/odk/examples/DevelopersGuide/examples.html @@ -2306,7 +2306,7 @@ form controls.</a></td> title="link to Forms/DataAwareness.java">DataAwareness</a></td> <td class="cell80">This class implements the basic example for a form working on a database. Two tables will be created -and a form (writer document) with a bussiness example will fill its +and a form (writer document) with a business example will fill its fields from these tables.</td> </tr> <tr> diff --git a/odk/examples/cpp/complextoolbarcontrols/Makefile b/odk/examples/cpp/complextoolbarcontrols/Makefile index cddaf234817d..d50c0f235e1c 100644 --- a/odk/examples/cpp/complextoolbarcontrols/Makefile +++ b/odk/examples/cpp/complextoolbarcontrols/Makefile @@ -145,7 +145,7 @@ endif Example : $(COMP_REGISTERFLAG) @echo -------------------------------------------------------------------------------- - @echo The "$(QM)Complext Toolbar Controlls$(QM)" component was installed if SDK_AUTO_DEPLOYMENT = YES. + @echo The "$(QM)Complext Toolbar Controls$(QM)" component was installed if SDK_AUTO_DEPLOYMENT = YES. @echo You can use this component inside your office installation, see the example @echo description. @echo -------------------------------------------------------------------------------- diff --git a/odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.cxx b/odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.cxx index 36f309950a27..99230409c04c 100644 --- a/odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.cxx +++ b/odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.cxx @@ -220,7 +220,7 @@ Sequence< ::rtl::OUString > SAL_CALL MyProtocolHandler::getSupportedServiceNames void SAL_CALL BaseDispatch::dispatch( const URL& aURL, const Sequence < PropertyValue >& lArgs ) throw (RuntimeException) { - /* Its neccessary to hold this object alive, till this method finish. + /* Its necessary to hold this object alive, till this method finish. May the outside dispatch cache (implemented by the menu/toolbar!) forget this instance during de-/activation of frames (focus!). diff --git a/odk/examples/java/DocumentHandling/DocumentLoader.java b/odk/examples/java/DocumentHandling/DocumentLoader.java index e83b8f569dac..79305da747e4 100644 --- a/odk/examples/java/DocumentHandling/DocumentLoader.java +++ b/odk/examples/java/DocumentHandling/DocumentLoader.java @@ -64,7 +64,7 @@ public class DocumentLoader { sUrl = sbTmp.toString(); } - // Load a Writer document, which will be automaticly displayed + // Load a Writer document, which will be automatically displayed com.sun.star.lang.XComponent xComp = xCompLoader.loadComponentFromURL( sUrl, "_blank", 0, new com.sun.star.beans.PropertyValue[0]); diff --git a/odk/examples/java/DocumentHandling/DocumentPrinter.java b/odk/examples/java/DocumentHandling/DocumentPrinter.java index 7d126ce088dd..90a360fb934d 100644 --- a/odk/examples/java/DocumentHandling/DocumentPrinter.java +++ b/odk/examples/java/DocumentHandling/DocumentPrinter.java @@ -58,7 +58,7 @@ public class DocumentPrinter { StringBuffer sUrl = new StringBuffer("file:///"); sUrl.append(sourceFile.getCanonicalPath().replace('\\', '/')); - // Load a Writer document, which will be automaticly displayed + // Load a Writer document, which will be automatically displayed com.sun.star.lang.XComponent xComp = xCompLoader.loadComponentFromURL( sUrl.toString(), "_blank", 0, new com.sun.star.beans.PropertyValue[0] ); diff --git a/odk/examples/java/EmbedDocument/Container1/EmbedContApp.java b/odk/examples/java/EmbedDocument/Container1/EmbedContApp.java index e2ab9b7e90a2..3bb4b2e3a79f 100644 --- a/odk/examples/java/EmbedDocument/Container1/EmbedContApp.java +++ b/odk/examples/java/EmbedDocument/Container1/EmbedContApp.java @@ -381,7 +381,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie public void actionPerformed( ActionEvent e ) { - // if has persistance store there + // if has persistence store there // if not open SaveAs dialog and store if ( m_xStorage != null && m_xEmbedObj != null ) { diff --git a/odk/examples/java/EmbedDocument/EmbeddedObject/OwnEmbeddedObject.java b/odk/examples/java/EmbedDocument/EmbeddedObject/OwnEmbeddedObject.java index db29eed00258..5ab82211121a 100644 --- a/odk/examples/java/EmbedDocument/EmbeddedObject/OwnEmbeddedObject.java +++ b/odk/examples/java/EmbedDocument/EmbeddedObject/OwnEmbeddedObject.java @@ -392,10 +392,10 @@ public final class OwnEmbeddedObject extends WeakBase && ( m_nObjectState == -1 || nEntryConnectionMode != com.sun.star.embed.EntryInitModes.NO_INIT ) ) { // if the object is not loaded - // it can not get persistant representation without initialization + // it can not get persistent representation without initialization // if the object is loaded - // it can switch persistant representation only without initialization + // it can switch persistent representation only without initialization throw new com.sun.star.embed.WrongStateException(); } diff --git a/odk/examples/java/Inspector/TestInspector.java b/odk/examples/java/Inspector/TestInspector.java index b3bf11d0aaf5..6eb511069799 100644 --- a/odk/examples/java/Inspector/TestInspector.java +++ b/odk/examples/java/Inspector/TestInspector.java @@ -62,7 +62,7 @@ public class TestInspector { com.sun.star.frame.XComponentLoader xCmpLoader = (com.sun.star.frame.XComponentLoader)UnoRuntime.queryInterface( com.sun.star.frame.XComponentLoader.class, xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext)); - // Load a new spreadsheet document, which will be automaticly + // Load a new spreadsheet document, which will be automatically // displayed and is used for inspection com.sun.star.lang.XComponent xComp = xCmpLoader.loadComponentFromURL("private:factory/scalc", "_blank", 0, new com.sun.star.beans.PropertyValue[0] ); xInstInspector.inspect(xCmpLoader, ""); diff --git a/odk/examples/java/NotesAccess/NotesAccess.java b/odk/examples/java/NotesAccess/NotesAccess.java index e2fb30bf5b18..5e4a6ab01465 100644 --- a/odk/examples/java/NotesAccess/NotesAccess.java +++ b/odk/examples/java/NotesAccess/NotesAccess.java @@ -144,7 +144,7 @@ public class NotesAccess implements Runnable { xMCF.createInstanceWithContext( "com.sun.star.frame.Desktop", xContext)); - // Load a Writer document, which will be automaticly displayed + // Load a Writer document, which will be automatically displayed XComponent xComponent = xLoader.loadComponentFromURL( "private:factory/scalc", "_blank", 0, new PropertyValue[0] ); diff --git a/odk/examples/java/Spreadsheet/ChartTypeChange.java b/odk/examples/java/Spreadsheet/ChartTypeChange.java index 415ce870a129..c426eb2b1124 100644 --- a/odk/examples/java/Spreadsheet/ChartTypeChange.java +++ b/odk/examples/java/Spreadsheet/ChartTypeChange.java @@ -176,7 +176,7 @@ public class ChartTypeChange { xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xCompContext ) ); - // Load a Writer document, which will be automaticly displayed + // Load a Writer document, which will be automatically displayed XComponent xComponent = xComponentloader.loadComponentFromURL( "file:///" + stringFileName, "_blank", 0, new PropertyValue[0] ); @@ -223,7 +223,7 @@ public class ChartTypeChange { "com.sun.star.frame.Desktop", xCompContext ) ); - // Create an empty calc document, which will be automaticly displayed + // Create an empty calc document, which will be automatically displayed XComponent xComponent = xcomponentloader.loadComponentFromURL( "private:factory/scalc", "_blank", 0, new PropertyValue[0] ); diff --git a/odk/examples/java/Storage/Test01.java b/odk/examples/java/Storage/Test01.java index 9cf22f30ddac..fc669dfcd991 100644 --- a/odk/examples/java/Storage/Test01.java +++ b/odk/examples/java/Storage/Test01.java @@ -118,7 +118,7 @@ public class Test01 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/odk/examples/java/Storage/Test04.java b/odk/examples/java/Storage/Test04.java index ec123295b6e5..9d0f623542de 100644 --- a/odk/examples/java/Storage/Test04.java +++ b/odk/examples/java/Storage/Test04.java @@ -142,7 +142,7 @@ public class Test04 implements StorageTest { if ( !m_aTestHelper.copyElementTo( xTempStorage, "SubStorage1", xTempFileStorage ) ) return false; - // if storage is not commited before disposing all the changes will be lost + // if storage is not committed before disposing all the changes will be lost if ( !m_aTestHelper.commitStorage( xTempSubStorage2 ) ) return false; diff --git a/odk/examples/java/Storage/Test07.java b/odk/examples/java/Storage/Test07.java index 753ad803856d..ad8b7559e697 100644 --- a/odk/examples/java/Storage/Test07.java +++ b/odk/examples/java/Storage/Test07.java @@ -96,7 +96,7 @@ public class Test07 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/odk/examples/java/Storage/Test08.java b/odk/examples/java/Storage/Test08.java index d8f0b52f9602..c8054fb24ed8 100644 --- a/odk/examples/java/Storage/Test08.java +++ b/odk/examples/java/Storage/Test08.java @@ -151,7 +151,7 @@ public class Test08 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/odk/examples/java/Storage/Test09.java b/odk/examples/java/Storage/Test09.java index e31b810ba083..0d93cdd4d142 100644 --- a/odk/examples/java/Storage/Test09.java +++ b/odk/examples/java/Storage/Test09.java @@ -93,7 +93,7 @@ public class Test09 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/odk/examples/java/Text/GraphicsInserter.java b/odk/examples/java/Text/GraphicsInserter.java index 7676cd16f938..3f8c5c734647 100644 --- a/odk/examples/java/Text/GraphicsInserter.java +++ b/odk/examples/java/Text/GraphicsInserter.java @@ -66,7 +66,7 @@ public class GraphicsInserter { (com.sun.star.frame.XComponentLoader)UnoRuntime.queryInterface( com.sun.star.frame.XComponentLoader.class, xDesktop); - // Load a Writer document, which will be automaticly displayed + // Load a Writer document, which will be automatically displayed com.sun.star.lang.XComponent xComp = xCompLoader.loadComponentFromURL( "private:factory/swriter", "_blank", 0, new com.sun.star.beans.PropertyValue[0]); diff --git a/odk/examples/java/ToDo/ToDo.java b/odk/examples/java/ToDo/ToDo.java index 9a50cc0627fd..789d129aadde 100644 --- a/odk/examples/java/ToDo/ToDo.java +++ b/odk/examples/java/ToDo/ToDo.java @@ -905,7 +905,7 @@ public class ToDo { /** Writing the stack trace from an exception to a string and calling * the method showMessage() with this string. - * @param exception The occured exception. + * @param exception The occurred exception. * @see showMessage */ public void showExceptionMessage( Exception exception ) { diff --git a/odk/setsdkenv_unix.sh.in b/odk/setsdkenv_unix.sh.in index 96ced44d6b9a..6c011700fedf 100644 --- a/odk/setsdkenv_unix.sh.in +++ b/odk/setsdkenv_unix.sh.in @@ -20,7 +20,7 @@ # ############################################################### -# This script starts a new shell and sets all enviroment variables, which +# This script starts a new shell and sets all environment variables, which # are necessary for building the examples of the Office Development Kit. # The Script was developed for the operating systems Solaris, Linux and MacOS. diff --git a/odk/setsdkenv_windows.template b/odk/setsdkenv_windows.template index ffbdf79b6e35..9a31341e8965 100644 --- a/odk/setsdkenv_windows.template +++ b/odk/setsdkenv_windows.template @@ -19,7 +19,7 @@ rem under the License. rem rem ************************************************************* @echo off -REM This script sets all enviroment variables, which +REM This script sets all environment variables, which REM are necessary for building the examples of the Office Development Kit. REM The Script was developed for the operating systems Windows. REM The SDK name diff --git a/odk/source/com/sun/star/lib/loader/InstallationFinder.java b/odk/source/com/sun/star/lib/loader/InstallationFinder.java index 3ccc2f0aa7f8..120b54f8c32b 100644 --- a/odk/source/com/sun/star/lib/loader/InstallationFinder.java +++ b/odk/source/com/sun/star/lib/loader/InstallationFinder.java @@ -44,7 +44,7 @@ import java.util.Vector; * installation. * Note, that Java 1.3.1 and Java 1.4 don't support environment variables * (System.getenv() throws java.lang.Error) and therefore setting the UNO_PATH - * enviroment variable won't work with those Java versions. + * environment variable won't work with those Java versions. * If no UNO installation is specified by the user, the default installation * on the system will be returned.</p> * @@ -75,7 +75,7 @@ final class InstallationFinder { * Gets the path of a UNO installation. * * @return the installation path or <code>null</code>, if no installation - * was specified or found, or if an error occured + * was specified or found, or if an error occurred */ public static String getPath() { @@ -136,7 +136,7 @@ final class InstallationFinder { * java -D<property name>=<installation path> -jar application.jar.</p> * * @return the installation path or <code>null</code>, if no installation - * was specified in the Java system property or if an error occured + * was specified in the Java system property or if an error occurred */ private static String getPathFromProperty( String prop ) { @@ -160,7 +160,7 @@ final class InstallationFinder { * Java versions.</p> * * @return the installation path or <code>null</code>, if no installation - * was specified in the environment variable or if an error occured + * was specified in the environment variable or if an error occurred */ private static String getPathFromEnvVar( String var ) { @@ -184,7 +184,7 @@ final class InstallationFinder { * <p>This method is called on the Windows platform only.</p> * * @return the installation path or <code>null</code>, if no installation - * was found or if an error occured + * was found or if an error occurred */ private static String getPathFromWindowsRegistry() { @@ -238,7 +238,7 @@ final class InstallationFinder { * Java versions.</p> * * @return the installation path or <code>null</code>, if no installation - * was found or if an error occured + * was found or if an error occurred */ private static String getPathFromPathEnvVar() { @@ -297,7 +297,7 @@ final class InstallationFinder { * is in one of the directories listed in the PATH environment variable.</p> * * @return the installation path or <code>null</code>, if no installation - * was found or if an error occured + * was found or if an error occurred */ private static String getPathFromWhich() { @@ -323,7 +323,7 @@ final class InstallationFinder { return null; } - // empty standard error stream in a seperate thread + // empty standard error stream in a separate thread StreamGobbler gobbler = new StreamGobbler( proc.getErrorStream() ); gobbler.start(); @@ -393,7 +393,7 @@ final class InstallationFinder { * OOo 2.0.</p> * * @return the installation path or <code>null</code>, if no installation - * was found or if an error occured + * was found or if an error occurred */ private static String getPathFromSVersionFile() { diff --git a/odk/source/unoapploader/unx/unoapploader.c b/odk/source/unoapploader/unx/unoapploader.c index 44b7970fa392..552c8784a2d7 100644 --- a/odk/source/unoapploader/unx/unoapploader.c +++ b/odk/source/unoapploader/unx/unoapploader.c @@ -232,7 +232,7 @@ int main( int argc, char *argv[] ) * Gets the path of a UNO installation. * * @return the installation path or NULL, if no installation was specified or - * found, or if an error occured + * found, or if an error occurred */ char const* getPath() { @@ -255,7 +255,7 @@ char const* getPath() * * @param argv0 specifies the argv[0] parameter of the main function * - * @return the application's executable file name or NULL, if an error occured + * @return the application's executable file name or NULL, if an error occurred */ char* createCommandName( char* argv0 ) { diff --git a/odk/source/unoapploader/win/unoapploader.c b/odk/source/unoapploader/win/unoapploader.c index abcd0e7e3136..0fcfb742f6e3 100644 --- a/odk/source/unoapploader/win/unoapploader.c +++ b/odk/source/unoapploader/win/unoapploader.c @@ -155,7 +155,7 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, * Gets the path of a UNO installation. * * @return the installation path or NULL, if no installation was specified or - * found, or if an error occured + * found, or if an error occurred */ char const* getPath() { @@ -178,7 +178,7 @@ char const* getPath() * the executable name * * @return the command line for the application process or NULL, if an error - * occured + * occurred */ char* createCommandLine( char* appendix ) { diff --git a/offapi/com/sun/star/accessibility/AccessibleEventId.idl b/offapi/com/sun/star/accessibility/AccessibleEventId.idl index 3caf103af92f..39584ead97ec 100644 --- a/offapi/com/sun/star/accessibility/AccessibleEventId.idl +++ b/offapi/com/sun/star/accessibility/AccessibleEventId.idl @@ -164,7 +164,7 @@ published constants AccessibleEventId <member>AccessibleEventObject::OldValue</member> and <member>AccessibleEventObject::NewValue</member> field contain the old and new value as a number. Its exact type is implementation - dependant but has to be the same as is returned by the + dependent but has to be the same as is returned by the <member>XAccessibleValue::getCurrentValue</member> function. */ @@ -175,7 +175,7 @@ published constants AccessibleEventId <p>Not used: The <member>AccessibleEventObject::OldValue</member> and <member>AccessibleEventObject::NewValue</member> fields contain - refrences to the old and new predecessor. Note that both references + references to the old and new predecessor. Note that both references my be <NULL/> to indicate that a flow to the sending object has not existed or does not exist anymore.</p> */ @@ -186,7 +186,7 @@ published constants AccessibleEventId <p>Not used: The <member>AccessibleEventObject::OldValue</member> and <member>AccessibleEventObject::NewValue</member> fields contain - refrences to the old and new successor. Note that both references + references to the old and new successor. Note that both references my be <NULL/> to indicate that a flow from the sending object has not existed or does not exist anymore.</p> */ diff --git a/offapi/com/sun/star/accessibility/AccessibleEventObject.idl b/offapi/com/sun/star/accessibility/AccessibleEventObject.idl index 37d357067f98..eb4c252eda73 100644 --- a/offapi/com/sun/star/accessibility/AccessibleEventObject.idl +++ b/offapi/com/sun/star/accessibility/AccessibleEventObject.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module accessibility { the <type>XAccessibleEventBroadcaster</type> and notified to <type>XAccessibleEventListener</type>. - <p>It is usualy implemented by <type>AccessibleContext</type>. + <p>It is usually implemented by <type>AccessibleContext</type>. @since OpenOffice 1.1.2 */ diff --git a/offapi/com/sun/star/accessibility/AccessibleRelationType.idl b/offapi/com/sun/star/accessibility/AccessibleRelationType.idl index a23601c75e88..2b824f397e66 100644 --- a/offapi/com/sun/star/accessibility/AccessibleRelationType.idl +++ b/offapi/com/sun/star/accessibility/AccessibleRelationType.idl @@ -27,7 +27,7 @@ module com { module sun { module star { module accessibility { /** Collection of relation types. - <p>This list of constants defines the availabe types of relations that + <p>This list of constants defines the available types of relations that are usable by <type>AccessibleRelation</type>.</p> <p>We are using constants instead of a more typesafe enum. The reason diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl index 13ea173d6927..86f220301b1d 100644 --- a/offapi/com/sun/star/accessibility/AccessibleRole.idl +++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl @@ -148,7 +148,7 @@ published constants AccessibleRole */ const short DOCUMENT = 13; - /** Embeded (OLE) object. + /** Embedded (OLE) object. */ const short EMBEDDED_OBJECT = 14; diff --git a/offapi/com/sun/star/accessibility/XAccessible.idl b/offapi/com/sun/star/accessibility/XAccessible.idl index 889edeccc9b7..edfce5e85dcb 100644 --- a/offapi/com/sun/star/accessibility/XAccessible.idl +++ b/offapi/com/sun/star/accessibility/XAccessible.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module accessibility { <type>XAccessibleContext</type> makes it possible to split up the implementation of the class that is made accessible and the actual accessibility code into two - (mostly) independant parts. The only necessary dependance is the + (mostly) independent parts. The only necessary dependence is the <member scope="XAccessible">getAccessibleContext()</member> function that returns the accessible context. This one-way link has to be persistant in some sense: As long as there is at least one reference to @@ -63,7 +63,7 @@ published interface XAccessible : ::com::sun::star::uno::XInterface <p>The idea to let this interface only return an <type>XAccessibleContext</type> instead of directly supporting its - functions is to allow the seperation of the implementation of the + functions is to allow the separation of the implementation of the functions that make a class accessible from the implementation of that class. You may, of course, implement <type>XAccessible</type> and <type>XAccessibleContext</type> in one class.</p> diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext.idl b/offapi/com/sun/star/accessibility/XAccessibleContext.idl index cfc9b5b3106c..6f233f9b8926 100644 --- a/offapi/com/sun/star/accessibility/XAccessibleContext.idl +++ b/offapi/com/sun/star/accessibility/XAccessibleContext.idl @@ -167,7 +167,7 @@ published interface XAccessibleContext : ::com::sun::star::uno::XInterface empty list. @return - The returned value is either an empty referece or a reference to + The returned value is either an empty reference or a reference to a valid object that represents a copy of the objects list of relations. */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl b/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl index cd69161504f5..bd5f4d5b3b62 100644 --- a/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl +++ b/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module accessibility { /** Implement this interface to give access to an object's set of relations. - <p>Such relation are modeled with the <type>AccessibleRelation</type> + <p>Such relations are modelled with the <type>AccessibleRelation</type> structure. This interface is used for representing sets of relations between <type>Accessible</type> objects. Most of the convenience methods of the corresponding AccessibleRelationSet interface of the Java diff --git a/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl b/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl index 2a179d7d2240..6272ebe506de 100644 --- a/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl +++ b/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl @@ -63,7 +63,7 @@ published interface XAccessibleStateSet : ::com::sun::star::uno::XInterface the constants of <type>AccessibleStateType</type>. @return - Returns <TRUE/> if the given state is a memeber of this object's + Returns <TRUE/> if the given state is a member of this object's state set and <FALSE/> otherwise. */ boolean contains ([in] short aState); diff --git a/offapi/com/sun/star/accessibility/XAccessibleText.idl b/offapi/com/sun/star/accessibility/XAccessibleText.idl index d0d2ba379b1f..29c9b97b8a25 100644 --- a/offapi/com/sun/star/accessibility/XAccessibleText.idl +++ b/offapi/com/sun/star/accessibility/XAccessibleText.idl @@ -165,7 +165,7 @@ published interface XAccessibleText : ::com::sun::star::uno::XInterface character then they are ignored, too. <p>An empty sequence signals the callers interest in all the - attributes. This is usefull in two cases: a) Simply as a way to + attributes. This is useful in two cases: a) Simply as a way to avoid passing a potentially large array to the called object or b) when the caller does not know what attributes the called objects supports but is interested in all of them @@ -200,7 +200,7 @@ published interface XAccessibleText : ::com::sun::star::uno::XInterface represents the current input position and will therefore typically be queried by AT more often than other positions. Because it does not represent an existing character its bounding box is defined in - relation to preceding characters. It should be rougly equivalent to + relation to preceding characters. It should be roughly equivalent to the bounding box of some character when inserted at the end of the text. Its height typically being the maximal height of all the characters in the text or the height of the preceding character, its diff --git a/offapi/com/sun/star/animations/AnimationNodeType.idl b/offapi/com/sun/star/animations/AnimationNodeType.idl index 8356d6488d60..8a309dd36fbc 100644 --- a/offapi/com/sun/star/animations/AnimationNodeType.idl +++ b/offapi/com/sun/star/animations/AnimationNodeType.idl @@ -31,7 +31,7 @@ /** This constants defines a type for an animation node. <br> - It can be used to quickly identify semantic blocks inside an animation hierachy. + It can be used to quickly identify semantic blocks inside an animation hierarchy. @see AnimationNode */ diff --git a/offapi/com/sun/star/animations/Event.idl b/offapi/com/sun/star/animations/Event.idl index 9c6dd36fd5d1..5ffd82411495 100644 --- a/offapi/com/sun/star/animations/Event.idl +++ b/offapi/com/sun/star/animations/Event.idl @@ -53,7 +53,7 @@ struct Event /** an option repeat value. If the <member>Trigger</member> is <const>EventTrigger</const>, this is the number of repeats - after wich the event is initially raised. + after which the event is initially raised. */ unsigned short Repeat; }; diff --git a/offapi/com/sun/star/animations/XAnimationNode.idl b/offapi/com/sun/star/animations/XAnimationNode.idl index 3ec875465821..99d8267cf4e4 100644 --- a/offapi/com/sun/star/animations/XAnimationNode.idl +++ b/offapi/com/sun/star/animations/XAnimationNode.idl @@ -47,7 +47,7 @@ published interface XAnimationNode : ::com::sun::star::container::XChild */ [readonly, attribute] short Type; - /** a sequnece of values that define the begining of this element + /** a sequence of values that define the beginning of this element <br> <member>Begin</member> is <ul> @@ -111,7 +111,7 @@ published interface XAnimationNode : ::com::sun::star::container::XChild children (e.g. animate or area elements). <member>EndSync</member> is - eiter a <atom>short</atom> constant from <const>EndSync</const>, + either a <atom>short</atom> constant from <const>EndSync</const>, an interface reference to a child <type>XTimeContainer</type> or <void/>. diff --git a/offapi/com/sun/star/awt/AccessibleListBoxList.idl b/offapi/com/sun/star/awt/AccessibleListBoxList.idl index 89902d0672ac..2bdc974bff8e 100644 --- a/offapi/com/sun/star/awt/AccessibleListBoxList.idl +++ b/offapi/com/sun/star/awt/AccessibleListBoxList.idl @@ -32,7 +32,7 @@ module com { module sun { module star { module awt { /** Accessible list box lists are used by list boxes as container for - the list items. In addtion of the simple container functionality of the + the list items. In addition of the simple container functionality of the <type>AccessibleList</type> service the <type scope="com::sun::star::accessibility">XAccessibleSelection</type> interface is supported. diff --git a/offapi/com/sun/star/awt/Command.idl b/offapi/com/sun/star/awt/Command.idl index 0c61a958fae0..129d616b7a53 100644 --- a/offapi/com/sun/star/awt/Command.idl +++ b/offapi/com/sun/star/awt/Command.idl @@ -54,7 +54,7 @@ published constants Command //------------------------------------------------------------------------- - /** specifies the begining of an auto scroll operation. + /** specifies the beginning of an auto scroll operation. */ const short STARTAUTOSCROLL = 4; diff --git a/offapi/com/sun/star/awt/MenuItemType.idl b/offapi/com/sun/star/awt/MenuItemType.idl index d667b891e1d7..390c4d5f132b 100644 --- a/offapi/com/sun/star/awt/MenuItemType.idl +++ b/offapi/com/sun/star/awt/MenuItemType.idl @@ -29,7 +29,7 @@ module com { module sun { module star { module awt { */ published enum MenuItemType { - /** specifies that the menu item type is unkown. + /** specifies that the menu item type is unknown. */ DONTKNOW, diff --git a/offapi/com/sun/star/awt/UnoControlEditModel.idl b/offapi/com/sun/star/awt/UnoControlEditModel.idl index cc63d5c590c6..fed04e3db75e 100644 --- a/offapi/com/sun/star/awt/UnoControlEditModel.idl +++ b/offapi/com/sun/star/awt/UnoControlEditModel.idl @@ -65,7 +65,7 @@ published service UnoControlEditModel //------------------------------------------------------------------------- - /** If set to true an horizontal scrollbar will be added automaticly + /** If set to true an horizontal scrollbar will be added automatically when needed. @since OpenOffice 2.3 @@ -74,7 +74,7 @@ published service UnoControlEditModel //------------------------------------------------------------------------- - /** If set to true an vertical scrollbar will be added automaticly + /** If set to true an vertical scrollbar will be added automatically when needed. @since OpenOffice 2.3 diff --git a/offapi/com/sun/star/awt/XExtendedToolkit.idl b/offapi/com/sun/star/awt/XExtendedToolkit.idl index 99faa44ab9e8..e141ac2c5d23 100644 --- a/offapi/com/sun/star/awt/XExtendedToolkit.idl +++ b/offapi/com/sun/star/awt/XExtendedToolkit.idl @@ -141,7 +141,7 @@ published interface XExtendedToolkit : ::com::sun::star::uno::XInterface /** Remove the specified listener from the list of listeners. @param xListener If the reference is empty then nothing will be changed. If the - listener has been registered twice (or more) then all refrences + listener has been registered twice (or more) then all references will be removed. */ [oneway] void removeTopWindowListener ( @@ -167,7 +167,7 @@ published interface XExtendedToolkit : ::com::sun::star::uno::XInterface /** Remove the specified listener from the list of listeners. @param xHandler If the reference is empty then nothing will be changed. If the - handler has been registered twice (or more) then all refrences + handler has been registered twice (or more) then all references will be removed. */ [oneway] void removeKeyHandler ( @@ -193,7 +193,7 @@ published interface XExtendedToolkit : ::com::sun::star::uno::XInterface /** Remove the specified listener from the list of listeners. @param xListener If the reference is empty then nothing will be changed. If the - listener has been registered twice (or more) then all refrences + listener has been registered twice (or more) then all references will be removed. */ [oneway] void removeFocusListener ( diff --git a/offapi/com/sun/star/awt/XFont.idl b/offapi/com/sun/star/awt/XFont.idl index 6afb98e913a0..203ec31467e1 100644 --- a/offapi/com/sun/star/awt/XFont.idl +++ b/offapi/com/sun/star/awt/XFont.idl @@ -42,7 +42,7 @@ //============================================================================= -/** decribes a font on a specific device. +/** describes a font on a specific device. <p>All values are in pixels within this device.</p> */ diff --git a/offapi/com/sun/star/awt/XItemListListener.idl b/offapi/com/sun/star/awt/XItemListListener.idl index 24b3090b73de..27e03284e716 100644 --- a/offapi/com/sun/star/awt/XItemListListener.idl +++ b/offapi/com/sun/star/awt/XItemListListener.idl @@ -62,7 +62,7 @@ published interface XItemListListener : ::com::sun::star::lang::XEventListener [in] ::com::sun::star::lang::EventObject Event ); - /** is called when the changes to the item list which occured are too complex to be notified + /** is called when the changes to the item list which occurred are too complex to be notified in single events. <p>Consumers of this event should discard their cached information about the current item list, diff --git a/offapi/com/sun/star/awt/XLayoutFlow.idl b/offapi/com/sun/star/awt/XLayoutFlow.idl index 18c7ca20d78e..63b5a4f0373b 100644 --- a/offapi/com/sun/star/awt/XLayoutFlow.idl +++ b/offapi/com/sun/star/awt/XLayoutFlow.idl @@ -30,7 +30,7 @@ module com { module sun { module star { module awt { //============================================================================= -/** Enables height-for-width layout negociations, which allows for label wrapping +/** Enables height-for-width layout negotiations, which allows for label wrapping and flow containers. Can be implemented by either a container or an ordinary widget; whether its parent will honor it is another story, so keep implementing getMinimumSize(). @@ -39,7 +39,7 @@ module com { module sun { module star { module awt { */ interface XLayoutFlow { - /** returns the prefered high this layout element would need for the given width. */ + /** returns the preferred high this layout element would need for the given width. */ long getHeightForWidth( [in] long Width ); /** Allow the container/widget to toggle the functionality. */ diff --git a/offapi/com/sun/star/awt/XMessageBoxFactory.idl b/offapi/com/sun/star/awt/XMessageBoxFactory.idl index bf1b8b752a8d..1c77d623cf85 100644 --- a/offapi/com/sun/star/awt/XMessageBoxFactory.idl +++ b/offapi/com/sun/star/awt/XMessageBoxFactory.idl @@ -52,7 +52,7 @@ published interface XMessageBoxFactory : com::sun::star::uno::XInterface <p>A combination of <type>MessageBoxButtons</type>.</p> <p>A <member scope="com::sun::star::awt">MessageBoxType::INFOBOX</member> - ignores this paramter, instead it uses a + ignores this parameter, instead it uses a <member scope="com::sun::star::awt">MessageBoxButtons::BUTTONS_OK</member>.</p> @param aTitle diff --git a/offapi/com/sun/star/awt/XPopupMenu.idl b/offapi/com/sun/star/awt/XPopupMenu.idl index ad2998ec0db5..e7f1b6278ee8 100644 --- a/offapi/com/sun/star/awt/XPopupMenu.idl +++ b/offapi/com/sun/star/awt/XPopupMenu.idl @@ -126,7 +126,7 @@ published interface XPopupMenu: XMenu <p>The <type>KeyEvent</type> is <b>only</b> used as a container to transport the shortcut information, this methods only draws the text corresponding to this keyboard shortcut. The client code is responsible for listening to - keyboard events (typicaly done via <type>XUserInputInterception</type>), + keyboard events (typically done via <type>XUserInputInterception</type>), and dispatch the respective command.</p> @param nItemId diff --git a/offapi/com/sun/star/awt/XScrollBar.idl b/offapi/com/sun/star/awt/XScrollBar.idl index 61d2c138aad8..a344edc52d95 100644 --- a/offapi/com/sun/star/awt/XScrollBar.idl +++ b/offapi/com/sun/star/awt/XScrollBar.idl @@ -64,7 +64,7 @@ published interface XScrollBar: com::sun::star::uno::XInterface //------------------------------------------------------------------------- /** sets the scroll value, visible area and maximum scroll value - of the scoll bar. + of the scroll bar. */ [oneway] void setValues( [in] long nValue, [in] long nVisible, diff --git a/offapi/com/sun/star/awt/XSimpleTabController.idl b/offapi/com/sun/star/awt/XSimpleTabController.idl index 9c520a17e579..5f30aa023a44 100644 --- a/offapi/com/sun/star/awt/XSimpleTabController.idl +++ b/offapi/com/sun/star/awt/XSimpleTabController.idl @@ -52,7 +52,7 @@ published interface XSimpleTabController : com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** create a new tab and return an unique ID, - which can be used further to adress this tab by using other methods + which can be used further to address this tab by using other methods of this interface. @return [long @@ -67,7 +67,7 @@ published interface XSimpleTabController : com::sun::star::uno::XInterface the ID of the tab, which should be removed. @throws ::com::sun::star::lang::IndexOutOfBoundsException - if the specified ID isnt used inside this tab controller. + if the specified ID isn't used inside this tab controller. */ void removeTab( [in] long ID ) raises( com::sun::star::lang::IndexOutOfBoundsException ); @@ -102,7 +102,7 @@ published interface XSimpleTabController : com::sun::star::uno::XInterface the ID of the tab, which should be changed. @throws ::com::sun::star::lang::IndexOutOfBoundsException - if the specified ID isnt used inside this tab controller. + if the specified ID isn't used inside this tab controller. */ void setTabProps( [in] long ID , [in] sequence< com::sun::star::beans::NamedValue > Properties ) @@ -115,7 +115,7 @@ published interface XSimpleTabController : com::sun::star::uno::XInterface the ID of the tab. @throws ::com::sun::star::lang::IndexOutOfBoundsException - if the specified ID isnt used inside this tab controller. + if the specified ID isn't used inside this tab controller. */ sequence< com::sun::star::beans::NamedValue > getTabProps( [in] long ID ) raises( com::sun::star::lang::IndexOutOfBoundsException ); @@ -131,7 +131,7 @@ published interface XSimpleTabController : com::sun::star::uno::XInterface the ID of the new active tab. @throws ::com::sun::star::lang::IndexOutOfBoundsException - if the specified ID isnt used inside this tab controller. + if the specified ID isn't used inside this tab controller. */ void activateTab( [in] long ID ) raises( com::sun::star::lang::IndexOutOfBoundsException ); diff --git a/offapi/com/sun/star/awt/XUserInputInterception.idl b/offapi/com/sun/star/awt/XUserInputInterception.idl index 3017598b2b04..da13c44e2e68 100644 --- a/offapi/com/sun/star/awt/XUserInputInterception.idl +++ b/offapi/com/sun/star/awt/XUserInputInterception.idl @@ -62,7 +62,7 @@ published interface XUserInputInterception : ::com::sun::star::uno::XInterface /** Remove the specified listener from the list of listeners. @param xHandler If the reference is empty then nothing will be changed. If the - handler has been registered twice (or more) then all refrences + handler has been registered twice (or more) then all references will be removed. */ [oneway] void removeKeyHandler ( @@ -84,7 +84,7 @@ published interface XUserInputInterception : ::com::sun::star::uno::XInterface /** Remove the specified listener from the list of listeners. @param xHandler If the reference is empty then nothing will be changed. If the - handler has been registered twice (or more) then all refrences + handler has been registered twice (or more) then all references will be removed. */ [oneway] void removeMouseClickHandler ( diff --git a/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl b/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl index de067372113a..31086e2a96d8 100755 --- a/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl +++ b/offapi/com/sun/star/awt/grid/SortableGridDataModel.idl @@ -48,7 +48,7 @@ interface XMutableGridDataModel; in this column is taken into account. Further read requests to this column will assume that all non-<VOID/> data is of the same type.</p> - <p>Consequently, you cannot use this service with data sets containing heterogenous data in a given column.</p> + <p>Consequently, you cannot use this service with data sets containing heterogeneous data in a given column.</p> <p>All requests made via the <type>XMutableGridDataModel</type> are delegated to the <code>XMutableGridDataModel</code> instance passed in the service constructor.</p> diff --git a/offapi/com/sun/star/awt/grid/XGridColumn.idl b/offapi/com/sun/star/awt/grid/XGridColumn.idl index 32fa84983a00..730f4a9492bd 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumn.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumn.idl @@ -96,7 +96,7 @@ published interface XGridColumn */ [attribute] ::com::sun::star::style::HorizontalAlignment HorizontalAlign; - /** A title is displayed in the colum header row if <method>UnoControlGridModel::ShowColumnHeader</method> is set to <true/>**/ + /** A title is displayed in the column header row if <method>UnoControlGridModel::ShowColumnHeader</method> is set to <true/>**/ [attribute] string Title; /** is the help text associated with the column. diff --git a/offapi/com/sun/star/awt/grid/XGridRowSelection.idl b/offapi/com/sun/star/awt/grid/XGridRowSelection.idl index f508c2e4d312..15350deb1be7 100644 --- a/offapi/com/sun/star/awt/grid/XGridRowSelection.idl +++ b/offapi/com/sun/star/awt/grid/XGridRowSelection.idl @@ -65,9 +65,9 @@ published interface XGridRowSelection void deselectRow( [in] long RowIndex ) raises ( ::com::sun::star::lang::IndexOutOfBoundsException ); - /** Returns the indicies of all selected rows. + /** Returns the indices of all selected rows. @returns - a sequence of indicies. + a sequence of indices. */ sequence< long > getSelectedRows(); diff --git a/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl b/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl index 9d7fd61a16bc..6cf24243d8b5 100644 --- a/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl +++ b/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl @@ -74,10 +74,10 @@ published interface XTreeExpansionListener: com::sun::star::lang::XEventListener void treeCollapsing( [in] TreeExpansionEvent Event ) raises ( ExpandVetoException ); - /** Called whenever a node in the tree has been succesfully expanded. */ + /** Called whenever a node in the tree has been successfully expanded. */ void treeExpanded( [in] TreeExpansionEvent Event ); - /** Called whenever a node in the tree has been succesfully collapsed. */ + /** Called whenever a node in the tree has been successfully collapsed. */ void treeCollapsed( [in] TreeExpansionEvent Event ); }; diff --git a/offapi/com/sun/star/chart/ChartAxis.idl b/offapi/com/sun/star/chart/ChartAxis.idl index ee73b5f8c804..07a80be5e106 100644 --- a/offapi/com/sun/star/chart/ChartAxis.idl +++ b/offapi/com/sun/star/chart/ChartAxis.idl @@ -187,7 +187,7 @@ published service ChartAxis //------------------------------------------------------------------------- - /** if the current axis is a date-axis the intervals are choosen as given with TimeIncrement + /** if the current axis is a date-axis the intervals are chosen as given with TimeIncrement @since OpenOffice 3.4 */ [optional, maybevoid, property] TimeIncrement TimeIncrement; diff --git a/offapi/com/sun/star/chart/ChartAxisType.idl b/offapi/com/sun/star/chart/ChartAxisType.idl index c5d3878fe061..2f1e56ed5d04 100644 --- a/offapi/com/sun/star/chart/ChartAxisType.idl +++ b/offapi/com/sun/star/chart/ChartAxisType.idl @@ -35,7 +35,7 @@ module chart */ published constants ChartAxisType { - /** the type of the axis is choosen automatically dependent on the chart type, the dimension and the underlying data + /** the type of the axis is chosen automatically dependent on the chart type, the dimension and the underlying data */ const long AUTOMATIC = 0; diff --git a/offapi/com/sun/star/chart/TimeIncrement.idl b/offapi/com/sun/star/chart/TimeIncrement.idl index e1e1fff0a2d5..c66be676d7ef 100644 --- a/offapi/com/sun/star/chart/TimeIncrement.idl +++ b/offapi/com/sun/star/chart/TimeIncrement.idl @@ -51,7 +51,7 @@ published struct TimeIncrement /** if the any contains a constant of type <type>::com::sun::star::chart::TimeUnit</type> this is the smallest time unit that is displayed on the date-time axis. Otherwise, if the any is empty or contains an incompatible type, - the resolution is choosen automatically by the application. + the resolution is chosen automatically by the application. */ any TimeResolution; }; diff --git a/offapi/com/sun/star/chart2/data/DataSequenceRole.idl b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl index d68659f661e4..9caae2d1d068 100644 --- a/offapi/com/sun/star/chart2/data/DataSequenceRole.idl +++ b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl @@ -84,11 +84,11 @@ module data would be the closing course.</dd> <dt>values-min</dt> <dd>the minimum value of a series of values. In a stock-chart - this would be the lowest course that occured during + this would be the lowest course that occurred during trading.</dd> <dt>values-max</dt> <dd>the maximum value of a series of values. In a stock-chart - this would be the highest course that occured during + this would be the highest course that occurred during trading.</dd> </dl> */ diff --git a/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl b/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl index d714c1312b0d..627ca95164c5 100644 --- a/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl +++ b/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl @@ -42,7 +42,7 @@ service TabularDataProviderArguments { /** the range address string spanning all data. - <p>The range adress string must be interpretable by the + <p>The range address string must be interpretable by the component that implements <type>XDataProvider</type> and gets this property as argument to <member>XDataProvider::detectArguments</member>.</p> diff --git a/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl index 8a08ac48d029..f6b4ef93d4ce 100644 --- a/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl +++ b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl @@ -100,7 +100,7 @@ interface XDatabaseDataProvider master field.<br/> If a string in this property denotes both a column name and a parameter name, it is undefined which way it is interpreted, but implementations of the service are required - to either decide for the paramter or the column, and proceed as usual. + to either decide for the parameter or the column, and proceed as usual. </p> <p>The columns specified herein typically represent a part of the primary key fields or their aliases of the detail report.</p> @@ -138,7 +138,7 @@ interface XDatabaseDataProvider */ [attribute,bound] long CommandType; - /** specifies an addtional filter to optinally use. + /** specifies an additional filter to optinally use. <p>The Filter string has to form a SQL WHERE-clause, <em>without</em> the WHERE-string itself.</p> diff --git a/offapi/com/sun/star/configuration/AdministrationProvider.idl b/offapi/com/sun/star/configuration/AdministrationProvider.idl index a823d0a9fa89..f2983b2961c0 100644 --- a/offapi/com/sun/star/configuration/AdministrationProvider.idl +++ b/offapi/com/sun/star/configuration/AdministrationProvider.idl @@ -123,7 +123,7 @@ published service AdministrationProvider accept a single argument named <code>nodepath</code> of type <atom>string</atom>. This argument must contain the absolute path to an element of the configuration. The view that is selected consists of the named element and - all its decendants. The administrative entity is the default for the + all its descendants. The administrative entity is the default for the <type>AdministrationProvider</type>. Usually this is the largest entity encompassing all entities accessible from this instance. In other words this can be used to influence as global a scope as possible. @@ -145,7 +145,7 @@ published service AdministrationProvider the locale set up for the user. But this service by default gets data for all locales for which data is present. Locale-dependent values in this case are replaced by a <type>SetAccess</type> using the language names as accessors. - This also allows targetted setting of values for selected locales. + This also allows targeted setting of values for selected locales. This behavior can be requested explicitly by specifing a special argument value <code>locale = "*"</code>. </p> diff --git a/offapi/com/sun/star/configuration/ConfigurationProvider.idl b/offapi/com/sun/star/configuration/ConfigurationProvider.idl index 42066114edc8..042b849c6272 100644 --- a/offapi/com/sun/star/configuration/ConfigurationProvider.idl +++ b/offapi/com/sun/star/configuration/ConfigurationProvider.idl @@ -105,7 +105,7 @@ published service ConfigurationProvider accept a single argument named <code>nodepath</code> of type <atom>string</atom>. This argument must contain the absolute path to an element of the configuration. The view that is selected consists of the named element and - all its decendants. + all its descendants. </p> <p>Other arguments can be used to control the behavior of the view. These diff --git a/offapi/com/sun/star/configuration/ConfigurationRegistry.idl b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl index 1a2ac1b19ae9..e9a16d84f87c 100644 --- a/offapi/com/sun/star/configuration/ConfigurationRegistry.idl +++ b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl @@ -82,7 +82,7 @@ published service ConfigurationRegistry /** is used to commit changes to the configuration. <p>As specified for the <type scope="com::sun::star::configuration">ConfigurationUpdateAccess</type> - service, all changes made to an configuration subtree have to be commited + service, all changes made to an configuration subtree have to be committed before they become persistent. To do this for a configuration accessed as a registry, call <method scope="com::sun::star::util">XFlushable::flush</method>. diff --git a/offapi/com/sun/star/configuration/HierarchyAccess.idl b/offapi/com/sun/star/configuration/HierarchyAccess.idl index 91fe8e7fedd0..7c2de3ad36eb 100644 --- a/offapi/com/sun/star/configuration/HierarchyAccess.idl +++ b/offapi/com/sun/star/configuration/HierarchyAccess.idl @@ -107,7 +107,7 @@ published service HierarchyAccess any other interfaces that allow access to or manipulation of subnodes selected by name or hierarchical name. </p> - <p>If an inexact name could be matched to either a simple or a hierachical + <p>If an inexact name could be matched to either a simple or a hierarchical name, the simple (immediate child) name is preferred. </p> */ diff --git a/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl b/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl index 4fc6154650fd..8e5ebea2ae49 100644 --- a/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl +++ b/offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module configuration { module backen interface XBackendChangesNotifier: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- - /** adds the specified listener to receive events when changes occured. + /** adds the specified listener to receive events when changes occurred. @param aListener specifies the listener object. diff --git a/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl index 4b6930d7e11c..1e631ec7bc3a 100644 --- a/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl +++ b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module configuration { module bootstrap <type scope="com::sun::star::configuration::backend">DefaultBackend</type> of the component context. </p> - <p> The implementation is usally available as singleton in the context + <p> The implementation is usually available as a singleton in the context that it wraps.. </p> diff --git a/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl b/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl index 62f7a49c9ce7..cb295af84ec4 100644 --- a/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl +++ b/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl @@ -69,7 +69,7 @@ published interface XDataFormatTranslator : com::sun::star::uno::XInterface @returns A <type>DataFlavor</type> for the given system dependent data transfer type. - <p>If there is no appropriate mapping for a sytem dependent data type, the returned <type>DataFlavor</type> will be empty.</p> + <p>If there is no appropriate mapping for a system dependent data type, the returned <type>DataFlavor</type> will be empty.</p> */ DataFlavor getDataFlavorFromSystemDataType( [in] any aSysDataType ); }; diff --git a/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl b/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl index ca9b36e2e1d3..d567db289686 100644 --- a/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl +++ b/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl @@ -42,7 +42,7 @@ published constants RenderingCapabilities const byte Delayed = 1; //------------------------------------------------------------------------- - /** The implementation is able to store the data persistant in the system + /** The implementation is able to store the data persistent in the system so that it does not get lost when the source application no longer exist. */ const byte Persistant = 2; diff --git a/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl b/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl index dd3ff28226d7..fa509c73664c 100644 --- a/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl +++ b/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl @@ -45,7 +45,7 @@ exception InvalidRemovedParameterException: com::sun::star::uno::Exception { boolean PreviousValue; /** the <type>XPackage</type> that was already bound to the provided - <code>url</code> paramter during + <code>url</code> parameter during <member>XPackageRegistry::bindPackage</member>. <p>Must not be <NULL/>.</p> diff --git a/offapi/com/sun/star/deployment/XPackageInformationProvider.idl b/offapi/com/sun/star/deployment/XPackageInformationProvider.idl index 37bd8f8d1b44..2ef9b08b2668 100644 --- a/offapi/com/sun/star/deployment/XPackageInformationProvider.idl +++ b/offapi/com/sun/star/deployment/XPackageInformationProvider.idl @@ -44,7 +44,7 @@ published interface XPackageInformationProvider */ string getPackageLocation( [in] string extensionId ); - /** check if there are updates available for an extention. + /** check if there are updates available for an extension. @param extensionId the unique identifier of an extension. When the extensionId is empty, @@ -57,7 +57,7 @@ published interface XPackageInformationProvider */ sequence< sequence< string > > isUpdateAvailable( [in] string extensionId ); - /** returns a list of all installed extention with their version. + /** returns a list of all installed extension with their version. */ sequence< sequence< string > > getExtensionList(); }; diff --git a/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl b/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl index 5ff80203846b..ed866f0dd67e 100644 --- a/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl +++ b/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl @@ -62,7 +62,7 @@ interface XUpdateInformationProvider [in] string extensionId ) raises ( com::sun::star::uno::Exception ); - /** interrupts a getUpdateInformation call and let's it return immediatly. + /** interrupts a getUpdateInformation call and let's it return immediately. */ void cancel(); diff --git a/offapi/com/sun/star/document/DocumentInfo.idl b/offapi/com/sun/star/document/DocumentInfo.idl index 96f6d9b2a03e..e5a6e8a3d2ec 100644 --- a/offapi/com/sun/star/document/DocumentInfo.idl +++ b/offapi/com/sun/star/document/DocumentInfo.idl @@ -88,7 +88,7 @@ published service DocumentInfo interface XDocumentInfo; //------------------------------------------------------------------------- - /** neccessary to support normal properties + /** necessary to support normal properties */ interface com::sun::star::beans::XPropertySet; @@ -109,7 +109,7 @@ published service DocumentInfo [optional] interface com::sun::star::beans::XPropertyContainer; //------------------------------------------------------------------------- - /** contains the intial author of the document + /** contains the initial author of the document */ [property] string Author; diff --git a/offapi/com/sun/star/document/EmptyUndoStackException.idl b/offapi/com/sun/star/document/EmptyUndoStackException.idl index aa0e639b1916..fe14bcdabf7e 100644 --- a/offapi/com/sun/star/document/EmptyUndoStackException.idl +++ b/offapi/com/sun/star/document/EmptyUndoStackException.idl @@ -27,7 +27,7 @@ module com { module sun { module star { module document { /** is raised when an operation is attemption at an XUndoManager which requires a non-empty stack - of undo actions, and this requirement is not fullfilled. + of undo actions, and this requirement is not fulfilled. @since OpenOffice 3.4 */ exception EmptyUndoStackException : ::com::sun::star::util::InvalidStateException diff --git a/offapi/com/sun/star/document/EventObject.idl b/offapi/com/sun/star/document/EventObject.idl index 7c7172872032..bacd9cedfbd9 100644 --- a/offapi/com/sun/star/document/EventObject.idl +++ b/offapi/com/sun/star/document/EventObject.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module document { published struct EventObject: com::sun::star::lang::EventObject { //------------------------------------------------------------------------- - /** specifies the name of the occured event + /** specifies the name of the occurred event <p> For a list of possible event names see <type>Events</type>. diff --git a/offapi/com/sun/star/document/ExtendedTypeDetection.idl b/offapi/com/sun/star/document/ExtendedTypeDetection.idl index 88964f8bb565..abf66a0ec789 100644 --- a/offapi/com/sun/star/document/ExtendedTypeDetection.idl +++ b/offapi/com/sun/star/document/ExtendedTypeDetection.idl @@ -55,7 +55,7 @@ module com { module sun { module star { module document { <br> Example: "com.company.devision.DetectService" <br> - Note that this realy means the implementation name of the service. + Note that this really means the implementation name of the service. Because it's not possible otherwise to distinguish between more then one registered detect services in same office installation! But it's possible for the generic type detection to create an uno service by his implementation name too. @@ -85,7 +85,7 @@ published service ExtendedTypeDetection <li>or <NULL/> if format is unknown nor supported.</li> </ul> May be that given descriptor already includes the opened document stream as parameter - <member>MediaDescriptor::InputStream</member>. Then this one should be used everytime. + <member>MediaDescriptor::InputStream</member>. Then this one should be used every time. If it's not included in descriptor the value of <member>MediaDescriptor::URL</member> must be used to open requested ressource by this service. <br> diff --git a/offapi/com/sun/star/document/ExtendedTypeDetectionFactory.idl b/offapi/com/sun/star/document/ExtendedTypeDetectionFactory.idl index 26d2b401b08d..c6a3e4152579 100644 --- a/offapi/com/sun/star/document/ExtendedTypeDetectionFactory.idl +++ b/offapi/com/sun/star/document/ExtendedTypeDetectionFactory.idl @@ -96,7 +96,7 @@ published service ExtendedTypeDetectionFactory <td><em>Name</em></td> <td>[string]</td> <td>It means the uno implementation name of the detector component. - Note: It means the realy the implementation instead of the uno service name. + Note: It means the really the implementation instead of the uno service name. Because it's not possible to distinguish between more then one components; if all of them uses a generic service identifier!</td> </tr> @@ -131,8 +131,8 @@ published service ExtendedTypeDetectionFactory <p> Because the complexness of such configuration set can be very high, - it seams not very usefull to update the undelying configuration layer - on every container change request immediatly. Another strategy can be to + it does not seem very useful to update the undelying configuration layer + on every container change request immediately. Another strategy can be to make all changes (adding/changing/removing of items) and call flush at the end. That will validate the whole container and reject inconsistent data sets. Only in case all made changes was correct, they will be written back to the diff --git a/offapi/com/sun/star/document/FilterFactory.idl b/offapi/com/sun/star/document/FilterFactory.idl index d1422cf82392..05b461963360 100644 --- a/offapi/com/sun/star/document/FilterFactory.idl +++ b/offapi/com/sun/star/document/FilterFactory.idl @@ -172,7 +172,7 @@ published service FilterFactory <td><em>FilterService</em></td> <td>[string]</td> <td>It means the uno implementation name of the filter component. - Note: It means the realy the implementation instead of the uno service name. + Note: It really means the implementation instead of the uno service name. Because it's not possible to distinguish between more then one filters; if all of them uses a generic identifier!</td> </tr> @@ -202,7 +202,7 @@ published service FilterFactory <p> Note:<br> - All elements of this container will be adressed by his internal name, + All elements of this container will be addressed by its internal name, and it must be an unambigous value. </p> */ @@ -228,8 +228,8 @@ published service FilterFactory <p> Because the complexness of such configuration set can be very high, - it seams not very usefull to update the undelying configuration layer - on every container change request immediatly. Another strategy can be to + it does not seem very useful to update the underlying configuration layer + on every container change request immediately. Another strategy can be to make all changes (adding/changing/removing of items) and call flush at the end. That will validate the whole container and reject inconsistent data sets. Only in case all made changes was correct, they will be written back to the diff --git a/offapi/com/sun/star/document/MediaDescriptor.idl b/offapi/com/sun/star/document/MediaDescriptor.idl index 25d2520fbc7f..7f43d0587f25 100644 --- a/offapi/com/sun/star/document/MediaDescriptor.idl +++ b/offapi/com/sun/star/document/MediaDescriptor.idl @@ -76,7 +76,7 @@ module com { module sun { module star { module document { <p> Note:<br> It's not allowed to hold member of this descriptor by references longer the they - will be used (especialy a possible stream). It's allowed to use it directly + will be used (especially a possible stream). It's allowed to use it directly or by copying it only. </p> @@ -85,7 +85,7 @@ module com { module sun { module star { module document { published service MediaDescriptor { //------------------------------------------------------------------------- - /** May be set by filters or detection services if user has choosen to + /** May be set by filters or detection services if user has chosen to abort loading/saving, e.g. while entering a password. */ [optional,property] boolean Aborted; @@ -139,7 +139,7 @@ published service MediaDescriptor <p> This is a parameter that can be used for any properties specific for a special component type. Format of that depends from real - type of adressed component. + type of addressed component. </p> <p> diff --git a/offapi/com/sun/star/document/NoSuchFilterRequest.idl b/offapi/com/sun/star/document/NoSuchFilterRequest.idl index 375bad9fe313..aa9427bd4c67 100644 --- a/offapi/com/sun/star/document/NoSuchFilterRequest.idl +++ b/offapi/com/sun/star/document/NoSuchFilterRequest.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module document { a possible <type scope="com::sun::star::task">InteractionHandler</type> will be used. (it's a a part of used <type>MediaDescriptor</type>) Such "NoSuchFilterRequest" will be used then to start right interaction on that to - get a decision wich filter should be used for given URL. A possible continiuation + get a decision which filter should be used for given URL. A possible continuation of type <type>XInteractionFilterSelect</type> will transport this decision back to generic filter detection and force using of it. Of course it's possible to abort the loading process by use another continuation <type scope="com::sun::star::task">XInteractionAbort</type>. diff --git a/offapi/com/sun/star/document/OfficeDocument.idl b/offapi/com/sun/star/document/OfficeDocument.idl index 33c5b8ac934f..300afb010d84 100644 --- a/offapi/com/sun/star/document/OfficeDocument.idl +++ b/offapi/com/sun/star/document/OfficeDocument.idl @@ -70,7 +70,7 @@ published service OfficeDocument <p> With this interface it's possible too, to reset the modify state. - That can be neccessary to prevent code against problem during closing + That can be necessary to prevent code against problems during closing of the document without saving any changes. </p> */ @@ -94,7 +94,7 @@ published service OfficeDocument /** offers a way to print a component <p> - It's possible to specify wich printer should be used and of course + It's possible to specify which printer should be used and of course print the document on it. </p> */ diff --git a/offapi/com/sun/star/document/TypeDetection.idl b/offapi/com/sun/star/document/TypeDetection.idl index c1c45c3f8f04..812932995301 100644 --- a/offapi/com/sun/star/document/TypeDetection.idl +++ b/offapi/com/sun/star/document/TypeDetection.idl @@ -47,9 +47,9 @@ module com { module sun { module star { module document { /** capsulate a type detection service and provide read/write access on it's configuration data. <p> - It's possible to make a "flat" detection wich may use internal configuration + It's possible to make a "flat" detection which may use internal configuration data only - or a "deep" detection which use special <type>ExtendedTypeDetection</type> - services to look into the document stream. Last mode can be supressed to perform the operation. + services to look into the document stream. Last mode can be suppressed to perform the operation. Of course the results can't be guaranteed then. (e.g. in case the extension was changed) </p> */ @@ -136,7 +136,7 @@ published service TypeDetection <td>It contains a list of file extensions, which match this type. They must be specified as pure extension, without any special signs. E.g.: "doc", "html" ... but not ".doc". - Using of wildcards is allowed but not very usefull. The may resulting + Using of wildcards is allowed but not very useful. The may resulting ambigities with other type registrations can't be resolved anytimes.</td> </tr> <tr> @@ -149,7 +149,7 @@ published service TypeDetection <p> Note:<br> - All elements of this container will be adressed by his internal name, + All elements of this container will be addressed by his internal name, and it must be an unambigous value. </p> */ @@ -175,8 +175,8 @@ published service TypeDetection <p> Because the complexness of such configuration set can be very high, - it seams not very usefull to update the undelying configuration layer - on every container change request immediatly. Another strategy can be to + it does not seem very useful to update the underlying configuration layer + on every container change request immediately. Another strategy can be to make all changes (adding/changing/removing of items) and call flush at the end. That will validate the whole container and reject inconsistent data sets. Only in case all made changes was correct, they will be written back to the diff --git a/offapi/com/sun/star/document/UndoContextNotClosedException.idl b/offapi/com/sun/star/document/UndoContextNotClosedException.idl index 4e22b21c3285..3921f1e4bf5f 100644 --- a/offapi/com/sun/star/document/UndoContextNotClosedException.idl +++ b/offapi/com/sun/star/document/UndoContextNotClosedException.idl @@ -27,7 +27,7 @@ module com { module sun { module star { module document { /** is thrown when an operation is attempted at an <type>XUndoManager</type> which requires all undo - contexts to be closed, but this requirement is not fullfilled. + contexts to be closed, but this requirement is not fulfilled. @since OpenOffice 3.4 */ exception UndoContextNotClosedException : ::com::sun::star::util::InvalidStateException diff --git a/offapi/com/sun/star/document/XDocumentEventListener.idl b/offapi/com/sun/star/document/XDocumentEventListener.idl index 27bd0b0e4e55..4144e611f4f4 100644 --- a/offapi/com/sun/star/document/XDocumentEventListener.idl +++ b/offapi/com/sun/star/document/XDocumentEventListener.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module document { */ published interface XDocumentEventListener : ::com::sun::star::lang::XEventListener { - /** is called whenever a document event occured + /** is called whenever a document event occurred */ void documentEventOccured( [in] DocumentEvent Event ); }; diff --git a/offapi/com/sun/star/document/XExtendedFilterDetection.idl b/offapi/com/sun/star/document/XExtendedFilterDetection.idl index 07110eece8ed..d0b505e6122e 100644 --- a/offapi/com/sun/star/document/XExtendedFilterDetection.idl +++ b/offapi/com/sun/star/document/XExtendedFilterDetection.idl @@ -56,7 +56,7 @@ published interface XExtendedFilterDetection: com::sun::star::uno::XInterface <p> Registerd services in configuration, which support this interface for different mime types, - will be called automaticly to look into the document stream and cdecide wich format it represent. + will be called automatically to look into the document stream and decide which format it represents. Add the collected information about detected documents in given <type>MediaDescriptor</type> <var>Descriptor</var>. The decision must be returned as any valid type name (which specifies the detected format) or an empty value for unknown formats. diff --git a/offapi/com/sun/star/document/XFilter.idl b/offapi/com/sun/star/document/XFilter.idl index c03e3f2bda23..75883506e222 100644 --- a/offapi/com/sun/star/document/XFilter.idl +++ b/offapi/com/sun/star/document/XFilter.idl @@ -58,7 +58,7 @@ published interface XFilter: com::sun::star::uno::XInterface /** filter the document. <p> - The given <type>MediaDescriptor</type> holds all neccessary information + The given <type>MediaDescriptor</type> holds all necessary information about the document. Don't hold hard references to the descriptor items. You must copy needed information! diff --git a/offapi/com/sun/star/document/XInteractionFilterSelect.idl b/offapi/com/sun/star/document/XInteractionFilterSelect.idl index a25e4fff72fd..25ff752c7cd9 100644 --- a/offapi/com/sun/star/document/XInteractionFilterSelect.idl +++ b/offapi/com/sun/star/document/XInteractionFilterSelect.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module document { a possible <type scope="com::sun::star::task">InteractionHandler</type> will be used. (it's a a part of used <type>MediaDescriptor</type>) A <type>NoSuchFilterRequest</type> will be used then to start right interaction on that to - get a decision wich filter should be used for given URL. A possible continiuation + get a decision which filter should be used for given URL. A possible continiuation of that can be this XInteractionFilterSelect. It will transport the decision back to generic filter detection and force using of it. Of course it's possible to abort the loading process by use another continuation <type scope="com::sun::star::task">XInteractionAbort</type>. diff --git a/offapi/com/sun/star/document/XTypeDetection.idl b/offapi/com/sun/star/document/XTypeDetection.idl index de915272bd13..da056967f3ac 100644 --- a/offapi/com/sun/star/document/XTypeDetection.idl +++ b/offapi/com/sun/star/document/XTypeDetection.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module document { may invalid results if e.g., the extension of the document is wrong. A "deep" detection means looking into the document stream to be right which format it supports. Of course that includes a "flat" detection before. - The combination of both ones should produce stable results everytime. + The combination of both should produce stable results every time. </p> @see TypeDetection @@ -82,11 +82,11 @@ published interface XTypeDetection: com::sun::star::uno::XInterface The property <member>MediaDescriptor::URL</member> should be set on this descriptor as minimum. It specifies the location of the document. If this parameter is missing another one is required: <member>MediaDescriptor::InputStream</member>. - This can be usefull to prevent operaton against multiple opening of the stream + This can be useful to prevent operaton against multiple opening of the stream and perform the operation. If this stream isn't already included the detection will open it (if allowed!) and add it to the descriptor so it will be available for all following parts. - A combination of both parameters can be usefull to perform the operation + A combination of both parameters can be useful to perform the operation and make results more stable; but only one of them is required. Of course its possible to specify more document properties (e.g. <member>MediaDescriptor::ReadOnly</member>). diff --git a/offapi/com/sun/star/drawing/AccessibleShape.idl b/offapi/com/sun/star/drawing/AccessibleShape.idl index 2d0b709b5957..8addb51901dd 100644 --- a/offapi/com/sun/star/drawing/AccessibleShape.idl +++ b/offapi/com/sun/star/drawing/AccessibleShape.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module drawing { A UNO shape is any object that implements the <type scope="::com::sun::star::drawing">XShape</type> interface. - <p>The content of a draw page is modeled as tree of accessible shapes + <p>The content of a draw page is modelled as tree of accessible shapes and accessible text paragraphs. The root of this (sub-)tree is the accessible draw document view. An accessible shape implements either this service or one of the 'derived' services diff --git a/offapi/com/sun/star/drawing/DocumentSettings.idl b/offapi/com/sun/star/drawing/DocumentSettings.idl index 8a3e0aa4b145..c73611f4f30e 100644 --- a/offapi/com/sun/star/drawing/DocumentSettings.idl +++ b/offapi/com/sun/star/drawing/DocumentSettings.idl @@ -92,7 +92,7 @@ published service DocumentSettings /** If this is true, the distance between two paragraphs is the sum of ParaTopMargin of the previous and ParaBottomMargin of the next paragraph. If false, only the greater of the two is - choosen. + chosen. */ [optional, property] boolean ParagraphSummation; diff --git a/offapi/com/sun/star/drawing/GraphicFilterRequest.idl b/offapi/com/sun/star/drawing/GraphicFilterRequest.idl index ab1e391a38d7..6814e6696b47 100644 --- a/offapi/com/sun/star/drawing/GraphicFilterRequest.idl +++ b/offapi/com/sun/star/drawing/GraphicFilterRequest.idl @@ -35,7 +35,7 @@ /** represents a general error graphic filter exception. It can be used to transport the error code information. - E.g. that can be usefull for interactions. + E.g. that can be useful for interactions. @since OpenOffice 3.0 */ diff --git a/offapi/com/sun/star/drawing/Hatch.idl b/offapi/com/sun/star/drawing/Hatch.idl index 71e3b7045058..bf94e19bc830 100644 --- a/offapi/com/sun/star/drawing/Hatch.idl +++ b/offapi/com/sun/star/drawing/Hatch.idl @@ -39,7 +39,7 @@ //============================================================================= // DocMerge from xml: struct com::sun::star::drawing::Hatch -/** This struct defines the appearence of a hatch. +/** This struct defines the appearance of a hatch. <p>A hatch is a texture made of straight lines.</p> */ diff --git a/offapi/com/sun/star/drawing/TextProperties.idl b/offapi/com/sun/star/drawing/TextProperties.idl index a0bf27f7e756..1d32e9adb9b2 100644 --- a/offapi/com/sun/star/drawing/TextProperties.idl +++ b/offapi/com/sun/star/drawing/TextProperties.idl @@ -240,7 +240,7 @@ published service TextProperties //------------------------------------------------------------------------- /** with this property you can set the maximum height for a shape with text. - On edit, the auto grow feature will not grow the object heigher than + On edit, the auto grow feature will not grow the object higher than the value of this property. */ [property] long TextMaximumFrameHeight; diff --git a/offapi/com/sun/star/drawing/XCustomShapeHandle.idl b/offapi/com/sun/star/drawing/XCustomShapeHandle.idl index 976bf5f2000d..2236515a31c8 100644 --- a/offapi/com/sun/star/drawing/XCustomShapeHandle.idl +++ b/offapi/com/sun/star/drawing/XCustomShapeHandle.idl @@ -50,7 +50,7 @@ interface XCustomShapeHandle: com::sun::star::uno::XInterface */ com::sun::star::awt::Point getPosition(); - /** is setting a new positon for the handle + /** is setting a new position for the handle */ void setControllerPosition( [in] com::sun::star::awt::Point aPoint ); diff --git a/offapi/com/sun/star/drawing/XDrawPages.idl b/offapi/com/sun/star/drawing/XDrawPages.idl index 8827bf5f95dc..da1a4957c3f8 100644 --- a/offapi/com/sun/star/drawing/XDrawPages.idl +++ b/offapi/com/sun/star/drawing/XDrawPages.idl @@ -43,7 +43,7 @@ <p>The pages are stored in an index container. The order is determined by the index. - You usualy get this interface if you use the + You usually get this interface if you use the <type>XDrawPagesSupplier</type> or the <type>XMasterPagesSupplier</type> at a model that contains <type>DrawPage</type>s or <type>MasterPage</type>s */ diff --git a/offapi/com/sun/star/drawing/XShapeBinder.idl b/offapi/com/sun/star/drawing/XShapeBinder.idl index 53931ba91408..0239f0a9f4cb 100644 --- a/offapi/com/sun/star/drawing/XShapeBinder.idl +++ b/offapi/com/sun/star/drawing/XShapeBinder.idl @@ -51,7 +51,7 @@ published interface XShapeBinder: com::sun::star::uno::XInterface /** binds <type>Shape</type>s together. @param xShapes - a container with <type>Shape</type>s that will be bind toghether. + a container with <type>Shape</type>s that will be bind together. All <type>Shapes</type> will be converted to a <type>PolyPolygonBezierShape</type> and the lines will be connected. The <type>Shape</types>s in xShape will be removed from the <type>GenericDrawPage</type> and disposed. diff --git a/offapi/com/sun/star/drawing/framework/ConfigurationController.idl b/offapi/com/sun/star/drawing/framework/ConfigurationController.idl index 809919280b82..8ada7c83c763 100644 --- a/offapi/com/sun/star/drawing/framework/ConfigurationController.idl +++ b/offapi/com/sun/star/drawing/framework/ConfigurationController.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module drawing { module framework { <p>This service is used at the moment by the <type>XControllerManager</type> to create a configuration controller. This allows developers to replace the default implementation of the - configuration controller with their own. This may not be a usefull + configuration controller with their own. This may not be a useful feature. Furthermore the sub controllers may need a tighter coupling than the interfaces allow. These are reasons for removing this service in the future and let the controller manager create the sub controllers diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl index 04f0668b15d1..e96657086822 100644 --- a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl +++ b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl @@ -61,7 +61,7 @@ published interface XResource; <p>When the two configurations differ then the current configuration is updated eventually to reflect the requested configuration. An update - takes place when the following three conditions are fullfilled. + takes place when the following three conditions are fulfilled. <ol> <li>when the last pending request for configuration changes has been processed,</li> diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl b/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl index 1fcd9d3f1ba8..47cbb7e17944 100644 --- a/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl +++ b/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl @@ -58,7 +58,7 @@ published interface XConfigurationControllerRequestQueue <member>requestResourceDeactivation()</member> methods.</p> @param xRequest The configuration change represented by this request object must only - be commited to the configuration when the + be committed to the configuration when the <member scope="com::sun::star::drawing::framework::XConfigurationChangeRequest" >execute()</member> diff --git a/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl b/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl index 29aeb9d25686..cfd8c04aff0b 100644 --- a/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl +++ b/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl @@ -42,7 +42,7 @@ interface XRelocatableResource @param xNewAnchor The new anchor. @return - Returns <TRUE/> when the relocation was successfull. + Returns <TRUE/> when the relocation was successful. */ boolean relocateToAnchor ([in] XResource xNewAnchor); }; diff --git a/offapi/com/sun/star/drawing/framework/XResourceFactory.idl b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl index e822e2e8d024..060addcbf5db 100644 --- a/offapi/com/sun/star/drawing/framework/XResourceFactory.idl +++ b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl @@ -60,7 +60,7 @@ published interface XResourceFactory Returns a resource object that has been just created or was taken from a cache. When the requested resource can not be created then an empty reference is returned. A later call may - be successfull. This, for example, can be the case with SFX + be successful. This, for example, can be the case with SFX based side panes. They are not available right after the creation of a new application frame. @throws InvalidArgumentException diff --git a/offapi/com/sun/star/embed/ElementModes.idl b/offapi/com/sun/star/embed/ElementModes.idl index 62d64e21dbbd..2d3b45dbe535 100644 --- a/offapi/com/sun/star/embed/ElementModes.idl +++ b/offapi/com/sun/star/embed/ElementModes.idl @@ -83,7 +83,7 @@ published constants ElementModes const long READWRITE = 7; //------------------------------------------------------------------------ - /** lets the document be truncated immediatelly after opening. + /** lets the document be truncated immediately after opening. <p> This flag makes sence only in combination with diff --git a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl index c2f8486f84f3..752af3707507 100644 --- a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl +++ b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl @@ -74,7 +74,7 @@ published service EmbeddedObjectDescriptor <p> Setting of this property to true tells the embedded object that - controlls the document to store or not to store the graphical + controls the document to store or not to store the graphical representation of the document in to the object persistence. If this property is not set the object makes the decision itself. </p> diff --git a/offapi/com/sun/star/embed/EntryInitModes.idl b/offapi/com/sun/star/embed/EntryInitModes.idl index 3939ac0c021e..7c05aa94e7dc 100644 --- a/offapi/com/sun/star/embed/EntryInitModes.idl +++ b/offapi/com/sun/star/embed/EntryInitModes.idl @@ -30,14 +30,14 @@ module com { module sun { module star { module embed { //============================================================================ /** This constant set contains possible modes to initialize object - persistance. + persistence. @see XEmbedPersist */ published constants EntryInitModes { // ----------------------------------------------------------------------- - /** In case object persistance is created based on existing entry, + /** In case object persistence is created based on existing entry, the object should be initialized from this entry. Otherwise the object should be initialized as a new one. */ diff --git a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl index 11699db07a2f..ae9ce36ab163 100644 --- a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl +++ b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl @@ -34,7 +34,7 @@ //============================================================================ -/** This exception can be thrown in case container whants to avoid objects +/** This exception can be thrown in case container wants to avoid objects saving. @see XEmbeddedClient diff --git a/offapi/com/sun/star/embed/Storage.idl b/offapi/com/sun/star/embed/Storage.idl index b3f45d2c18e5..1d1ab9a9bd0c 100644 --- a/offapi/com/sun/star/embed/Storage.idl +++ b/offapi/com/sun/star/embed/Storage.idl @@ -169,7 +169,7 @@ published service Storage <p> A storage flashes on commit all the child streams it owns. So in case after the stream is changed neither - the storage was commited nor the stream was flushed + the storage was committed nor the stream was flushed explicitly, the changes will not appear in the new created stream. This method allows to retrieve copy of a child stream even in case it is already opened for @@ -203,7 +203,7 @@ published service Storage <p> A storage flashes on commit all the child streams it owns. So in case after the stream is changed neither - the storage was commited nor the stream was flushed + the storage was committed nor the stream was flushed explicitly, the changes will not appear in the new created stream. This method allows to retrieve copy of a child stream even in case it is already opened for @@ -215,8 +215,8 @@ published service Storage <dd> This method gets <type>Storage</type> service implementation and fills it in with the latest - commited version of this storage. So in case the - storage was not commited after it was changed, the + committed version of this storage. So in case the + storage was not committed after it was changed, the changes will not appear in the new created storage. </dd> @@ -225,9 +225,9 @@ published service Storage <p> This method gets <type>Storage</type> service implementation and fills it in with the contents of - the requested substorage. The latest commited version + the requested substorage. The latest committed version of child storage will be used. So in case the child - storage was not commited after it was changed, the + storage was not committed after it was changed, the changes will not appear in the new created storage. </p> @@ -257,11 +257,11 @@ published service Storage /** allows to commit or revert changes that were done for the storage. <p> - If a storage is commited all changes made to it will be integrated to - it's parent storage. This is recursive process, so the last commited + If a storage is committed all changes made to it will be integrated to + it's parent storage. This is recursive process, so the last committed storage should be the root one. For the package based storages commit of a root storage also means flashing to the related medium. If - a storage is not commited, no changes for it or it's child elements + a storage is not committed, no changes for it or it's child elements will be stored. </p> */ @@ -312,7 +312,7 @@ published service Storage Usually means that the document validity is questionable, although the package itself is not corrupted. The decision about document validity in this case is in application hands. It is up to user of - the storage to deside whether he accepts the fallback approach for + the storage to decide whether he accepts the fallback approach for an implementation of this service, outputs a warning or an error. </p> */ diff --git a/offapi/com/sun/star/embed/StorageFactory.idl b/offapi/com/sun/star/embed/StorageFactory.idl index 922acd45c2fe..eba32188a327 100644 --- a/offapi/com/sun/star/embed/StorageFactory.idl +++ b/offapi/com/sun/star/embed/StorageFactory.idl @@ -89,7 +89,7 @@ published service StorageFactory <type scope="com::sun::star::task">XInteractionHandler</type> implementation, password for the storage and repair package flag.<br> - Additionaly the parameter might contain property with the name + Additionally the parameter may contain property with the name "StorageFormat" that can take values from <type scope="com::sun::star::embed">StorageFormats</type>. If the property is not provided a storage of package format diff --git a/offapi/com/sun/star/embed/StorageStream.idl b/offapi/com/sun/star/embed/StorageStream.idl index dd6e5b5044a4..9db1107f2853 100644 --- a/offapi/com/sun/star/embed/StorageStream.idl +++ b/offapi/com/sun/star/embed/StorageStream.idl @@ -186,19 +186,19 @@ published service StorageStream // ----------------------------------------------------------------------- /** specifies whether the stream will become encrypted next time the - common storage password holder is commited. + common storage password holder is committed. <p> The property value <TRUE/> means that the stream will become encrypted after the closest storage in the parent hierarchy, that has common - storage password, is commited. + storage password, is committed. <FALSE/> - the stream will not react to commit of such a storage. </p> <p> In case stream is not encrypted and the property is set to <TRUE/>, the stream will stay nonencrypted until the closest storage - in the parent hierarchy, that has common storage password, is commited. + in the parent hierarchy, that has common storage password, is committed. On the commit the stream will be encrypted with the common storage password. If there is no such storage in the hierarchy the stream will not be encrypted at all. @@ -209,13 +209,13 @@ published service StorageStream If somebody sets a password explicitly by using <type>XEncryptionProtectedSource</type> interface the value is automatically set to <FALSE/> and the stream becomes encrypted - with specified password immediatelly. + with specified password immediately. </p> <p> In case stream is encrypted one and the value is set to <TRUE/> the stream becomes nonencrypted until the common storage password - holder is commited. The data about previously set password ( if any ) + holder is committed. The data about previously set password ( if any ) will be removed and the stream can be accessed as nonencrypted stream. </p> */ diff --git a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl index 41cde50b9722..a6a8aa30fb5b 100644 --- a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl +++ b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl @@ -91,7 +91,7 @@ published interface XCommonEmbedPersist: com::sun::star::uno::XInterface /** lets the object or the link reload itself. <p> - If the object has persistance it will be reloaded from it's persistant + If the object has persistence it will be reloaded from it's persistant entry. </p> diff --git a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl index 9e4e36afe960..c07ec790f298 100644 --- a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl +++ b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl @@ -74,7 +74,7 @@ published interface XEmbedObjectClipboardCreator: com::sun::star::uno::XInterfac <p> The clipboard can provide a number of choices that are container - related. This infomation will be returned in the + related. This information will be returned in the <type>InsertedObjectInfo</type> object. <p> diff --git a/offapi/com/sun/star/embed/XEmbeddedClient.idl b/offapi/com/sun/star/embed/XEmbeddedClient.idl index 9b24f4083df3..0c7ad30a4ab7 100644 --- a/offapi/com/sun/star/embed/XEmbeddedClient.idl +++ b/offapi/com/sun/star/embed/XEmbeddedClient.idl @@ -54,7 +54,7 @@ published interface XEmbeddedClient: XComponentSupplier /** asks client to let the object store itself. @throws com::sun::star::uno::ObjectSaveVetoException - in case container whants to avoid saving of object + in case container wants to avoid saving of object @throws com::sun::star::uno::Exception in case of problems during saving diff --git a/offapi/com/sun/star/embed/XInplaceClient.idl b/offapi/com/sun/star/embed/XInplaceClient.idl index 0b4c9d2c6fa2..b0cd48997bf2 100644 --- a/offapi/com/sun/star/embed/XInplaceClient.idl +++ b/offapi/com/sun/star/embed/XInplaceClient.idl @@ -189,7 +189,7 @@ interface XInplaceClient: com::sun::star::uno::XInterface raises( ::com::sun::star::embed::WrongStateException ); //------------------------------------------------------------------------ - /** provides accelerator table the object whants to use while it is + /** provides accelerator table the object wants to use while it is inplace active. @param aKeys diff --git a/offapi/com/sun/star/embed/XInplaceObject.idl b/offapi/com/sun/star/embed/XInplaceObject.idl index 50b1ddeeb145..f06a5c2e53d4 100644 --- a/offapi/com/sun/star/embed/XInplaceObject.idl +++ b/offapi/com/sun/star/embed/XInplaceObject.idl @@ -86,7 +86,7 @@ published interface XInplaceObject: com::sun::star::uno::XInterface /** enables or disables modeless dialogs of the object. <p> - In case contaner whants to show a modal dialog it should disable + In case contaner wants to show a modal dialog it should disable modeless of embedded object dialogs with this call. Later the same call can be used to enable it. </p> @@ -106,7 +106,7 @@ published interface XInplaceObject: com::sun::star::uno::XInterface ::com::sun::star::uno::Exception ); //------------------------------------------------------------------------ - /** provides accelerator table the container whants to use during inplace + /** provides accelerator table the container wants to use during inplace editing. @return diff --git a/offapi/com/sun/star/embed/XInsertObjectDialog.idl b/offapi/com/sun/star/embed/XInsertObjectDialog.idl index ff69bb4afc20..d21779bb8537 100644 --- a/offapi/com/sun/star/embed/XInsertObjectDialog.idl +++ b/offapi/com/sun/star/embed/XInsertObjectDialog.idl @@ -65,7 +65,7 @@ published interface XInsertObjectDialog: com::sun::star::uno::XInterface <p> The dialog allows for user to do a number of choices that are container - related. This infomation will be returned in the + related. This information will be returned in the <type>InsertedObjectInfo</type> object. <p> diff --git a/offapi/com/sun/star/embed/XOptimizedStorage.idl b/offapi/com/sun/star/embed/XOptimizedStorage.idl index 521912620f0f..b7cd8ea3ca2c 100644 --- a/offapi/com/sun/star/embed/XOptimizedStorage.idl +++ b/offapi/com/sun/star/embed/XOptimizedStorage.idl @@ -111,7 +111,7 @@ published interface XOptimizedStorage // ----------------------------------------------------------------------- /** allows to insert a stream to the storage directly. The stream must - stay alive till the storage is commited. + stay alive till the storage is committed. */ void insertStreamElementDirect( [in] string sStreamName, diff --git a/offapi/com/sun/star/embed/XPersistanceHolder.idl b/offapi/com/sun/star/embed/XPersistanceHolder.idl index f41723c301ad..b0c19be86142 100644 --- a/offapi/com/sun/star/embed/XPersistanceHolder.idl +++ b/offapi/com/sun/star/embed/XPersistanceHolder.idl @@ -45,7 +45,7 @@ published interface XPersistanceHolder: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- - /** disconnects the object from the persistance. + /** disconnects the object from the persistence. @throws com::sun::star::io::IOException in case of io problems @@ -58,10 +58,10 @@ published interface XPersistanceHolder: com::sun::star::uno::XInterface ::com::sun::star::uno::Exception ); //------------------------------------------------------------------------- - /** connects the object to a persistance. + /** connects the object to a persistence. @param xStream - a stream that specify the persistance + a stream that specify the persistence @throws com::sun::star::io::IOException in case of io problems diff --git a/offapi/com/sun/star/embed/XStorage.idl b/offapi/com/sun/star/embed/XStorage.idl index 07f6de79718a..d387be591923 100644 --- a/offapi/com/sun/star/embed/XStorage.idl +++ b/offapi/com/sun/star/embed/XStorage.idl @@ -106,7 +106,7 @@ published interface XStorage interface ::com::sun::star::container::XNameAccess; // ----------------------------------------------------------------------- - /** allows to controll and track lifetime of the storage. + /** allows to control and track lifetime of the storage. <p> In case a storage is disposed any call to it's methods should result @@ -124,7 +124,7 @@ published interface XStorage <p> The destination storage contents are overwritten. After the successful copying the target storage is automatically - commited if it implements transacted access. + committed if it implements transacted access. </p> @param xDest @@ -563,7 +563,7 @@ published interface XStorage /** allows to copy an entry from one storage to another. <p> - If target element supports transacted mode it must be commited by this + If target element supports transacted mode it must be committed by this method after successful copying. </p> @@ -607,7 +607,7 @@ published interface XStorage /** allows to move an entry from one storage to another. <p> - If target element supports transacted mode it must be commited by this + If target element supports transacted mode it must be committed by this method after successful moving. </p> diff --git a/offapi/com/sun/star/embed/XStorageRawAccess.idl b/offapi/com/sun/star/embed/XStorageRawAccess.idl index d73050ddc008..17d4fdef29b6 100644 --- a/offapi/com/sun/star/embed/XStorageRawAccess.idl +++ b/offapi/com/sun/star/embed/XStorageRawAccess.idl @@ -122,7 +122,7 @@ published interface XStorageRawAccess <p> This method allows to transport encrypted streams without decryption. Mainly this method is introduced to allow to copy one encrypted - storage stream to another without decryption. It is not reccomended to + storage stream to another without decryption. It is not recommended to use this method outside of storage implementation since different storages implementation could have different encryption format. If the method is used outside of storage implementation the user code is @@ -183,7 +183,7 @@ published interface XStorageRawAccess <p> This method allows to transport encrypted streams without decryption. Mainly this method is introduced to allow to copy one encrypted - storage stream to another without decryption. It is not reccomended to + storage stream to another without decryption. It is not recommended to use this method outside of storage implementation since different storages implementation could have different encryption format. </p> diff --git a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl index 4f83a1ab27d5..9951fa315c71 100644 --- a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl +++ b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module embed { //============================================================================ -/** broadcasts messege in case transacted object is commited or reverted. +/** broadcasts messege in case transacted object is committed or reverted. */ published interface XTransactionBroadcaster: com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/embed/XTransactionListener.idl b/offapi/com/sun/star/embed/XTransactionListener.idl index 65dad92540f6..5bdbcccc9961 100644 --- a/offapi/com/sun/star/embed/XTransactionListener.idl +++ b/offapi/com/sun/star/embed/XTransactionListener.idl @@ -41,21 +41,21 @@ module com { module sun { module star { module embed { //============================================================================ -/** makes it possible to receive events when a transacted object is commited +/** makes it possible to receive events when a transacted object is committed or reverted. */ published interface XTransactionListener: com::sun::star::lang::XEventListener { //------------------------------------------------------------------------ - /** is called just before the object is commited. + /** is called just before the object is committed. */ void preCommit( [in] com::sun::star::lang::EventObject aEvent ) raises( ::com::sun::star::uno::Exception ); //------------------------------------------------------------------------ - /** is called after the object is commited. + /** is called after the object is committed. */ - void commited( [in] com::sun::star::lang::EventObject aEvent ); + void committed( [in] com::sun::star::lang::EventObject aEvent ); //------------------------------------------------------------------------ /** is called just before the object is reverted. diff --git a/offapi/com/sun/star/embed/XVisualObject.idl b/offapi/com/sun/star/embed/XVisualObject.idl index 526d578fdcc9..9ae73e884243 100644 --- a/offapi/com/sun/star/embed/XVisualObject.idl +++ b/offapi/com/sun/star/embed/XVisualObject.idl @@ -118,7 +118,7 @@ published interface XVisualObject: ::com::sun::star::uno::XInterface /** retrieves visual representation of the object in preferable format. <p> - If the object persistance entry contains cached visual representation + If the object persistence entry contains cached visual representation then it can be retrieved by using this method even in loaded state. </p> diff --git a/offapi/com/sun/star/form/FormComponents.idl b/offapi/com/sun/star/form/FormComponents.idl index d61959b5934a..525a3fb9b0a9 100644 --- a/offapi/com/sun/star/form/FormComponents.idl +++ b/offapi/com/sun/star/form/FormComponents.idl @@ -87,7 +87,7 @@ published service FormComponents <p>For instance, at any time you can obtain the events associated with the <code>n</code><super>th</super> element in the form components by calling <member scope="com::sun::star::script">XEventAttacherManager::getScriptEvents</member> - with paramter <code>n</code>. In particular, this invariant is always met, even after you + with parameter <code>n</code>. In particular, this invariant is always met, even after you inserted/removed elements into/from the container.</p> */ interface com::sun::star::script::XEventAttacherManager; diff --git a/offapi/com/sun/star/form/PropertyBrowserController.idl b/offapi/com/sun/star/form/PropertyBrowserController.idl index 2c137b35ae00..345c900e3a41 100644 --- a/offapi/com/sun/star/form/PropertyBrowserController.idl +++ b/offapi/com/sun/star/form/PropertyBrowserController.idl @@ -127,7 +127,7 @@ published service PropertyBrowserController */ interface com::sun::star::beans::XPropertySet; - /** allows to access the properties via indicies + /** allows to access the properties via indices */ interface com::sun::star::beans::XFastPropertySet; diff --git a/offapi/com/sun/star/form/XFormControllerListener.idl b/offapi/com/sun/star/form/XFormControllerListener.idl index 5313431a15e4..2a9ff1dee6e3 100644 --- a/offapi/com/sun/star/form/XFormControllerListener.idl +++ b/offapi/com/sun/star/form/XFormControllerListener.idl @@ -53,7 +53,7 @@ published interface XFormControllerListener: com::sun::star::lang::XEventListene the controller was not previously activated. @param rEvent - the event happend. + the event happened. */ [oneway] void formActivated( [in] com::sun::star::lang::EventObject rEvent ); @@ -64,7 +64,7 @@ published interface XFormControllerListener: com::sun::star::lang::XEventListene words, no control of the controller owns the focus. @param rEvent - the event happend. + the event happened. */ [oneway] void formDeactivated( [in] com::sun::star::lang::EventObject rEvent ); diff --git a/offapi/com/sun/star/form/XGridFieldDataSupplier.idl b/offapi/com/sun/star/form/XGridFieldDataSupplier.idl index 92ef67a2129c..03cdd5ea6cef 100644 --- a/offapi/com/sun/star/form/XGridFieldDataSupplier.idl +++ b/offapi/com/sun/star/form/XGridFieldDataSupplier.idl @@ -42,7 +42,7 @@ <p>You can retrieve the data type information and the data in a row.</p> - <p>This interface allows to retrieve data even for rows which are not current, which is quite usefull, + <p>This interface allows to retrieve data even for rows which are not current, which is quite useful, as normally, you can't affect the current row in a grid control without moving the cursor of the underlying <type scope="com::sun::star::form::component">DataForm</type>.</p> diff --git a/offapi/com/sun/star/form/XLoadListener.idl b/offapi/com/sun/star/form/XLoadListener.idl index a57378e7dc97..bd327234c037 100644 --- a/offapi/com/sun/star/form/XLoadListener.idl +++ b/offapi/com/sun/star/form/XLoadListener.idl @@ -54,7 +54,7 @@ published interface XLoadListener: com::sun::star::lang::XEventListener /** is invoked when the object has successfully connected to a datasource. @param aEvent - the event happend. + the event happened. */ [oneway] void loaded( [in] com::sun::star::lang::EventObject aEvent ); @@ -65,7 +65,7 @@ published interface XLoadListener: com::sun::star::lang::XEventListener the event source before the object is unloaded.</p> @param aEvent - the event happend. + the event happened. */ [oneway] void unloading( [in] com::sun::star::lang::EventObject aEvent ); @@ -74,7 +74,7 @@ published interface XLoadListener: com::sun::star::lang::XEventListener /** is invoked after the object has disconnected from a datasource. @param aEvent - the event happend. + the event happened. */ [oneway] void unloaded( [in] com::sun::star::lang::EventObject aEvent ); @@ -86,7 +86,7 @@ published interface XLoadListener: com::sun::star::lang::XEventListener to the event source until they get the reloaded event.</p> @param aEvent - the event happend. + the event happened. */ [oneway] void reloading( [in] com::sun::star::lang::EventObject aEvent ); @@ -95,7 +95,7 @@ published interface XLoadListener: com::sun::star::lang::XEventListener /** is invoked when the object has been reloaded. @param aEvent - the event happend. + the event happened. */ [oneway] void reloaded( [in] com::sun::star::lang::EventObject aEvent ); }; diff --git a/offapi/com/sun/star/form/XResetListener.idl b/offapi/com/sun/star/form/XResetListener.idl index 6387cd55254f..2f7cfbba79a5 100644 --- a/offapi/com/sun/star/form/XResetListener.idl +++ b/offapi/com/sun/star/form/XResetListener.idl @@ -59,7 +59,7 @@ published interface XResetListener: com::sun::star::lang::XEventListener /** is invoked before a component is reset. @param rEvent - the event happend. + the event happened. @returns <TRUE/> when reset was approved, <FALSE/> when the reset operation should be cancelled. @@ -71,7 +71,7 @@ published interface XResetListener: com::sun::star::lang::XEventListener /** is invoked when a component has been reset. @param rEvent - the event happend. + the event happened. */ [oneway] void resetted( [in] com::sun::star::lang::EventObject rEvent ); diff --git a/offapi/com/sun/star/form/XSubmitListener.idl b/offapi/com/sun/star/form/XSubmitListener.idl index a0fd53bea00e..2de0e4d28b6e 100644 --- a/offapi/com/sun/star/form/XSubmitListener.idl +++ b/offapi/com/sun/star/form/XSubmitListener.idl @@ -56,7 +56,7 @@ published interface XSubmitListener: com::sun::star::lang::XEventListener /** is invoked when a component is about to submit it's data. @param aEvent - the event happend + the event happened @returns <TRUE/> when submitting was approved, otherwise <FALSE/>. diff --git a/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl b/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl index 39841df4c231..80bed7b3a473 100644 --- a/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl +++ b/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module form { module binding { content of the controls associated with this model. For instance, for an <type scope="com::sun::star::form::component">TextField</type>, this would be the <member scope="com::sun::star::awt">UnoControlEditModel::Text</member> property of the base - service. Similarily, a <type scope="com::sun::star::form::component">CheckBox</type> has + service. Similarly, a <type scope="com::sun::star::form::component">CheckBox</type> has a property <member scope="com::sun::star::awt">UnoControlCheckBoxModel::State</member>, which reflects the current check state.</p> diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl index d691900967a5..823a67c21b18 100644 --- a/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl +++ b/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl @@ -48,13 +48,13 @@ module com { module sun { module star { module form { module binding { <ol><li><em>sequences of integers</em>: When used, the integers in the sequence will represent the indexes of the selected entries of the list box.</li> <li><em>integer values</em>: When used, the value will represent the index of the selected entry. - If no entry is selected, -1 will be transfered. If more than one entry is selected, <NULL/> - will be transfered.</li> + If no entry is selected, -1 will be transferred. If more than one entry is selected, <NULL/> + will be transferred.</li> <li><em>sequences of strings</em>: When used, the strings in the sequence present the texts of the selected entries of the list box.</li> <li><em>string values</em>: When used. the value will represent the text of the selected entry. - If no entry is selected, an empty string will be transfered. If more than one entry is selected, - <NULL/> will be transfered.</li> + If no entry is selected, an empty string will be transferred. If more than one entry is selected, + <NULL/> will be transferred.</li> </ol></p> @see com::sun::star::form::binding::XValueBinding::supportsType diff --git a/offapi/com/sun/star/form/binding/ListEntryEvent.idl b/offapi/com/sun/star/form/binding/ListEntryEvent.idl index 42f82316045c..8be311164e8c 100644 --- a/offapi/com/sun/star/form/binding/ListEntryEvent.idl +++ b/offapi/com/sun/star/form/binding/ListEntryEvent.idl @@ -35,14 +35,14 @@ module com { module sun { module star { module form { module binding { //============================================================================= /** specifies the event which is notified when a change in a string entry - list occured + list occurred @see XListEntrySource @see XListEntryListener */ struct ListEntryEvent : com::sun::star::lang::EventObject { - /** denotes the position where a change occured. + /** denotes the position where a change occurred. <p>The concrete semantics of the value depends on the concrete event being notified.</p> diff --git a/offapi/com/sun/star/form/component/DataForm.idl b/offapi/com/sun/star/form/component/DataForm.idl index 718c3f8446b0..bf590923c572 100644 --- a/offapi/com/sun/star/form/component/DataForm.idl +++ b/offapi/com/sun/star/form/component/DataForm.idl @@ -61,7 +61,7 @@ module com { module sun { module star { module form { module component { //============================================================================= /** This service specifies a form which is connected to a database and - displays the results of SQL queries. It provides the possiblity of + displays the results of SQL queries. It provides the possibility of adding new data records, modifying existing ones, or deleting them. <p>A database form is a special kind of enhanced database row set @@ -169,7 +169,7 @@ published service DataForm master field.<br/> If a string in this property denotes both a column name and a parameter name, it is undefined which way it is interpreted, but implementations of the service are required - to either decide for the paramter or the column, and proceed as usual. + to either decide for the parameter or the column, and proceed as usual. </p> <p>The columns specified herein typically represent a part of the primary key diff --git a/offapi/com/sun/star/form/component/DatabaseComboBox.idl b/offapi/com/sun/star/form/component/DatabaseComboBox.idl index e6226ac18206..c85dc6e27440 100644 --- a/offapi/com/sun/star/form/component/DatabaseComboBox.idl +++ b/offapi/com/sun/star/form/component/DatabaseComboBox.idl @@ -64,7 +64,7 @@ published service DatabaseComboBox a decision must be made how to deal with empty strings.<br/> This is controlled by <member>ConvertEmptyToNull</member>.</p> - <p>If the property is set to <TRUE/>, and an empty text is to be commited, this is + <p>If the property is set to <TRUE/>, and an empty text is to be committed, this is converted into <NULL/>, else it is written as empty string.</p> */ [property] boolean ConvertEmptyToNull; diff --git a/offapi/com/sun/star/form/component/DatabaseFormattedField.idl b/offapi/com/sun/star/form/component/DatabaseFormattedField.idl index 2e0a0c78e93b..65479f0ea00f 100644 --- a/offapi/com/sun/star/form/component/DatabaseFormattedField.idl +++ b/offapi/com/sun/star/form/component/DatabaseFormattedField.idl @@ -55,7 +55,7 @@ published service DatabaseFormattedField a decision must be made how to deal with empty strings.<br/> This is controlled by <member>ConvertEmptyToNull</member>.</p> - <p>If the property is set to <TRUE/>, and an empty text is to be commited, this is + <p>If the property is set to <TRUE/>, and an empty text is to be committed, this is converted into <NULL/>, else it is written as empty string.</p> */ [property] boolean ConvertEmptyToNull; diff --git a/offapi/com/sun/star/form/component/DatabasePatternField.idl b/offapi/com/sun/star/form/component/DatabasePatternField.idl index f529b18a6f3b..b26532cf86f3 100644 --- a/offapi/com/sun/star/form/component/DatabasePatternField.idl +++ b/offapi/com/sun/star/form/component/DatabasePatternField.idl @@ -56,7 +56,7 @@ published service DatabasePatternField a decision must be made how to deal with empty strings.<br/> This is controlled by this property.</p> - <p>If the property is set to <TRUE/>, and an empty text is to be commited, this is + <p>If the property is set to <TRUE/>, and an empty text is to be committed, this is converted into <NULL/>, else it is written as empty string.</p> */ [property] boolean ConvertEmptyToNull; diff --git a/offapi/com/sun/star/form/component/DatabaseTextField.idl b/offapi/com/sun/star/form/component/DatabaseTextField.idl index 647267985fee..95745d38c750 100644 --- a/offapi/com/sun/star/form/component/DatabaseTextField.idl +++ b/offapi/com/sun/star/form/component/DatabaseTextField.idl @@ -55,7 +55,7 @@ published service DatabaseTextField a decision must be made how to deal with empty strings.<br/> This is controlled by this property.</p> - <p>If the property is set to <TRUE/>, and an empty text is to be commited, this is + <p>If the property is set to <TRUE/>, and an empty text is to be committed, this is converted into <NULL/>, else it is written as empty string.</p> */ [property] boolean ConvertEmptyToNull; diff --git a/offapi/com/sun/star/form/component/GridControl.idl b/offapi/com/sun/star/form/component/GridControl.idl index 6322191f1dd5..560b2b170d3e 100644 --- a/offapi/com/sun/star/form/component/GridControl.idl +++ b/offapi/com/sun/star/form/component/GridControl.idl @@ -88,7 +88,7 @@ <p>The table rows in a grid control correspond to the rows in the <type>DataForm</type> the control belongs to, and the columns correspond to single columns of the form's row set.</p> - <p>Columns of a grid control are modeled by own objects, too. They are very similar to usual + <p>Columns of a grid control are modelled by own objects, too. They are very similar to usual <type scope="com::sun::star::form">DataAwareControlModel</type>s modeling other "single-value" controls, but they are not described as own services. Instead, they need to be created using the <type scope="com::sun::star::form">XGridColumnFactory</type> interface.</p> */ diff --git a/offapi/com/sun/star/form/submission/XSubmission.idl b/offapi/com/sun/star/form/submission/XSubmission.idl index 3f029ce89334..810f8cc61a80 100644 --- a/offapi/com/sun/star/form/submission/XSubmission.idl +++ b/offapi/com/sun/star/form/submission/XSubmission.idl @@ -59,7 +59,7 @@ interface XSubmission : com::sun::star::uno::XInterface requirements for the submission, e.g. data consistency, are fulfilled. @throws com::sun::star::lang::WrappedTargetException - if an error occured during invoking the submission target + if an error occurred during invoking the submission target */ void submit( ) raises ( com::sun::star::util::VetoException, com::sun::star::lang::WrappedTargetException ); @@ -75,7 +75,7 @@ interface XSubmission : com::sun::star::uno::XInterface requirements for the submission, e.g. data consistency, are fulfilled. @throws com::sun::star::lang::WrappedTargetException - if an error occured during invoking the submission target + if an error occurred during invoking the submission target */ void submitWithInteraction( [in] com::sun::star::task::XInteractionHandler aHandler ) raises ( com::sun::star::util::VetoException, com::sun::star::lang::WrappedTargetException ); diff --git a/offapi/com/sun/star/frame/Components.idl b/offapi/com/sun/star/frame/Components.idl index a19076ef020e..e11243d3bc57 100644 --- a/offapi/com/sun/star/frame/Components.idl +++ b/offapi/com/sun/star/frame/Components.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module frame { published service Components { //------------------------------------------------------------------------- - /** use it to get snapshot of current avaliable components as an enumeration + /** use it to get snapshot of current available components as an enumeration */ interface com::sun::star::container::XEnumerationAccess; }; diff --git a/offapi/com/sun/star/frame/ContentHandler.idl b/offapi/com/sun/star/frame/ContentHandler.idl index c13c1920f2bc..949e29cb90d1 100644 --- a/offapi/com/sun/star/frame/ContentHandler.idl +++ b/offapi/com/sun/star/frame/ContentHandler.idl @@ -51,7 +51,7 @@ published service ContentHandler <p> Base interface of <type>XNotifyingDispatch</type> is <type>XDispatch</type> - and can be called for requests if result isn't neccessary for dispatch operation. + and can be called for requests if result isn't necessary for dispatch operation. </p> @see XDispatch diff --git a/offapi/com/sun/star/frame/ContentHandlerFactory.idl b/offapi/com/sun/star/frame/ContentHandlerFactory.idl index aa64e61b211a..1150868932b8 100644 --- a/offapi/com/sun/star/frame/ContentHandlerFactory.idl +++ b/offapi/com/sun/star/frame/ContentHandlerFactory.idl @@ -58,7 +58,7 @@ published service ContentHandlerFactory <p> Returned objects must support the service specification of a <type>ContentHandler</type>. - They can be created by using of his internal name, which must be unambigous everytime, only. + They can be created by using of his internal name, which must be unambigous every time, only. To get this name use further specified interfaces of this factory for access on the flat configuration. </p> diff --git a/offapi/com/sun/star/frame/ControlEvent.idl b/offapi/com/sun/star/frame/ControlEvent.idl index 791ea357758b..f96fbacaefb0 100644 --- a/offapi/com/sun/star/frame/ControlEvent.idl +++ b/offapi/com/sun/star/frame/ControlEvent.idl @@ -50,7 +50,7 @@ struct ControlEvent */ ::com::sun::star::util::URL aURL; - /** specifies the event which has occured. + /** specifies the event which has occurred. */ string Event; diff --git a/offapi/com/sun/star/frame/Desktop.idl b/offapi/com/sun/star/frame/Desktop.idl index 2372c1778967..208c6abbd928 100644 --- a/offapi/com/sun/star/frame/Desktop.idl +++ b/offapi/com/sun/star/frame/Desktop.idl @@ -60,7 +60,7 @@ published service Desktop { //------------------------------------------------------------------------- - /** make it possible to be the global root of different seperated frame trees + /** make it possible to be the global root of different separated frame trees <p> It's not a must for a frame (neither a frame tree) to be a part of this diff --git a/offapi/com/sun/star/frame/DispatchDescriptor.idl b/offapi/com/sun/star/frame/DispatchDescriptor.idl index 723d2a116026..8212a7c118c9 100644 --- a/offapi/com/sun/star/frame/DispatchDescriptor.idl +++ b/offapi/com/sun/star/frame/DispatchDescriptor.idl @@ -37,9 +37,9 @@ has to be loaded into a specified frame <p> - For a normal dispatch calls all needed parameters are seperated. + For a normal dispatch calls all needed parameters are separated. For optimized remote functionality <member>XDispatch::queryDispatches()</member> - it's neccessary to pack these parameters in a flat structure wich can be used + it's necessary to pack these parameters in a flat structure which can be used in a simple manner. </p> @@ -63,7 +63,7 @@ published struct DispatchDescriptor /** name of the target frame <p> - Special targets (e.g. "_blank", "_self") or realy existing target names can be used. + Special targets (e.g. "_blank", "_self") or really existing target names can be used. </p> @see XDispatchProvider::queryDispatch() diff --git a/offapi/com/sun/star/frame/DispatchProvider.idl b/offapi/com/sun/star/frame/DispatchProvider.idl index bcebe2c7fc73..c137f34cdf4a 100644 --- a/offapi/com/sun/star/frame/DispatchProvider.idl +++ b/offapi/com/sun/star/frame/DispatchProvider.idl @@ -57,7 +57,7 @@ published service DispatchProvider <p> Base interface of <type>XNotifyingDispatch</type> is <type>XDispatch</type> - and can be called for requests if result isn't neccessary for dispatch operation. + and can be called for requests if result isn't necessary for dispatch operation. </p> @see XDispatch diff --git a/offapi/com/sun/star/frame/DispatchRecorder.idl b/offapi/com/sun/star/frame/DispatchRecorder.idl index 5aef7adb36f1..bb612bd319b5 100644 --- a/offapi/com/sun/star/frame/DispatchRecorder.idl +++ b/offapi/com/sun/star/frame/DispatchRecorder.idl @@ -39,7 +39,7 @@ /** provides functionality to record <member>XDispatch::dispatch()</member> requests <p> - It records all neccessary parameters of a call <member>XDispatch::dispatch()</member> + It records all necessary parameters of a call <member>XDispatch::dispatch()</member> and generate code which can be executed at later time to run same operations again. Which code will be generated depends from real implementation. So it's possible to generate e.g. Java/Basic or may Perl code. diff --git a/offapi/com/sun/star/frame/Frame.idl b/offapi/com/sun/star/frame/Frame.idl index 64306ad5fcc0..0544f921b8ec 100644 --- a/offapi/com/sun/star/frame/Frame.idl +++ b/offapi/com/sun/star/frame/Frame.idl @@ -131,7 +131,7 @@ published service Frame /** supports interception mechanism for dispatched URLs <p> - Registered objects can intercept, supress or deroute dispatched URLs. + Registered objects can intercept, suppress or deroute dispatched URLs. If they support another interface too (<type>XInterceptorInfo</type>) it's possible to perform it by directly calling of right interceptor without using list of all registered ones. diff --git a/offapi/com/sun/star/frame/FrameActionEvent.idl b/offapi/com/sun/star/frame/FrameActionEvent.idl index 9102d8e8abd0..1eb5f35e2480 100644 --- a/offapi/com/sun/star/frame/FrameActionEvent.idl +++ b/offapi/com/sun/star/frame/FrameActionEvent.idl @@ -48,7 +48,7 @@ published struct FrameActionEvent: com::sun::star::lang::EventObject { //------------------------------------------------------------------------- - /** contains the frame in which the event occured + /** contains the frame in which the event occurred */ XFrame Frame; diff --git a/offapi/com/sun/star/frame/FrameLoaderFactory.idl b/offapi/com/sun/star/frame/FrameLoaderFactory.idl index 55b13a168b6d..cabda6d460f1 100644 --- a/offapi/com/sun/star/frame/FrameLoaderFactory.idl +++ b/offapi/com/sun/star/frame/FrameLoaderFactory.idl @@ -58,9 +58,9 @@ published service FrameLoaderFactory <p> Returned objects must support the service specification of a <type>FrameLoader</type> - or <type>SynchronousFrameLoader</type>. (Note: last one will be prefered if both ones + or <type>SynchronousFrameLoader</type>. (Note: last one will be preferred if both ones are available) - They can be created by using of his internal name, which must be unambigous everytime, only. + They can be created by using of his internal name, which must be unambigous every time, only. To get this name use further specified interfaces of this factory for access on the flat configuration. </p> diff --git a/offapi/com/sun/star/frame/FrameSearchFlag.idl b/offapi/com/sun/star/frame/FrameSearchFlag.idl index 3765d6a6318e..4a908f94073b 100644 --- a/offapi/com/sun/star/frame/FrameSearchFlag.idl +++ b/offapi/com/sun/star/frame/FrameSearchFlag.idl @@ -100,7 +100,7 @@ published constants FrameSearchFlag will be reached. It doesn't influence a search from top to bottom. But it can be used at the root of the frame tree to search on direct childrens of it only. Because the direct children of the root node are the root's of the task sub trees, which - are top frames too. Instead of using the CHILDREN flag there, it's possible so to supress + are top frames too. Instead of using the CHILDREN flag there, it's possible so to suppress a deeper search so. </p> */ diff --git a/offapi/com/sun/star/frame/ProtocolHandler.idl b/offapi/com/sun/star/frame/ProtocolHandler.idl index 3b4fd6dba640..d3ff55f328bc 100644 --- a/offapi/com/sun/star/frame/ProtocolHandler.idl +++ b/offapi/com/sun/star/frame/ProtocolHandler.idl @@ -47,7 +47,7 @@ <p> Supported URLs must match follow format: <protocol scheme>:<protocol specific part> If a handler provides optional arguments ("?") or jump marks ("#") depends from his - defintion and implementation. The generic dispatch provider will use registered + definition and implementation. The generic dispatch provider will use registered URL pattern to detect right handler. </p> */ @@ -68,7 +68,7 @@ published service ProtocolHandler /** initialize the new handler instance with some context informations <p> - Sometimes it can be usefull for a handler object, to know something about the + Sometimes it can be useful for a handler object, to know something about the environment, in which it runs - especily the frame. For this case the generic code (which uses the handler) will ask for this optional interface and use it, if it exist. Following parameters are passed to the service: @@ -78,7 +78,7 @@ published service ProtocolHandler </p> <p> - Please note: if this mechanism is used it seams not usefull (nor possible) to implement a ProtocolHandler + Please note: if this mechanism is used it does not seem useful (nor possible) to implement a ProtocolHandler as a singleton. Otherwhise the implementation can't distinguish between different environments and her corresponding dispatch requests. </p> diff --git a/offapi/com/sun/star/frame/TerminationVetoException.idl b/offapi/com/sun/star/frame/TerminationVetoException.idl index c67961a8d105..cb9483b656d4 100644 --- a/offapi/com/sun/star/frame/TerminationVetoException.idl +++ b/offapi/com/sun/star/frame/TerminationVetoException.idl @@ -40,7 +40,7 @@ the termination of the office, he will be the new "owner" of it. After his own operation will be finished, he MUST try to terminate the office again. Any other veto listener can intercept that again or office - will die realy. + will die really. </p> @see XDesktop::terminate() diff --git a/offapi/com/sun/star/frame/ToolbarController.idl b/offapi/com/sun/star/frame/ToolbarController.idl index fc45325b99e3..b9da81164608 100644 --- a/offapi/com/sun/star/frame/ToolbarController.idl +++ b/offapi/com/sun/star/frame/ToolbarController.idl @@ -101,7 +101,7 @@ service ToolbarController <p> A toolbar controller instance is ready for use after this call has been made - the first time. The toolbar implementation guarentees that the controller's + the first time. The toolbar implementation guarantees that the controller's item window has been added to the toolbar and its reference is held by it. </p> */ diff --git a/offapi/com/sun/star/frame/XControlNotificationListener.idl b/offapi/com/sun/star/frame/XControlNotificationListener.idl index 5370d75aaf82..ae63a95928ab 100644 --- a/offapi/com/sun/star/frame/XControlNotificationListener.idl +++ b/offapi/com/sun/star/frame/XControlNotificationListener.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module frame { interface XControlNotificationListener : com::sun::star::uno::XInterface { //------------------------------------------------------------------------- - /** notifies that a control event has happend + /** notifies that a control event has happened @param Event contains the event informantion diff --git a/offapi/com/sun/star/frame/XDesktop.idl b/offapi/com/sun/star/frame/XDesktop.idl index 5e6e0c6e46a9..62dca0aa7b56 100644 --- a/offapi/com/sun/star/frame/XDesktop.idl +++ b/offapi/com/sun/star/frame/XDesktop.idl @@ -143,11 +143,11 @@ published interface XDesktop: com::sun::star::uno::XInterface com::sun::star::lang::XComponent getCurrentComponent(); //------------------------------------------------------------------------- - /** provides read access to the frame wich contains the current component + /** provides read access to the frame which contains the current component @returns the frame of the component which has the - UI focus within this desktop enviroment + UI focus within this desktop environment @see XDesktop::getCurrentComponent() */ diff --git a/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl index 1b5ed8008181..74776c376a93 100644 --- a/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl +++ b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl @@ -105,7 +105,7 @@ published interface XDispatchRecorderSupplier: com::sun::star::uno::XInterface </li> <li>If <var>Dispatcher</var> support the interface <type>XRecordableDispatch</type> it will be used - to dispatch and record all neccessary parameters of + to dispatch and record all necessary parameters of the whole process. </li> </ul> diff --git a/offapi/com/sun/star/frame/XDocumentTemplates.idl b/offapi/com/sun/star/frame/XDocumentTemplates.idl index 73350d0cba76..89d6b434124d 100644 --- a/offapi/com/sun/star/frame/XDocumentTemplates.idl +++ b/offapi/com/sun/star/frame/XDocumentTemplates.idl @@ -75,7 +75,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface specifies the target @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise @@ -100,7 +100,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface specifies the position of template @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise @@ -121,7 +121,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface specifies the template for delete @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise */ @@ -139,7 +139,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface specifies the template for renaming @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise */ @@ -155,7 +155,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface the name of the group to be created @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise */ @@ -168,7 +168,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface the name of the group to be removed @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise */ @@ -184,7 +184,7 @@ published interface XDocumentTemplates: com::sun::star::uno::XInterface the new name of the group @return - <TRUE/> if operation was sucessfully + <TRUE/> if operation was successfully <br> <FALSE/> otherwise */ diff --git a/offapi/com/sun/star/frame/XFrame.idl b/offapi/com/sun/star/frame/XFrame.idl index aeb704231591..744cc9dfc669 100644 --- a/offapi/com/sun/star/frame/XFrame.idl +++ b/offapi/com/sun/star/frame/XFrame.idl @@ -63,7 +63,7 @@ published interface XFrame: com::sun::star::lang::XComponent It's designed for initializing - not for setting. </p> - <p>This frame will take over ownership of the window refered from + <p>This frame will take over ownership of the window referred from <var>xWindow</var>. Thus, the previous owner is not allowed to dispose this window anymore. </p> @@ -97,7 +97,7 @@ published interface XFrame: com::sun::star::lang::XComponent But creator doesn't mean the implementation which creates this instance ... it means the parent frame of the frame hierarchy. Because; normaly a frame should be created by using the api - and is neccessary for searches inside the tree (e.g. <member>XFrame::findFrame()</member>) + and is necessary for searches inside the tree (e.g. <member>XFrame::findFrame()</member>) </p> @param Creator @@ -287,7 +287,7 @@ published interface XFrame: com::sun::star::lang::XComponent @return <TRUE/>if setting of new component or release of an existing one was successfully <br> - <FALSE/> otherwise (especialy, if an existing controller disagree within his + <FALSE/> otherwise (especially, if an existing controller disagree within his <member>XController::suspend()</member> call) @see XFrame::getComponentWindow() diff --git a/offapi/com/sun/star/frame/XFrameLoader.idl b/offapi/com/sun/star/frame/XFrameLoader.idl index 4e4a0fdc35fa..4ce19281ebc8 100644 --- a/offapi/com/sun/star/frame/XFrameLoader.idl +++ b/offapi/com/sun/star/frame/XFrameLoader.idl @@ -49,7 +49,7 @@ <p> It's an asynchronous loading. For synchronous processes use <type>XSynchronousFrameLoader</type> - instead of this one. The generic load algorithm of the office supports both ones - but prefered + instead of this one. The generic load algorithm of the office supports both - but preferes the synchronous interface. </p> diff --git a/offapi/com/sun/star/frame/XInterceptorInfo.idl b/offapi/com/sun/star/frame/XInterceptorInfo.idl index 8e1f94a07a19..ff943bfd5a12 100644 --- a/offapi/com/sun/star/frame/XInterceptorInfo.idl +++ b/offapi/com/sun/star/frame/XInterceptorInfo.idl @@ -57,7 +57,7 @@ published interface XInterceptorInfo: com::sun::star::uno::XInterface </p> @return - a list of URL's wich are handled by this interceptor + a list of URL's which are handled by this interceptor */ sequence< string > getInterceptedURLs(); }; diff --git a/offapi/com/sun/star/frame/XLayoutManagerListener.idl b/offapi/com/sun/star/frame/XLayoutManagerListener.idl index cebe0821a779..e2bec9eb1ae7 100644 --- a/offapi/com/sun/star/frame/XLayoutManagerListener.idl +++ b/offapi/com/sun/star/frame/XLayoutManagerListener.idl @@ -54,7 +54,7 @@ published interface XLayoutManagerListener : com::sun::star::lang::XEventListene reference to the layout manager which invoked the event. @param eLayoutEvent - identifies the layout event that has occured. + identifies the layout event that has occurred. @param aInfo provides additional information about the event. The type diff --git a/offapi/com/sun/star/frame/XRecordableDispatch.idl b/offapi/com/sun/star/frame/XRecordableDispatch.idl index 2267f56bc31a..f6b1526cad72 100644 --- a/offapi/com/sun/star/frame/XRecordableDispatch.idl +++ b/offapi/com/sun/star/frame/XRecordableDispatch.idl @@ -55,7 +55,7 @@ If a dispatch object is well known and recording was enabled on a <type>XDispatchRecorderSupplier</type> it's possible to use method <member>XDispatchRecorderSupplier::dispatchAndRecord()</member> of it - to make dispatch and recording automaticly. The interface XRecordableDispatch + to make dispatch and recording automatically. The interface XRecordableDispatch is used transparently there. </p> @@ -87,7 +87,7 @@ published interface XRecordableDispatch: com::sun::star::uno::XInterface /** dispatch and record it @param URL - full parsed URL wich describe the feature which should be dispatched (executed) + full parsed URL which describe the feature which should be dispatched (executed) @param Arguments optional arguments for this request diff --git a/offapi/com/sun/star/frame/XStatusbarController.idl b/offapi/com/sun/star/frame/XStatusbarController.idl index 46dad7d56c4c..80beba9454ab 100644 --- a/offapi/com/sun/star/frame/XStatusbarController.idl +++ b/offapi/com/sun/star/frame/XStatusbarController.idl @@ -75,7 +75,7 @@ interface XStatusbarController implementation. </li> <li><b>StatusbarItem</b><br/>a <type scope="com::sun::star::ui">XStatusbarItem</type> - instance which represents the status bar item asociated with + instance which represents the status bar item associated with this controller. </li> <li><b>ParentWindow</b><br/>a <type scope="com::sun::star::awt">Window</type> @@ -104,7 +104,7 @@ interface XStatusbarController <p> A status bar controller instance is ready for use after this call has - been made the first time. The status bar implementation guarentees that + been made the first time. The status bar implementation guarantees that the controller's item window has been added to the status bar and its reference is held by it. </p> diff --git a/offapi/com/sun/star/frame/XStorable.idl b/offapi/com/sun/star/frame/XStorable.idl index 585a4728b4c9..f486ebd3bdd3 100644 --- a/offapi/com/sun/star/frame/XStorable.idl +++ b/offapi/com/sun/star/frame/XStorable.idl @@ -95,7 +95,7 @@ published interface XStorable: com::sun::star::uno::XInterface <p>Only objects which know their locations can be stored.</p> @throws com::sun::star::io::IOException - if an IO error occured during save operation + if an IO error occurred during save operation (may the location is unknown) @see XStorable::storeAsURL @@ -125,7 +125,7 @@ published interface XStorable: com::sun::star::uno::XInterface (see <type scope="com::sun::star::document">MediaDescriptor</type> for further details) @throws com::sun::star::io::IOException - if an IO error occured during save operation + if an IO error occurred during save operation (may the location is unknown) @see XStorable::store @@ -148,7 +148,7 @@ published interface XStorable: com::sun::star::uno::XInterface persistence capability.</p> @throws com::sun::star::io::IOException - if an IO error occured during save operation + if an IO error occurred during save operation (may the location is unknown) @param lArguments diff --git a/offapi/com/sun/star/frame/XStorable2.idl b/offapi/com/sun/star/frame/XStorable2.idl index 1324da70bc7d..55029cfcbe9f 100644 --- a/offapi/com/sun/star/frame/XStorable2.idl +++ b/offapi/com/sun/star/frame/XStorable2.idl @@ -56,7 +56,7 @@ published interface XStorable2: XStorable </p> <p> - This is an extention of the <method>XStorable::store()</method>. + This is an extension of the <method>XStorable::store()</method>. This method allows to specify some additional parametes for storing process. </p> @@ -69,7 +69,7 @@ published interface XStorable2: XStorable the optional parameters contain unacceptable for save entry @throws com::sun::star::io::IOException - if an IO error occured during save operation + if an IO error occurred during save operation @see XStorable::store */ diff --git a/offapi/com/sun/star/frame/XSynchronousDispatch.idl b/offapi/com/sun/star/frame/XSynchronousDispatch.idl index 6e8724412334..81ca3302e6a8 100644 --- a/offapi/com/sun/star/frame/XSynchronousDispatch.idl +++ b/offapi/com/sun/star/frame/XSynchronousDispatch.idl @@ -55,7 +55,7 @@ published interface XSynchronousDispatch: com::sun::star::uno::XInterface </p> @param URL - full parsed URL wich describe the feature which should be dispatched (executed) + full parsed URL that describes the feature which should be dispatched (executed) @param Arguments optional arguments for this request diff --git a/offapi/com/sun/star/frame/XTerminateListener2.idl b/offapi/com/sun/star/frame/XTerminateListener2.idl index e07582757bc0..4c6b42200c6c 100644 --- a/offapi/com/sun/star/frame/XTerminateListener2.idl +++ b/offapi/com/sun/star/frame/XTerminateListener2.idl @@ -43,11 +43,11 @@ interface XTerminateListener2 : ::com::sun::star::frame::XTerminateListener <p> Termination can be intercepted by throwing <type>TerminationVetoException</type>. - But if a listener was queried for termination .. doesnt throwed a veto exception ... - it doesnt know if termination will be real next time. + But if a listener was queried for termination .. and doesn't throw a veto exception ... + it doesn't know if termination will be real next time. Because any other listener can throw those exception too ... and so it can happen - that after queryTermination() no notifyTermination() will occure. But these listener - doesnt know if its allowed to start new processes then. + that after queryTermination() no notifyTermination() will occur. But these listener + doesn't know if its allowed to start new processes then. Using this optional(!) interface will make it possible to be informed about cancelled termination requests also. </p> diff --git a/offapi/com/sun/star/frame/XToolbarController.idl b/offapi/com/sun/star/frame/XToolbarController.idl index 8aa090f8d5ff..a97880a24d7c 100644 --- a/offapi/com/sun/star/frame/XToolbarController.idl +++ b/offapi/com/sun/star/frame/XToolbarController.idl @@ -61,7 +61,7 @@ interface XToolbarController : com::sun::star::uno::XInterface the current state of the modifier keys. <p> - This function is usally called by a toolbar implementation when a user clicked on a toolbar button + This function is usually called by a toolbar implementation when a user clicked on a toolbar button or pressed enter on the keyboard when the item has the input focus. </p> */ diff --git a/offapi/com/sun/star/frame/XUIControllerRegistration.idl b/offapi/com/sun/star/frame/XUIControllerRegistration.idl index 19def98bf3e9..6928d06502eb 100644 --- a/offapi/com/sun/star/frame/XUIControllerRegistration.idl +++ b/offapi/com/sun/star/frame/XUIControllerRegistration.idl @@ -69,7 +69,7 @@ published interface XUIControllerRegistration : com::sun::star::uno::XInterface and a command URL and optional module. @param aCommandURL - a command URL which specifies an action which shoudl be associated with a user + a command URL which specifies an action which should be associated with a user interface controller. @param aModelName @@ -86,7 +86,7 @@ published interface XUIControllerRegistration : com::sun::star::uno::XInterface implementation and a command URL and optional module. @param aCommandURL - a command URL which specifies an action which shoudl be associated with a user + a command URL which specifies an action which should be associated with a user interface controller. @param aModelName diff --git a/offapi/com/sun/star/graphic/GraphicObject.idl b/offapi/com/sun/star/graphic/GraphicObject.idl index 883f2db6f42b..e090362fbea7 100644 --- a/offapi/com/sun/star/graphic/GraphicObject.idl +++ b/offapi/com/sun/star/graphic/GraphicObject.idl @@ -30,7 +30,7 @@ module com { module sun { module star { module graphic { /** The <code>GraphicObject</code> service can be used to create <type>XGraphicObject</type> instances. - <p><type>XGraphicObject</type> objects are accessable using GraphicObject scheme urls like + <p><type>XGraphicObject</type> objects are accessible using GraphicObject scheme urls like <code>vnd.sun.star.GraphicObject:10000000000001940000012FB99807BD</code>. As long as at least one instance of <type>XGraphicObject</type> with a particular UniqueID exists, the associated image/graphic is available.</p> diff --git a/offapi/com/sun/star/graphic/XGraphicObject.idl b/offapi/com/sun/star/graphic/XGraphicObject.idl index 1ebd9e404d59..b42f33419b89 100644 --- a/offapi/com/sun/star/graphic/XGraphicObject.idl +++ b/offapi/com/sun/star/graphic/XGraphicObject.idl @@ -32,7 +32,7 @@ interface XGraphic; /** <code>XGraphicObject</code> objects represent in-memory image and graphic objects. - <p>Such objects are accessable using GraphicObject scheme urls like + <p>Such objects are accessible using GraphicObject scheme urls like <ul> <li>vnd.sun.star.GraphicObject:10000000000001940000012FB99807BD</li> </ul> diff --git a/offapi/com/sun/star/i18n/NumberFormatIndex.idl b/offapi/com/sun/star/i18n/NumberFormatIndex.idl index ee8af2a39904..00e830e87bbe 100644 --- a/offapi/com/sun/star/i18n/NumberFormatIndex.idl +++ b/offapi/com/sun/star/i18n/NumberFormatIndex.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module i18n { <member scope="::com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member>. <p> Each locale can support up to about 5000 arbitrary format - codes. But for backward compatiblity reasons, each locale + codes. But for backward compatibility reasons, each locale <b>MUST</b> support some predefined format codes. These predefined format codes are accessed through indices as the following, and the locale data format code definitions in diff --git a/offapi/com/sun/star/inspection/XNumericControl.idl b/offapi/com/sun/star/inspection/XNumericControl.idl index 3ed7c722de88..8cb877177258 100644 --- a/offapi/com/sun/star/inspection/XNumericControl.idl +++ b/offapi/com/sun/star/inspection/XNumericControl.idl @@ -73,7 +73,7 @@ published interface XNumericControl : XPropertyControl }; /** describes a <type scope="com::sun::star::util">MeasureUnit</type> to be - applied for transfering values. + applied for transferring values. <p>The core measurement unit for a property value might differ from the unit which is used by the control to display it. For instance, your property value might require diff --git a/offapi/com/sun/star/inspection/XObjectInspectorModel.idl b/offapi/com/sun/star/inspection/XObjectInspectorModel.idl index 9a933e2db493..ecfea5d6d3ab 100644 --- a/offapi/com/sun/star/inspection/XObjectInspectorModel.idl +++ b/offapi/com/sun/star/inspection/XObjectInspectorModel.idl @@ -50,7 +50,7 @@ published interface XObjectInspectorModel <p>Every element of the sequence must contain information to create a <type>XPropertyHandler</type> instance. Two ways are currently supported: <ul> - <li>A sevice name:</br> + <li>A service name:</br> If a sequence element contains a string, this string is interpreted as service name, and an <type scope="com::sun::star::lang">XMultiComponentFactory</type> is asked to create an instance of this service.</li> diff --git a/offapi/com/sun/star/inspection/XPropertyHandler.idl b/offapi/com/sun/star/inspection/XPropertyHandler.idl index 26e7c90470e9..b8a82dd2e41e 100644 --- a/offapi/com/sun/star/inspection/XPropertyHandler.idl +++ b/offapi/com/sun/star/inspection/XPropertyHandler.idl @@ -416,7 +416,7 @@ published interface XPropertyHandler <br/> In some cases it may be necessary to differentiate between both situations. For instance, if you want to set the value of another property when an actuating property's value changed, - you should definately not do this when <arg>FirstTimeInit</arg> is <TRUE/>. + you should definitely not do this when <arg>FirstTimeInit</arg> is <TRUE/>. @throws com::sun::star::lang::NullPointerException if <arg>InspectorUI</arg> is <NULL/> */ diff --git a/offapi/com/sun/star/installation/XProtocolHandlerCheck.idl b/offapi/com/sun/star/installation/XProtocolHandlerCheck.idl index 7867159ae896..07ea3f1cd18f 100644 --- a/offapi/com/sun/star/installation/XProtocolHandlerCheck.idl +++ b/offapi/com/sun/star/installation/XProtocolHandlerCheck.idl @@ -72,7 +72,7 @@ published interface XProtocolHandlerCheck: com::sun::star::uno::XInterface The dialog has "Yes" and "No" buttons, and a checkbox with "Always display this message". The checkbox is initially checked. If the "Yes" button was pressed, - it performs all neccessary action to make StarOffice the + it performs all necessary action to make StarOffice the protocol-handler. If the "No" button was pressed, don't perform any action. Both buttons closes the dialog.@see isProtocolHandler */ diff --git a/offapi/com/sun/star/installation/protocols.idl b/offapi/com/sun/star/installation/protocols.idl index ede8336a0c98..b9087d2141f6 100644 --- a/offapi/com/sun/star/installation/protocols.idl +++ b/offapi/com/sun/star/installation/protocols.idl @@ -31,7 +31,7 @@ //============================================================================= /** A protocol-handler is a part of StarOffice which performs - the comunication on a paticular protocol. This can be HTTP, FTP, HTTPS, + the comunication on a particular protocol. This can be HTTP, FTP, HTTPS, MAILTO, or NEWS. An implementation of this interface should be able to check/set all of these protocols. diff --git a/offapi/com/sun/star/linguistic2/SpellFailure.idl b/offapi/com/sun/star/linguistic2/SpellFailure.idl index 87aaa7e87371..d17a70bdf698 100644 --- a/offapi/com/sun/star/linguistic2/SpellFailure.idl +++ b/offapi/com/sun/star/linguistic2/SpellFailure.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module linguistic2 { <P>A value of this type is part of the <type scope="com::sun::star::linguistic2">XSpellAlternatives</type> - interface which is the return type for an unsuccessfull + interface which is the return type for an unsuccessful spelling attempt.</P> @see <type scope="com::sun::star::linguistic2">XSpellChecker</type> diff --git a/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl b/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl index 66d9c129e2f4..1d4eb34c6ef4 100644 --- a/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl +++ b/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl @@ -143,7 +143,7 @@ published interface XConversionDictionaryList : com::sun::star::uno::XInterface @param aLocale - Locale the conversion is refered to. + Locale the conversion is referred to. @param nConversionDictionaryType specifies the type of conversion the dictionary @@ -189,7 +189,7 @@ published interface XConversionDictionaryList : com::sun::star::uno::XInterface right text from entries should be considered.</p> @param aLocale - Locale the conversion is refered to. + Locale the conversion is referred to. @param nConversionDictionaryType specifies the type of conversion dictionaries to be looked up. It is one of diff --git a/offapi/com/sun/star/linguistic2/XDictionary.idl b/offapi/com/sun/star/linguistic2/XDictionary.idl index 0825060554c2..f15f0671f64f 100644 --- a/offapi/com/sun/star/linguistic2/XDictionary.idl +++ b/offapi/com/sun/star/linguistic2/XDictionary.idl @@ -140,7 +140,7 @@ published interface XDictionary : com::sun::star::container::XNamed <P>If an entry already exists, the dictionary remains unchanged and <FALSE/> will be returned.</P> - <P>In positive dictionaries only postive entries + <P>In positive dictionaries only positive entries can be made, and in negative ones only negative entries.</P> @param xDicEntry @@ -161,7 +161,7 @@ published interface XDictionary : com::sun::star::container::XNamed <P>If an entry already exists, the dictionary remains unchanged and <FALSE/> will be returned.</P> - <P>In positive dictionaries only postive entries + <P>In positive dictionaries only positive entries can be made, and in negative ones only negative entries.</P> @param aWord diff --git a/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl b/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl index bde9704ade29..55b5170d6d1f 100644 --- a/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl +++ b/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl @@ -109,7 +109,7 @@ published interface XLinguServiceManager : com::sun::star::uno::XInterface </P> @returns - <TRUE/> if the listener was succesfully added, <FALSE/> otherwise. + <TRUE/> if the listener was successfully added, <FALSE/> otherwise. @param xListener the listener to be added. @@ -121,7 +121,7 @@ published interface XLinguServiceManager : com::sun::star::uno::XInterface /** removes a listener from the list of event listeners. @returns - <TRUE/> if the listener was succesfully removed, <FALSE/> otherwise. + <TRUE/> if the listener was successfully removed, <FALSE/> otherwise. @param xListener the listener to be removed. diff --git a/offapi/com/sun/star/logging/XCsvLogFormatter.idl b/offapi/com/sun/star/logging/XCsvLogFormatter.idl index 845c1dd50aca..87ee1cdfc061 100644 --- a/offapi/com/sun/star/logging/XCsvLogFormatter.idl +++ b/offapi/com/sun/star/logging/XCsvLogFormatter.idl @@ -63,7 +63,7 @@ interface XCsvLogFormatter : XLogFormatter <code>formatMultiColumn</code>*/ [attribute] sequence< string > Columnnames; /** if the CsvLogFormatter is set to have more than one - column, any logged infomation has to be send through this + column, any logged information has to be send through this method before calling log(). E.g.: <code>XLoggerInstance.log(1000, XCsvLogFormatterInstance.formatMultiColumn(column_data))</code> diff --git a/offapi/com/sun/star/logging/XLogger.idl b/offapi/com/sun/star/logging/XLogger.idl index b7d945a11dd5..09fe9dc0eced 100644 --- a/offapi/com/sun/star/logging/XLogger.idl +++ b/offapi/com/sun/star/logging/XLogger.idl @@ -117,17 +117,17 @@ published interface XLogger void log( [in] long Level, [in] string Message ); /** logs a given message, detailing the source class and method at which the logged - event occured. + event occurred. @param Level the log level of this message. If this level is smaller than the logger's <member>Level</member> attribute, then the call will be ignored. @param SourceClass - the source class at which the logged event occured. + the source class at which the logged event occurred. @param SourceMethod - the source class at which the logged event occured. + the source class at which the logged event occurred. @param Message the message to log diff --git a/offapi/com/sun/star/mail/XMailServer.idl b/offapi/com/sun/star/mail/XMailServer.idl index 56cf9fdcc725..01e8276f40e2 100644 --- a/offapi/com/sun/star/mail/XMailServer.idl +++ b/offapi/com/sun/star/mail/XMailServer.idl @@ -187,13 +187,13 @@ interface XMailServer: ::com::sun::star::uno::XInterface { a wrong server name, an unreachable DNS server, etc. @throws com::sun::star::io::NoRouteToHostException - if an error occured to connect to the remote mail server. + if an error occurred to connect to the remote mail server. Typically the remote mail server cannot be reach because of an intervening firewall, or if an intermediate router is down, the network connection is broken, etc. @throws com::sun::star::io::ConnectException - if an error occured while attempting to connect to the remote + if an error occurred while attempting to connect to the remote mail server. Typically the connection was refused remotely, because the mail server is not listening on the remote address/port. diff --git a/offapi/com/sun/star/mail/XMailService.idl b/offapi/com/sun/star/mail/XMailService.idl index 05c7c48056d3..f866c29b5f68 100644 --- a/offapi/com/sun/star/mail/XMailService.idl +++ b/offapi/com/sun/star/mail/XMailService.idl @@ -180,13 +180,13 @@ interface XMailService: ::com::sun::star::uno::XInterface { a wrong server name, an unreachable DNS server, etc. @throws com::sun::star::io::NoRouteToHostException - if an error occured to connect to the remote mail server. + if an error occurred to connect to the remote mail server. Typically the remote mail server cannot be reach because of an intervening firewall, or if an intermediate router is down, the network connection is broken, etc. @throws com::sun::star::io::ConnectException - if an error occured while attempting to connect to the remote + if an error occurred while attempting to connect to the remote mail server. Typically the connection was refused remotely, because the mail server is not listening on the remote address/port. diff --git a/offapi/com/sun/star/modules.idl b/offapi/com/sun/star/modules.idl index a4c04e87a147..b9137590fe61 100644 --- a/offapi/com/sun/star/modules.idl +++ b/offapi/com/sun/star/modules.idl @@ -158,7 +158,7 @@ module sheet {}; /// Formatting and layout style and stylesheet interfaces. module style {}; -/// Interfaces for import/export of Scaleable Vector Format. +/// Interfaces for import/export of Scalable Vector Format. module svg {}; /// Data synchronization interfaces (deprecated). @@ -188,7 +188,7 @@ module ui {}; /// Miscellaneous interfaces for sorting, connecting objects etc. module util {}; -/// Document view specfic interfaces (e.g. selection access and printing). +/// Document view specific interfaces (e.g. selection access and printing). module view {}; /// XML related interfaces. diff --git a/offapi/com/sun/star/mozilla/XPluginInstance.idl b/offapi/com/sun/star/mozilla/XPluginInstance.idl index dd215519496f..422a06f8fead 100644 --- a/offapi/com/sun/star/mozilla/XPluginInstance.idl +++ b/offapi/com/sun/star/mozilla/XPluginInstance.idl @@ -39,7 +39,7 @@ // DocMerge from xml: method com::sun::star::mozilla::XPluginInstance::start -/** Allows to controll an office side plugin instance and to communicate with it. +/** Allows to control an office side plugin instance and to communicate with it. This interface is oriented for communication with browsers plugins. */ published interface XPluginInstance: com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/mozilla/XPluginInstanceSyncPeer.idl b/offapi/com/sun/star/mozilla/XPluginInstanceSyncPeer.idl index d198f7eb074c..1a9e35906843 100644 --- a/offapi/com/sun/star/mozilla/XPluginInstanceSyncPeer.idl +++ b/offapi/com/sun/star/mozilla/XPluginInstanceSyncPeer.idl @@ -38,7 +38,7 @@ //============================================================================= // DocMerge from xml: interface com::sun::star::mozilla::XPluginInstanceSyncPeer -/** This interface is an extention for <type>XPluginInstancePeer</type> interface. +/** This interface is an extension for <type>XPluginInstancePeer</type> interface. An object can support this interface in addition to <type>XPluginInstancePeer</type> interface. */ published interface XPluginInstanceSyncPeer : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/mozilla/XProfileManager.idl b/offapi/com/sun/star/mozilla/XProfileManager.idl index 9548588e1559..87c84558b1a1 100644 --- a/offapi/com/sun/star/mozilla/XProfileManager.idl +++ b/offapi/com/sun/star/mozilla/XProfileManager.idl @@ -53,7 +53,7 @@ published interface XProfileManager: com::sun::star::uno::XInterface @param profileName the profile name to be used. @returns - the current refrence count for the given profile. + the current reference count for the given profile. */ long bootupProfile( [in]MozillaProductType product,[in]string profileName); @@ -61,7 +61,7 @@ published interface XProfileManager: com::sun::star::uno::XInterface /** attempts to shutdown the current profile. @returns - the current refrence count for the current profile. + the current reference count for the current profile. */ long shutdownProfile(); diff --git a/offapi/com/sun/star/packages/manifest/XManifestReader.idl b/offapi/com/sun/star/packages/manifest/XManifestReader.idl index b246383cec8c..158e45a78452 100644 --- a/offapi/com/sun/star/packages/manifest/XManifestReader.idl +++ b/offapi/com/sun/star/packages/manifest/XManifestReader.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module packages { module manifest { //============================================================================= /** This interface reads the manifest data from a file. The user - must supply an XInputStream when calling readManifestSequence() to recieve + must supply an XInputStream when calling readManifestSequence() to receive a sequence of manifest entries. Each manifest entry is represented by a sequence of PropertyValues. */ //============================================================================= diff --git a/offapi/com/sun/star/packages/zip/ZipIOException.idl b/offapi/com/sun/star/packages/zip/ZipIOException.idl index ef01b4601fb5..d86e1677a765 100644 --- a/offapi/com/sun/star/packages/zip/ZipIOException.idl +++ b/offapi/com/sun/star/packages/zip/ZipIOException.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module packages { module zip { //============================================================================= /** used to indicate that a ZIP exception has occurred. - usualy can be thrown from XInputStream interface implementations. + usually can be thrown from XInputStream interface implementations. <p>This interface is an IDL version of the Java interface <em>java.util.zip.ZipException</em> with some minor adaptations.</p> diff --git a/offapi/com/sun/star/plugin/PluginException.idl b/offapi/com/sun/star/plugin/PluginException.idl index 3d08c46c4d54..eb6f20dd40e5 100644 --- a/offapi/com/sun/star/plugin/PluginException.idl +++ b/offapi/com/sun/star/plugin/PluginException.idl @@ -34,7 +34,7 @@ //============================================================================= -/** Indicates that an error occured in an NPN or NPP function call. +/** Indicates that an error occurred in an NPN or NPP function call. @see XPlugin @see XPluginContext diff --git a/offapi/com/sun/star/presentation/DocumentSettings.idl b/offapi/com/sun/star/presentation/DocumentSettings.idl index b40635badccc..52c6fd5ec815 100644 --- a/offapi/com/sun/star/presentation/DocumentSettings.idl +++ b/offapi/com/sun/star/presentation/DocumentSettings.idl @@ -103,7 +103,7 @@ published service DocumentSettings /** If this is true, the distance between two paragraphs is the sum of ParaTopMargin of the previous and ParaBottomMargin of the next paragraph. If false, only the greater of the two is - choosen. + chosen. */ [optional, property] boolean ParagraphSummation; diff --git a/offapi/com/sun/star/presentation/EffectNodeType.idl b/offapi/com/sun/star/presentation/EffectNodeType.idl index 0411f7fe9333..3c4831db3177 100644 --- a/offapi/com/sun/star/presentation/EffectNodeType.idl +++ b/offapi/com/sun/star/presentation/EffectNodeType.idl @@ -34,8 +34,8 @@ This is stored with the name <i>node-type</i> inside the <member>::com::sun::star::animations::XAnimationNode::UserData</member> sequence. <br> - This does not manipulate the timing or syncronization. - It can be used to quickly identify semantic blocks inside an animation hierachy. + This does not manipulate the timing or synchronization. + It can be used to quickly identify semantic blocks inside an animation hierarchy. @see ::com::sun::star::animations::AnimationNode */ diff --git a/offapi/com/sun/star/presentation/EffectPresetClass.idl b/offapi/com/sun/star/presentation/EffectPresetClass.idl index 6a054afa7278..bcc436f0ef4c 100644 --- a/offapi/com/sun/star/presentation/EffectPresetClass.idl +++ b/offapi/com/sun/star/presentation/EffectPresetClass.idl @@ -34,8 +34,8 @@ This is stored with the name <i>preset-class</i> inside the <member>::com::sun::star::animations::XAnimationNode::UserData</member> sequence. <br> - This does not manipulate the timing or syncronization. - It can be used to quickly identify preset animations inside an animation hierachy. + This does not manipulate the timing or synchronization. + It can be used to quickly identify preset animations inside an animation hierarchy. @see ::com::sun::star::animations::AnimationNode */ diff --git a/offapi/com/sun/star/presentation/OutlineView.idl b/offapi/com/sun/star/presentation/OutlineView.idl index ba2974365925..91d4aaf42cfa 100644 --- a/offapi/com/sun/star/presentation/OutlineView.idl +++ b/offapi/com/sun/star/presentation/OutlineView.idl @@ -57,7 +57,7 @@ document into the desktop. In an outline view, the textual contents of presentation text objects - from all presentation pages are presentet as a continous outline text. + from all presentation pages are presentet as a continuous outline text. @since OpenOffice 1.1.2 */ diff --git a/offapi/com/sun/star/presentation/XPresentation2.idl b/offapi/com/sun/star/presentation/XPresentation2.idl index e5cd1900ac6a..dc3bc40dcadf 100644 --- a/offapi/com/sun/star/presentation/XPresentation2.idl +++ b/offapi/com/sun/star/presentation/XPresentation2.idl @@ -83,7 +83,7 @@ interface XPresentation2 //------------------------------------------------------------------------- - /** if the slideshow is running, this returns a controler object to + /** if the slideshow is running, this returns a controller object to control the running slideshow. */ XSlideShowController getController(); }; diff --git a/offapi/com/sun/star/presentation/XSlideShow.idl b/offapi/com/sun/star/presentation/XSlideShow.idl index 8753cb05f3df..40fda413f719 100644 --- a/offapi/com/sun/star/presentation/XSlideShow.idl +++ b/offapi/com/sun/star/presentation/XSlideShow.idl @@ -68,7 +68,7 @@ module com { module sun { module star { module presentation { slideshow from a given set of XDrawPage slides. The slideshow can be displayed simultaneously on multiple targets.<p> - Note: To controll a running slideshow inside a presentation, please + Note: To control a running slideshow inside a presentation, please use <type>XPresentation2</type> and <type>XSlideShowController</type>. @since OpenOffice 3.0 diff --git a/offapi/com/sun/star/presentation/XSlideShowController.idl b/offapi/com/sun/star/presentation/XSlideShowController.idl index 21addd0b662e..65d83fe36007 100644 --- a/offapi/com/sun/star/presentation/XSlideShowController.idl +++ b/offapi/com/sun/star/presentation/XSlideShowController.idl @@ -95,7 +95,7 @@ interface XSlideShowController //------------------------------------------------------------------------- - /** addes a listener that recieves events while the slideshow is running. */ + /** addes a listener that receives events while the slideshow is running. */ void addSlideShowListener( [in] XSlideShowListener Listener ); //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/presentation/XSlideShowView.idl b/offapi/com/sun/star/presentation/XSlideShowView.idl index 7b5764cfd22a..4fee37c5bdc8 100644 --- a/offapi/com/sun/star/presentation/XSlideShowView.idl +++ b/offapi/com/sun/star/presentation/XSlideShowView.idl @@ -94,7 +94,7 @@ published interface XSlideShowView : ::com::sun::star::uno::XInterface /** Add a listener to get notified when the transformation matrix changes.<p> This method registers a listener with the view, which will get - called everytime the transformation matrix changes.<p> + called every time the transformation matrix changes.<p> @param xListener Listener interface to call when the transformation matrix changes. @@ -111,7 +111,7 @@ published interface XSlideShowView : ::com::sun::star::uno::XInterface /** Add a listener to get notified when this view needs a repaint.<p> This method registers a listener with the view, which will get - called everytime the view needs an update of their screen + called every time the view needs an update of their screen representation.<p> @param xListener @@ -129,7 +129,7 @@ published interface XSlideShowView : ::com::sun::star::uno::XInterface /** Add a mouse listener to the view.<p> This method registers a listener with the view, which will get - called everytime the mouse is clicked on the view.<p> + called every time the mouse is clicked on the view.<p> @param xListener Listener interface to call when the mouse is clicked on the view. @@ -146,7 +146,7 @@ published interface XSlideShowView : ::com::sun::star::uno::XInterface /** Add a mouse motion listener to the view.<p> This method registers a listener with the view, which will get - called everytime the mouse is moved on the view.<p> + called every time the mouse is moved on the view.<p> @param xListener Listener interface to call when the mouse is moved on the view. diff --git a/offapi/com/sun/star/rendering/XAnimation.idl b/offapi/com/sun/star/rendering/XAnimation.idl index acb5ee7125a8..1dcebe395ec3 100644 --- a/offapi/com/sun/star/rendering/XAnimation.idl +++ b/offapi/com/sun/star/rendering/XAnimation.idl @@ -68,7 +68,7 @@ published interface XAnimation : ::com::sun::star::uno::XInterface same parameter set, identical output must be generated. This is because e.g. a Sprite might decide arbitrarily to render an animation once and cache the result, or repaint it via - XAnimation::render everytime.<p> + XAnimation::render every time.<p> The rendered content, although, must be exactly the same for identical viewState, canvas and t values. Or, for that diff --git a/offapi/com/sun/star/report/XFunction.idl b/offapi/com/sun/star/report/XFunction.idl index b75ded1bc72f..d95faaef9065 100644 --- a/offapi/com/sun/star/report/XFunction.idl +++ b/offapi/com/sun/star/report/XFunction.idl @@ -71,7 +71,7 @@ published interface XFunction */ [attribute,bound] string Formula; - /** defines the formular for the intial value + /** defines the formular for the initial value */ [attribute,bound] com::sun::star::beans::Optional<string> InitialFormula; }; diff --git a/offapi/com/sun/star/report/XFunctionsSupplier.idl b/offapi/com/sun/star/report/XFunctionsSupplier.idl index 756bfaea6a02..db0a21bc33e1 100644 --- a/offapi/com/sun/star/report/XFunctionsSupplier.idl +++ b/offapi/com/sun/star/report/XFunctionsSupplier.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module report { //============================================================================= published interface XFunctions; -/** specifies the functions supplier which are located in a report defintion or a group. +/** specifies the functions supplier which are located in a report definition or a group. */ published interface XFunctionsSupplier { diff --git a/offapi/com/sun/star/report/XReportComponent.idl b/offapi/com/sun/star/report/XReportComponent.idl index 2e2809eaeef3..fbe54ed42550 100644 --- a/offapi/com/sun/star/report/XReportComponent.idl +++ b/offapi/com/sun/star/report/XReportComponent.idl @@ -166,7 +166,7 @@ published interface XReportComponent master field.<br/> If a string in this property denotes both a column name and a parameter name, it is undefined which way it is interpreted, but implementations of the service are required - to either decide for the paramter or the column, and proceed as usual. + to either decide for the parameter or the column, and proceed as usual. </p> <p>The columns specified herein typically represent a part of the primary key fields or their aliases of the detail report.</p> @@ -182,7 +182,7 @@ published interface XReportComponent /** Specifies the section where the control belongs to. - This is a shortcut to get control hierachy up. + This is a shortcut to get control hierarchy up. This value is <NULL/> when the control was not inserted in any section. */ [attribute,readonly] com::sun::star::report::XSection Section; diff --git a/offapi/com/sun/star/report/XReportDefinition.idl b/offapi/com/sun/star/report/XReportDefinition.idl index 5e6684159d92..5451943377e5 100644 --- a/offapi/com/sun/star/report/XReportDefinition.idl +++ b/offapi/com/sun/star/report/XReportDefinition.idl @@ -147,7 +147,7 @@ published interface XReportDefinition <p> With this interface it's possible too, to reset the modify state. - That can be neccessary to prevent code against problem during closing + That can be necessary to prevent code against problem during closing of the document without saving any changes. </p> */ @@ -237,7 +237,7 @@ published interface XReportDefinition */ [attribute,bound] long CommandType; - /** specifies an addtional filter to optinally use. + /** specifies an additional filter to optinally use. <p>The Filter string has to form a SQL WHERE-clause, <em>without</em> the WHERE-string itself.</p> diff --git a/offapi/com/sun/star/report/XReportEngine.idl b/offapi/com/sun/star/report/XReportEngine.idl index 5e23e13cebbd..3ac0db34f9ce 100644 --- a/offapi/com/sun/star/report/XReportEngine.idl +++ b/offapi/com/sun/star/report/XReportEngine.idl @@ -101,7 +101,7 @@ published interface XReportEngine @throws <type scope="com::sun::star::lang">IllegalArgumentException</type> If the report definition was not set or is <NULL/>. - OJ: Has to be discussed if this method is usefull. + OJ: Has to be discussed if this method is useful. */ com::sun::star::frame::XModel createDocumentAlive([in] com::sun::star::frame::XFrame frame) raises( ::com::sun::star::lang::DisposedException, diff --git a/offapi/com/sun/star/report/meta/XFunctionManager.idl b/offapi/com/sun/star/report/meta/XFunctionManager.idl index d55cbcf38008..cc2437a2f820 100644 --- a/offapi/com/sun/star/report/meta/XFunctionManager.idl +++ b/offapi/com/sun/star/report/meta/XFunctionManager.idl @@ -45,7 +45,7 @@ published interface XFunctionManager interface com::sun::star::container::XIndexAccess; /** same as getByIndex. - @param position The postion. + @param position The position. @see com.ssun.star.container.XIndexAccess */ XFunctionCategory getCategory([in] long position) diff --git a/offapi/com/sun/star/resource/XStringResourcePersistence.idl b/offapi/com/sun/star/resource/XStringResourcePersistence.idl index 865bf1157083..5ec4154c64e4 100644 --- a/offapi/com/sun/star/resource/XStringResourcePersistence.idl +++ b/offapi/com/sun/star/resource/XStringResourcePersistence.idl @@ -124,7 +124,7 @@ published interface XStringResourcePersistence: com::sun::star::resource::XStrin Calling this method does not affect the association with a location (in case of a <type>StringResourceWithLocation</type> instance) - repectively with a storage (in case of a + respectively with a storage (in case of a <type>StringResourceWithStorage</type> instance). The modified state isn't affected either. @@ -162,7 +162,7 @@ published interface XStringResourcePersistence: com::sun::star::resource::XStrin Calling this method does not affect the association with a location (in case of a <type>StringResourceWithLocation</type> instance) - repectively with a storage (in case of a + respectively with a storage (in case of a <type>StringResourceWithStorage</type> instance). The modified state isn't affected either. diff --git a/offapi/com/sun/star/resource/XStringResourceWithLocation.idl b/offapi/com/sun/star/resource/XStringResourceWithLocation.idl index 2fe841f672a6..57ab6d97c4b7 100644 --- a/offapi/com/sun/star/resource/XStringResourceWithLocation.idl +++ b/offapi/com/sun/star/resource/XStringResourceWithLocation.idl @@ -67,7 +67,7 @@ published interface XStringResourceWithLocation: com::sun::star::resource::XStri location before releasing it. The StringResourceManager will be modified after calling this method as the data isn't stored to the new location yet. <member>storeAsURL</member> should - be prefered as it directly stores the data to the new location + be preferred as it directly stores the data to the new location and afterwards this location is in sync with the resource data. </p> diff --git a/offapi/com/sun/star/resource/XStringResourceWithStorage.idl b/offapi/com/sun/star/resource/XStringResourceWithStorage.idl index 10a36054fc4f..a261dfbf3fb2 100644 --- a/offapi/com/sun/star/resource/XStringResourceWithStorage.idl +++ b/offapi/com/sun/star/resource/XStringResourceWithStorage.idl @@ -66,7 +66,7 @@ interface XStringResourceWithStorage: com::sun::star::resource::XStringResourceP force the implementation to reload data from the previous storage before releasing it. The StringResourceManager will be modified after calling this method as the data isn't stored to the new - storage yet. <member>storeAsStorage</member> should be prefered + storage yet. <member>storeAsStorage</member> should be preferred as it directly stores the data to the new storage and afterwards this storage is in sync with the resource data. </p> diff --git a/offapi/com/sun/star/scanner/ScanError.idl b/offapi/com/sun/star/scanner/ScanError.idl index 77e210e87eab..0762767d80dc 100644 --- a/offapi/com/sun/star/scanner/ScanError.idl +++ b/offapi/com/sun/star/scanner/ScanError.idl @@ -35,7 +35,7 @@ published enum ScanError { //------------------------------------------------------------------------- // DOCUMENTATION CHANGED FOR ScanError:: ScanErrorNone, - /** ScanErrorNone: no error occured + /** ScanErrorNone: no error occurred */ ScanErrorNone, @@ -47,7 +47,7 @@ published enum ScanError //------------------------------------------------------------------------- // DOCUMENTATION CHANGED FOR ScanError:: ScanFailed, - /** ScanFailed: an error occured during scanning + /** ScanFailed: an error occurred during scanning */ ScanFailed, diff --git a/offapi/com/sun/star/scanner/XScannerManager.idl b/offapi/com/sun/star/scanner/XScannerManager.idl index b12ccf74276e..fa3d4bf74e49 100644 --- a/offapi/com/sun/star/scanner/XScannerManager.idl +++ b/offapi/com/sun/star/scanner/XScannerManager.idl @@ -59,7 +59,7 @@ published interface XScannerManager: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- // DOCUMENTATION CHANGED FOR XScannerManager::getAvailableScanners - /** returns all avilable scanner devices + /** returns all available scanner devices */ sequence<com::sun::star::scanner::ScannerContext> getAvailableScanners(); @@ -75,7 +75,7 @@ published interface XScannerManager: com::sun::star::uno::XInterface /**start the scanning process listener will be called when scan is complete the EventObject of the disposing call will contain - the ScannerManager if the scan was successfull, + the ScannerManager if the scan was successful, an empty interface otherwise */ void startScan( [in] com::sun::star::scanner::ScannerContext scanner_context, diff --git a/offapi/com/sun/star/script/provider/ScriptErrorRaisedException.idl b/offapi/com/sun/star/script/provider/ScriptErrorRaisedException.idl index f6bc23b1babe..eb7a143562c6 100644 --- a/offapi/com/sun/star/script/provider/ScriptErrorRaisedException.idl +++ b/offapi/com/sun/star/script/provider/ScriptErrorRaisedException.idl @@ -38,13 +38,13 @@ module com { module sun { module star { module script { module provider { by a LanguageScriptProvider whilst executing a script */ exception ScriptErrorRaisedException : com::sun::star::uno::Exception { - /** Name of script where error occured + /** Name of script where error occurred */ string scriptName; /** Scripting language of script that generated exception */ string language; - /** line number where error occured. + /** line number where error occurred. */ long lineNum; }; diff --git a/offapi/com/sun/star/script/provider/ScriptExceptionRaisedException.idl b/offapi/com/sun/star/script/provider/ScriptExceptionRaisedException.idl index 8e8714d164a3..18b8ad3283eb 100644 --- a/offapi/com/sun/star/script/provider/ScriptExceptionRaisedException.idl +++ b/offapi/com/sun/star/script/provider/ScriptExceptionRaisedException.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module script { module provider { thrown by a LanguageScriptProvider whilst executing a script */ exception ScriptExceptionRaisedException : ::com::sun::star::script::provider::ScriptErrorRaisedException { - /** Name of script where error occured + /** Name of script where error occurred */ string exceptionType; }; diff --git a/offapi/com/sun/star/script/provider/ScriptFrameworkErrorException.idl b/offapi/com/sun/star/script/provider/ScriptFrameworkErrorException.idl index f17b9a15d881..9e8324e78244 100644 --- a/offapi/com/sun/star/script/provider/ScriptFrameworkErrorException.idl +++ b/offapi/com/sun/star/script/provider/ScriptFrameworkErrorException.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module script { module provider { by the Scripting Framework whilst executing a script */ exception ScriptFrameworkErrorException : com::sun::star::uno::Exception { - /** Name of script where error occured + /** Name of script where error occurred */ string scriptName; /** Scripting language of script that generated exception diff --git a/offapi/com/sun/star/sdb/DataAccessDescriptor.idl b/offapi/com/sun/star/sdb/DataAccessDescriptor.idl index f8a55e1b0f53..ccdb2482d6ce 100644 --- a/offapi/com/sun/star/sdb/DataAccessDescriptor.idl +++ b/offapi/com/sun/star/sdb/DataAccessDescriptor.idl @@ -137,7 +137,7 @@ published service DataAccessDescriptor */ [optional, property] long CommandType; - /** specifies an addtional filter to optionally use. + /** specifies an additional filter to optionally use. <p>The Filter string has to form a <code>WHERE</code>-clause, <em>without</em> the <code>WHERE</code>-string itself.</p> diff --git a/offapi/com/sun/star/sdb/DataSettings.idl b/offapi/com/sun/star/sdb/DataSettings.idl index 20eae9ac365c..34559a23c0e7 100644 --- a/offapi/com/sun/star/sdb/DataSettings.idl +++ b/offapi/com/sun/star/sdb/DataSettings.idl @@ -40,7 +40,7 @@ /** extends the <type scope="com::sun::star::sdbcx">Table</type> - with additional display information, sorting and filtering criterias. + with additional display information, sorting and filtering criteria. */ published service DataSettings diff --git a/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl b/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl index 4731eb2c552b..142015aab17e 100644 --- a/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl +++ b/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module sdb { published interface XCompletedConnection; -/** is a factory to create data access beans. Data access beans are shared amoung +/** is a factory to create data access beans. Data access beans are shared among components, so if an already existing bean is requested, the existing one is returned. @deprecated diff --git a/offapi/com/sun/star/sdb/ErrorCondition.idl b/offapi/com/sun/star/sdb/ErrorCondition.idl index be484c956720..cfe7b7d79ee3 100644 --- a/offapi/com/sun/star/sdb/ErrorCondition.idl +++ b/offapi/com/sun/star/sdb/ErrorCondition.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module sdb { <p>Core components of OpenOffice.org will use those error conditions as error codes (<member scope="com::sun::star::sdbc">SQLException::ErrorCode</member>) - whereever possible.<br/> + wherever possible.<br/> That is, if an <code>SQLException</code> is raised by such a component, caused by an error condition which is included in the <type>ErrorCondition</type> group, then the respective <em>negative</em> value diff --git a/offapi/com/sun/star/sdb/QueryDesign.idl b/offapi/com/sun/star/sdb/QueryDesign.idl index ec2440f6dc90..be217bcd5a9a 100644 --- a/offapi/com/sun/star/sdb/QueryDesign.idl +++ b/offapi/com/sun/star/sdb/QueryDesign.idl @@ -46,7 +46,7 @@ module com { module sun { module star { module sdb { <p>The design view of the QueryDesign is divided into two parts. The first part contains the table windows where columns can be selected for the SQL statement. The second part contains the columns which should appear - in the selection of the SQL statement or criterias which narrow the query.</p> + in the selection of the SQL statement or criteria which narrow the query.</p> <h3>Operation Modes</h3> @@ -93,7 +93,7 @@ module com { module sun { module star { module sdb { <li><a name="active_connection"></a><b>ActiveConnection</b><br/> specifies the connection to work with.<br/> - May be ommitted if and only if a valid <a href="#data_source">DataSourceName</a> parameter is supplied. + May be omitted if and only if a valid <a href="#data_source">DataSourceName</a> parameter is supplied. </li> <li><a name="command"></a><b>Command</b><br/> diff --git a/offapi/com/sun/star/sdb/SQLContext.idl b/offapi/com/sun/star/sdb/SQLContext.idl index 5a04c99d5471..7a51910fa68f 100644 --- a/offapi/com/sun/star/sdb/SQLContext.idl +++ b/offapi/com/sun/star/sdb/SQLContext.idl @@ -44,7 +44,7 @@ published exception SQLContext: com::sun::star::sdbc::SQLWarning { /** provides special info about the details where a <type scope="com::sun::star::sdbc">SQLException</type> - occured. + occurred. As usual for SQLExceptions, several SQLContext-objects may be chained, then the most recent context is appended to the list's tail */ diff --git a/offapi/com/sun/star/sdb/Table.idl b/offapi/com/sun/star/sdb/Table.idl index f3743ca86081..ccc4270ac10d 100644 --- a/offapi/com/sun/star/sdb/Table.idl +++ b/offapi/com/sun/star/sdb/Table.idl @@ -36,7 +36,7 @@ /** extends the service <type scope="com::sun::star::sdbcx">Table</type> - with additional display information, sorting, and filtering criterias. + with additional display information, sorting, and filtering criteria. */ published service Table { diff --git a/offapi/com/sun/star/sdb/XRowSetApproveListener.idl b/offapi/com/sun/star/sdb/XRowSetApproveListener.idl index 7bdc2c69b3c7..1e8fde894afc 100644 --- a/offapi/com/sun/star/sdb/XRowSetApproveListener.idl +++ b/offapi/com/sun/star/sdb/XRowSetApproveListener.idl @@ -41,7 +41,7 @@ published interface XRowSetApproveListener: com::sun::star::lang::XEventListener /** is called before a rowset's cursor is moved. @param event - the event which happend + the event which happened @returns <TRUE/> when moving is allowed, otherwise <FALSE/> */ boolean approveCursorMove([in]com::sun::star::lang::EventObject event); @@ -49,7 +49,7 @@ published interface XRowSetApproveListener: com::sun::star::lang::XEventListener /** is called before a row is inserted, updated, or deleted. @param event - the event which happend + the event which happened @returns <TRUE/> when changing is allowed, otherwise <FALSE/> */ boolean approveRowChange([in]RowChangeEvent event); @@ -58,7 +58,7 @@ published interface XRowSetApproveListener: com::sun::star::lang::XEventListener /** is called before a rowset is changed, or in other words before a rowset is reexecuted. @param event - the event which happend + the event which happened @returns <TRUE/> when changing is allowed, otherwise <FALSE/> */ boolean approveRowSetChange([in]com::sun::star::lang::EventObject event); diff --git a/offapi/com/sun/star/sdb/XSQLErrorListener.idl b/offapi/com/sun/star/sdb/XSQLErrorListener.idl index 406d81f5515f..fa565e0a6646 100644 --- a/offapi/com/sun/star/sdb/XSQLErrorListener.idl +++ b/offapi/com/sun/star/sdb/XSQLErrorListener.idl @@ -44,7 +44,7 @@ published interface XSQLErrorListener: com::sun::star::lang::XEventListener <type scope="com::sun::star::sdbc">SQLException</type> is thrown to the application. @param aEvent - the event which occured + the event which occurred */ void errorOccured([in]com::sun::star::sdb::SQLErrorEvent aEvent); }; diff --git a/offapi/com/sun/star/sdb/XSQLQueryComposer.idl b/offapi/com/sun/star/sdb/XSQLQueryComposer.idl index 3afb4785bc8b..0b4349c2d340 100644 --- a/offapi/com/sun/star/sdb/XSQLQueryComposer.idl +++ b/offapi/com/sun/star/sdb/XSQLQueryComposer.idl @@ -69,7 +69,7 @@ published interface XSQLQueryComposer: com::sun::star::uno::XInterface raises (com::sun::star::sdbc::SQLException); //------------------------------------------------------------------------- - /** returns the query composed with filters and sort criterias. + /** returns the query composed with filters and sort criteria. @returns the composed query */ @@ -91,7 +91,7 @@ published interface XSQLQueryComposer: com::sun::star::uno::XInterface /** returns the currently used filter. <p> The filter criteria is split into levels. Each level represents the - OR criterias. Within each level, the filters are provided as an AND criteria + OR criteria. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. </p> @@ -151,7 +151,7 @@ published interface XSQLQueryComposer: com::sun::star::uno::XInterface raises (com::sun::star::sdbc::SQLException); //------------------------------------------------------------------------- - /** makes it possibile to set a sort condition for the query. + /** makes it possible to set a sort condition for the query. @param order the order part to set @throws com::sun::star::sdbc::SQLException diff --git a/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl b/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl index 74be15ae9b9a..bb71db8bb1d8 100644 --- a/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl +++ b/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl @@ -91,7 +91,7 @@ published interface XSingleSelectQueryAnalyzer : com::sun::star::uno::XInterface /** returns the currently used filter. <p> The filter criteria is split into levels. Each level represents the - OR criterias. Within each level, the filters are provided as an AND criteria + OR criteria. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. The operator used, is defined by <type scope="com::sun::star::sdb">SQLFilterOperator</type>. </p> @@ -143,7 +143,7 @@ published interface XSingleSelectQueryAnalyzer : com::sun::star::uno::XInterface /** returns the currently used HAVING filter. <p> The HAVING filter criteria is split into levels. Each level represents the - OR criterias. Within each level, the filters are provided as an AND criteria + OR criteria. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. The operator used, is defined by <type scope="com::sun::star::sdb">SQLFilterOperator</type>. </p> diff --git a/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl b/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl index fa6ecd5b72f1..bb630f17b072 100644 --- a/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl +++ b/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl @@ -75,7 +75,7 @@ published interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer /** appends a new set of filter criteria which is split into levels. @param filter The filter criteria is split into levels. Each level represents the - OR criterias. Within each level, the filters are provided as an AND criteria + OR criteria. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. The operator used, is defined by <type scope="com::sun::star::sdb">SQLFilterOperator</type>. @@ -109,7 +109,7 @@ published interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer //------------------------------------------------------------------------- - /** makes it possibile to set a group for the query. + /** makes it possible to set a group for the query. @param group the group part to set @throws com::sun::star::sdbc::SQLException @@ -152,7 +152,7 @@ published interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer /** appends a new set of HAVING filter criteria which is split into levels. @param filter The HAVING filter criteria is split into levels. Each level represents the - OR criterias. Within each level, the filters are provided as an AND criteria + OR criteria. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. The operator used, is defined by <type scope="com::sun::star::sdb">SQLFilterOperator</type>. @@ -184,7 +184,7 @@ published interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer // ORDER BY //------------------------------------------------------------------------- - /** makes it possibile to set a sort condition for the query. + /** makes it possible to set a sort condition for the query. @param order the order part to set @throws com::sun::star::sdbc::SQLException diff --git a/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl b/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl index fb8d633f3b9f..2d4ab9c1b6ae 100644 --- a/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl +++ b/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl @@ -72,7 +72,7 @@ published interface XDatabaseDocumentUI <p>Note that the connection returned here is really the working connection of the application. Clients should not misuse it, in particular, closing - the connection can yield unexpected results and should definately be + the connection can yield unexpected results and should definitely be avoided. If you need a separate connection to the data source, use <member scope="com::sun::star::sdbc">XDataSource::getConnection</member>.</p> */ @@ -123,7 +123,7 @@ published interface XDatabaseDocumentUI a record describing the sub component. The first element of the returned pair is the type of the component, denoted by one of the <type>DatabaseObject</type> constants. The second element is the name of the component. For object types which support nested structures (forms - and reports, actually), this might be a hierachical name. If the sub component has been newly created, + and reports, actually), this might be a hierarchical name. If the subcomponent has been newly created, and not yet saved, this name is empty. @throws ::com::sun::star::lang::IllegalArgumentException @@ -183,7 +183,7 @@ published interface XDatabaseDocumentUI constants. @param ObjectName - specifies the name of the object. In case hierachical objects are supported + specifies the name of the object. In case hierarchical objects are supported (as is the case form forms and reports), hierarchical names are supported here, too. @param ForEditing diff --git a/offapi/com/sun/star/sdb/application/XTableUIProvider.idl b/offapi/com/sun/star/sdb/application/XTableUIProvider.idl index 76e2138bdb4c..e20378a2be10 100644 --- a/offapi/com/sun/star/sdb/application/XTableUIProvider.idl +++ b/offapi/com/sun/star/sdb/application/XTableUIProvider.idl @@ -72,7 +72,7 @@ interface XTableUIProvider @param DocumentUI provides access to the UI in which the database document is currently displayed.<br/> - In particular, this paramter provides access to the application's main + In particular, this parameter provides access to the application's main window, which is needed in case the table editor should be a dialog. @param TableName diff --git a/offapi/com/sun/star/sdb/tools/XConnectionTools.idl b/offapi/com/sun/star/sdb/tools/XConnectionTools.idl index 8ac9124505b6..a23fd2c431ff 100644 --- a/offapi/com/sun/star/sdb/tools/XConnectionTools.idl +++ b/offapi/com/sun/star/sdb/tools/XConnectionTools.idl @@ -106,7 +106,7 @@ published interface XConnectionTools If (and only if) <arg>CommandType</arg> is CommandType.COMMAND, the fields collection which is returned by this function here is a temporary object. It is kept alive by another object, which is to be created temporarily, too. To ensure that the fields you get are valid as long as you need them, - the owner which controls their life time is transfered to this parameter upon return.<br/> + the owner which controls their life time is transferred to this parameter upon return.<br/> Your fields live as long as this component lives.<br/> diff --git a/offapi/com/sun/star/sdbc/ConnectionProperties.idl b/offapi/com/sun/star/sdbc/ConnectionProperties.idl index 5c40a6eb820b..293bd0ac3282 100644 --- a/offapi/com/sun/star/sdbc/ConnectionProperties.idl +++ b/offapi/com/sun/star/sdbc/ConnectionProperties.idl @@ -33,7 +33,7 @@ <member scope="com::sun::star::sdbc">XDriverManager::getConnectionWithInfo()</member>. <p> - The properties for a connection contain additonal information about how to connect to a database and + The properties for a connection contain additional information about how to connect to a database and how to control the behavior of the resulting connection should be. </p> diff --git a/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl b/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl index 03c215bfa5d9..49145d9deb40 100644 --- a/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl +++ b/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module sdbc { <member scope="com::sun::star::sdbc">XDriverManager::getConnectionWithInfo()</member>. <p> - The properties for a connection contain additonal information about how to connect to a database and + The properties for a connection contain additional information about how to connect to a database and how to control the behavior of the resulting connection should be. </p> diff --git a/offapi/com/sun/star/sdbc/DataType.idl b/offapi/com/sun/star/sdbc/DataType.idl index b3d1833e8f6e..c1d6aa7624f8 100644 --- a/offapi/com/sun/star/sdbc/DataType.idl +++ b/offapi/com/sun/star/sdbc/DataType.idl @@ -33,7 +33,7 @@ The actual type constant values are equivalent to those in the X/Open CLI. </p> <p> - Precise information about the specfic types can be got from + Precise information about the specific types can be got from <member>XDatabaseMetaData::getTypeInfo()</member> .</p> */ diff --git a/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl b/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl index 6e13bd0d0b71..f8694192b76a 100644 --- a/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl +++ b/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module sdbc { <member scope="com::sun::star::sdbc">XDriverManager::getConnectionWithInfo()</member>. <p> - The properties for a connection contain additonal information about how to connect to a database and + The properties for a connection contain additional information about how to connect to a database and how to control the behavior of the resulting connection should be. </p> diff --git a/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl b/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl index dd1a063e11bd..4b55c84e6e34 100644 --- a/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl +++ b/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module sdbc { <member scope="com::sun::star::sdbc">XDriverManager::getConnectionWithInfo()</member>. <p> - The properties for a connection contain additonal information about how to connect to a database and + The properties for a connection contain additional information about how to connect to a database and how to control the behavior of the resulting connection should be. </p> @@ -51,19 +51,19 @@ service FLATConnectionProperties */ [optional, property] boolean HeaderLine; - /** A one character delimiter to seperate the fields. + /** A one character delimiter to separate the fields. */ [optional, property] string FieldDelimiter; - /** A one character delimiter to seperate the strings. + /** A one character delimiter to separate the strings. */ [optional, property] string StringDelimiter; - /** A one character delimiter to seperate the decimal. + /** A one character delimiter to separate the decimal. */ [optional, property] string DecimalDelimiter; - /** A one character delimiter to seperate the thousands. + /** A one character delimiter to separate the thousands. */ [optional, property] string ThousandDelimiter; diff --git a/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl b/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl index a99441da0855..b082a3cde3c1 100644 --- a/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl +++ b/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module sdbc { <member scope="com::sun::star::sdbc">XDriverManager::getConnectionWithInfo()</member>. <p> - The properties for a connection contain additonal information about how to connect to a database and + The properties for a connection contain additional information about how to connect to a database and how to control the behavior of the resulting connection should be. </p> diff --git a/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl b/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl index ab89924e7795..e019f253d148 100644 --- a/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl +++ b/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module sdbc { <member scope="com::sun::star::sdbc">XDriverManager::getConnectionWithInfo()</member>. <p> - The properties for a connection contain additonal information about how to connect to a database and + The properties for a connection contain additional information about how to connect to a database and how to control the behavior of the resulting connection should be. </p> diff --git a/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl index d07ab69b6d0c..001009984eec 100644 --- a/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl +++ b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl @@ -1617,7 +1617,7 @@ published interface XDatabaseMetaData: com::sun::star::uno::XInterface /** gets a description of the access rights for each table available in a catalog. Note that a table privilege applies to one or more columns in the table. It would be wrong to assume that - this priviledge applies to all columns (this may be <TRUE/> for + this privilege applies to all columns (this may be <TRUE/> for some systems but is not <TRUE/> for all.) @@ -2319,7 +2319,7 @@ published interface XDatabaseMetaData: com::sun::star::uno::XInterface <b>TYPE</b> short => index type: <ul> <li> 0 - this identifies table statistics that are - returned in conjuction with a table's index descriptions + returned in conjunction with a table's index descriptions </li> <li> CLUSTERED - this is a clustered index </li> diff --git a/offapi/com/sun/star/sdbc/XPreparedStatement.idl b/offapi/com/sun/star/sdbc/XPreparedStatement.idl index 52a736ef8dfc..f4759b095793 100644 --- a/offapi/com/sun/star/sdbc/XPreparedStatement.idl +++ b/offapi/com/sun/star/sdbc/XPreparedStatement.idl @@ -37,7 +37,7 @@ published interface XResultSet; -/** provides the possibilty of executing a precompiled SQL statement. +/** provides the possibility of executing a precompiled SQL statement. <p> diff --git a/offapi/com/sun/star/sdbc/XResultSetUpdate.idl b/offapi/com/sun/star/sdbc/XResultSetUpdate.idl index 318391a93d60..b129d4e10b2b 100644 --- a/offapi/com/sun/star/sdbc/XResultSetUpdate.idl +++ b/offapi/com/sun/star/sdbc/XResultSetUpdate.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module sdbc { -/** provides the possiblity to write changes made on a result set back to +/** provides the possibility to write changes made on a result set back to database. */ published interface XResultSetUpdate: com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/sdbcx/CompareBookmark.idl b/offapi/com/sun/star/sdbcx/CompareBookmark.idl index ee6aed41e023..69b29831bb20 100644 --- a/offapi/com/sun/star/sdbcx/CompareBookmark.idl +++ b/offapi/com/sun/star/sdbcx/CompareBookmark.idl @@ -26,7 +26,7 @@ module com { module sun { module star { module sdbcx { -/** describes the result of a comparision of two bookmarks. +/** describes the result of a comparison of two bookmarks. */ published constants CompareBookmark { diff --git a/offapi/com/sun/star/sdbcx/Descriptor.idl b/offapi/com/sun/star/sdbcx/Descriptor.idl index 82b187e070c1..f8e271d29974 100644 --- a/offapi/com/sun/star/sdbcx/Descriptor.idl +++ b/offapi/com/sun/star/sdbcx/Descriptor.idl @@ -39,7 +39,7 @@ on the informations of the descriptor. The descriptor can be used to create serveral objects. </p> <p> - A descriptor containes at least the informations of the name of an object. + A descriptor contains at least the informations of the name of an object. </p> @see com::sun::star::sdbcx::XAppend */ diff --git a/offapi/com/sun/star/security/CertificateCharacters.idl b/offapi/com/sun/star/security/CertificateCharacters.idl index e2a22ff93c35..204aa9b71c92 100644 --- a/offapi/com/sun/star/security/CertificateCharacters.idl +++ b/offapi/com/sun/star/security/CertificateCharacters.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module security { /** - * Constant definiton of a certificate characters. + * Constant definition of a certificate characters. * * The certificate characters will be defined as bit-wise constants. */ diff --git a/offapi/com/sun/star/security/CertificateContainerStatus.idl b/offapi/com/sun/star/security/CertificateContainerStatus.idl index 5509d0d11349..35af37db7526 100644 --- a/offapi/com/sun/star/security/CertificateContainerStatus.idl +++ b/offapi/com/sun/star/security/CertificateContainerStatus.idl @@ -30,7 +30,7 @@ module com { module sun { module star { module security { /** - * Constant definiton of a certificate container status. + * Constant definition of a certificate container status. * */ published enum CertificateContainerStatus diff --git a/offapi/com/sun/star/security/CertificateValidity.idl b/offapi/com/sun/star/security/CertificateValidity.idl index 95fe648a9b3d..f1bfe5ddef91 100644 --- a/offapi/com/sun/star/security/CertificateValidity.idl +++ b/offapi/com/sun/star/security/CertificateValidity.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module security { /** - * Constant definiton of a certificate characters. + * Constant definition of a certificate characters. * * The certificate characters will be defined as bit-wise constants. */ diff --git a/offapi/com/sun/star/security/DocumentSignatureInformation.idl b/offapi/com/sun/star/security/DocumentSignatureInformation.idl index 7f126d64e6b7..9ca8053d82f5 100644 --- a/offapi/com/sun/star/security/DocumentSignatureInformation.idl +++ b/offapi/com/sun/star/security/DocumentSignatureInformation.idl @@ -62,7 +62,7 @@ struct DocumentSignatureInformation applied to the files in the root of the document, except mimetype, the Pictures and ObjectReplacements/Objects folder. That is, macros were not part of the document signature. - OpenOffice 3.0 signed everthing, execept mimetype and the META-INF folder. + OpenOffice 3.0 signed everything, execept mimetype and the META-INF folder. <p> If PartialDocumentSignature is true, then the signature was created by OOo with a version less then 3.2. In this case, not all files are signed. The diff --git a/offapi/com/sun/star/security/ExtAltNameType.idl b/offapi/com/sun/star/security/ExtAltNameType.idl index 7037dc45dcf7..583203b78566 100644 --- a/offapi/com/sun/star/security/ExtAltNameType.idl +++ b/offapi/com/sun/star/security/ExtAltNameType.idl @@ -31,7 +31,7 @@ module com { module sun { module star { module security { /** - * Constant definiton of a certificate container status. + * Constant definition of a certificate container status. */ enum ExtAltNameType { diff --git a/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl b/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl index d6ace3898175..c4f9e32378a0 100644 --- a/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl +++ b/offapi/com/sun/star/security/XDocumentDigitalSignatures.idl @@ -127,7 +127,7 @@ interface XDocumentDigitalSignatures : com::sun::star::uno::XInterface void showCertificate( [in] com::sun::star::security::XCertificate Certificate ); - /** manages trusted sources (Authors and pathes ) + /** manages trusted sources (Authors and paths ) */ void manageTrustedSources(); diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl index 0803a9db8f6f..2861fcb6f074 100644 --- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl +++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl @@ -57,7 +57,7 @@ published service AccessibleSpreadsheetDocumentView <ul> <li>The parent returned by <method>getAccessibleParent</method> - is the window wich contains the view of these document.</li> + is the window which contains the view of these document.</li> <li>The children returned by <method>getAccessibleChild</method> all support the interface XAccessible. Calling <method>getAccessibleContext</method> for these children returns @@ -67,7 +67,7 @@ published service AccessibleSpreadsheetDocumentView A child where calling <method>getAccessibleChild</method> an object that supports this service is returned for the current spreadsheet which is showing in this document - window. There is everytime one child which supports this + window. There is every time one child which supports this service, because it is only possible to have one spreadsheet in the current document window.</li> <li><type scope="::com::sun::star::drawing">AccessibleShape</type>: diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl index 010a6841e44d..02160a831dc8 100644 --- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl +++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl @@ -55,7 +55,7 @@ published service AccessibleSpreadsheetPageView <li>The parent returned by <method scope="::com::sun::star::accessibility" >XAccessibleContext::getAccessibleParent</method> - is the window wich contains the view of these page preview.</li> + is the window which contains the view of these page preview.</li> <li>The children returned by <method scope="::com::sun::star::accessibility" >XAccessibleContext::getAccessibleChild</method> all diff --git a/offapi/com/sun/star/sheet/DatabaseRange.idl b/offapi/com/sun/star/sheet/DatabaseRange.idl index 3b783f5d73eb..5e4ed16025db 100644 --- a/offapi/com/sun/star/sheet/DatabaseRange.idl +++ b/offapi/com/sun/star/sheet/DatabaseRange.idl @@ -119,7 +119,7 @@ published service DatabaseRange //------------------------------------------------------------------------- - /** specifies the range where the filter can find the filter criterias. + /** specifies the range where the filter can find the filter criteria. <p>This is only used if <member>SheetFilterDescriptor::UseFilterCriteriaSource</member> is <TRUE/>.</p> @since OpenOffice 1.1.2 diff --git a/offapi/com/sun/star/sheet/SheetCell.idl b/offapi/com/sun/star/sheet/SheetCell.idl index 5e08412932e8..b1097efb19a3 100644 --- a/offapi/com/sun/star/sheet/SheetCell.idl +++ b/offapi/com/sun/star/sheet/SheetCell.idl @@ -323,7 +323,7 @@ published service SheetCell //------------------------------------------------------------------------- - /** Returns the absolute adress of the range as string, e.g. "$Sheet1.$B$2". + /** Returns the absolute address of the range as string, e.g. "$Sheet1.$B$2". */ [optional, readonly, property] string AbsoluteName; }; diff --git a/offapi/com/sun/star/sheet/SheetCellRange.idl b/offapi/com/sun/star/sheet/SheetCellRange.idl index 2c70eca72606..85b923627d5b 100644 --- a/offapi/com/sun/star/sheet/SheetCellRange.idl +++ b/offapi/com/sun/star/sheet/SheetCellRange.idl @@ -417,7 +417,7 @@ published service SheetCellRange //------------------------------------------------------------------------- - /** Returns the absolute adress of the range as string, e.g. "$Sheet1.$B$2:$D$5". + /** Returns the absolute address of the range as string, e.g. "$Sheet1.$B$2:$D$5". */ [optional, readonly, property] string AbsoluteName; }; diff --git a/offapi/com/sun/star/sheet/SheetCellRanges.idl b/offapi/com/sun/star/sheet/SheetCellRanges.idl index 064961000041..435ddba0e80f 100644 --- a/offapi/com/sun/star/sheet/SheetCellRanges.idl +++ b/offapi/com/sun/star/sheet/SheetCellRanges.idl @@ -240,7 +240,7 @@ published service SheetCellRanges //------------------------------------------------------------------------- - /** Returns the absolute adress of the ranges as string, e.g. "$Sheet1.$B$2:$D$5". + /** Returns the absolute address of the ranges as string, e.g. "$Sheet1.$B$2:$D$5". */ [optional, readonly, property] string AbsoluteName; }; diff --git a/offapi/com/sun/star/sheet/XSheetAnnotations.idl b/offapi/com/sun/star/sheet/XSheetAnnotations.idl index acce51d0327e..649f226a0102 100644 --- a/offapi/com/sun/star/sheet/XSheetAnnotations.idl +++ b/offapi/com/sun/star/sheet/XSheetAnnotations.idl @@ -54,7 +54,7 @@ published interface XSheetAnnotations: com::sun::star::container::XIndexAccess specified cell and inserts it into the collection.</p> @param aPosition - contains the address of the cell thta will contain the + contains the address of the cell that will contain the annotation. @param aText diff --git a/offapi/com/sun/star/smarttags/XSmartTagAction.idl b/offapi/com/sun/star/smarttags/XSmartTagAction.idl index 682ba5865307..74c32ca7c0b4 100644 --- a/offapi/com/sun/star/smarttags/XSmartTagAction.idl +++ b/offapi/com/sun/star/smarttags/XSmartTagAction.idl @@ -231,7 +231,7 @@ interface XSmartTagAction: com::sun::star::lang::XInitialization //------------------------------------------------------------------------- - /** obtains a language independant name of an action. + /** obtains a language independent name of an action. @param nActionID The identifier of the requested action. @@ -240,7 +240,7 @@ interface XSmartTagAction: com::sun::star::lang::XInitialization The current controller of the document. @return - the language independant name of the specified action. + the language independent name of the specified action. @throws com::sun::star::lang::IllegalArgumentException if the ActionID is not recognized. diff --git a/offapi/com/sun/star/style/Style.idl b/offapi/com/sun/star/style/Style.idl index c53834bd6a08..61a6de9a2cfb 100644 --- a/offapi/com/sun/star/style/Style.idl +++ b/offapi/com/sun/star/style/Style.idl @@ -123,7 +123,7 @@ published service Style <p>Assigning an empty string to the style name will disable the conditional style for that context.</p> - <p>The alowed strings (contexts) for the name part of an entry + <p>The allowed strings (contexts) for the name part of an entry of the sequence are:</p> <ul> diff --git a/offapi/com/sun/star/table/AccessibleTableView.idl b/offapi/com/sun/star/table/AccessibleTableView.idl index 93163daf50e0..1f6a25b1d986 100644 --- a/offapi/com/sun/star/table/AccessibleTableView.idl +++ b/offapi/com/sun/star/table/AccessibleTableView.idl @@ -103,7 +103,7 @@ published service AccessibleTableView >AccessibleStateType::DEFUNC</const> is always false if the table is not deleted, the document is open. Also it is false if the table was showed in a page preview and the - page preview is allready opend, otherwise it is true.</li> + page preview is already opend, otherwise it is true.</li> <li><const scope="::com::sun::star::accessibility" >AccessibleStateType::EDITABLE</const> is false if the table is showed in a page preview or the table is diff --git a/offapi/com/sun/star/table/CellProperties.idl b/offapi/com/sun/star/table/CellProperties.idl index 3a5b8e12face..863fba8ab38b 100644 --- a/offapi/com/sun/star/table/CellProperties.idl +++ b/offapi/com/sun/star/table/CellProperties.idl @@ -246,7 +246,7 @@ published service CellProperties //------------------------------------------------------------------------- - /** is <TRUE/>, if the cell content will be shrinked to fit in the cell. + /** is <TRUE/>, if the cell content will be shrunk to fit in the cell. */ [optional, property] boolean ShrinkToFit; diff --git a/offapi/com/sun/star/table/CellRangeListSource.idl b/offapi/com/sun/star/table/CellRangeListSource.idl index 5fd0edf1ca52..c779abc6a1e1 100644 --- a/offapi/com/sun/star/table/CellRangeListSource.idl +++ b/offapi/com/sun/star/table/CellRangeListSource.idl @@ -70,7 +70,7 @@ service CellRangeListSource method must be instances of <type scope="com::sun::star::beans">NamedValue</type>, where the <member scope"com::sun::star::beans">NamedValue::Name</member> denotes the type of information to initialize, and the <member scope"com::sun::star::beans">NamedValue::Value</member> - the inital value.</p> + the initial value.</p> <p>The following aspects of the components can be initialized:<br/> <ul><li><b>CellRange</b><br/> diff --git a/offapi/com/sun/star/table/CellValueBinding.idl b/offapi/com/sun/star/table/CellValueBinding.idl index 84c9cf65c63a..bec4b3b8ec48 100644 --- a/offapi/com/sun/star/table/CellValueBinding.idl +++ b/offapi/com/sun/star/table/CellValueBinding.idl @@ -83,7 +83,7 @@ service CellValueBinding method must be instances of <type scope="com::sun::star::beans">NamedValue</type>, where the <member scope"com::sun::star::beans">NamedValue::Name</member> denotes the type of information to initialize, and the <member scope"com::sun::star::beans">NamedValue::Value</member> - the inital value.</p> + the initial value.</p> <p>The following aspects of the components can be initialized:<br/> <ul><li><b>BoundCell</b><br/> diff --git a/offapi/com/sun/star/table/XCell.idl b/offapi/com/sun/star/table/XCell.idl index fb95e36823ac..89a2fb1554fd 100644 --- a/offapi/com/sun/star/table/XCell.idl +++ b/offapi/com/sun/star/table/XCell.idl @@ -72,7 +72,7 @@ published interface XCell: com::sun::star::uno::XInterface /** returns the floating point value of the cell. - <p>For a <em>value cell</em> the value is returnd, for a + <p>For a <em>value cell</em> the value is returned, for a <em>string cell</em> zero is returned and for a <em>formula cell</em> the result value of a formula is returned.</p> */ diff --git a/offapi/com/sun/star/table/XMergeableCellRange.idl b/offapi/com/sun/star/table/XMergeableCellRange.idl index 484055525f2f..3ff2b9eedad5 100644 --- a/offapi/com/sun/star/table/XMergeableCellRange.idl +++ b/offapi/com/sun/star/table/XMergeableCellRange.idl @@ -57,7 +57,7 @@ interface XMergeableCellRange : com::sun::star::uno::XInterface /** splits the cells in this range. This will be done by inserting rows and columns if needed or unmerging - cells taht are already splitted. + cells that are already splitted. @param Columns this is the number of columns that will be added to each cell. Zero diff --git a/offapi/com/sun/star/task/DocumentMacroConfirmationRequest.idl b/offapi/com/sun/star/task/DocumentMacroConfirmationRequest.idl index f6fed14e4956..df7cd7a994c4 100644 --- a/offapi/com/sun/star/task/DocumentMacroConfirmationRequest.idl +++ b/offapi/com/sun/star/task/DocumentMacroConfirmationRequest.idl @@ -44,7 +44,7 @@ exception DocumentMacroConfirmationRequest : ClassifiedInteractionRequest */ string DocumentURL; - /** refers to the storage related to the last commited version of the + /** refers to the storage related to the last committed version of the document. This storage is necessary e.g. for displaying the existing signatures to diff --git a/offapi/com/sun/star/task/DocumentPasswordRequest.idl b/offapi/com/sun/star/task/DocumentPasswordRequest.idl index 3fe4a628edb8..dd92dae283ce 100644 --- a/offapi/com/sun/star/task/DocumentPasswordRequest.idl +++ b/offapi/com/sun/star/task/DocumentPasswordRequest.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module task { //============================================================================= -/** this request specifies the mode in wich the password should be asked +/** this request specifies the mode in which the password should be asked <P> It is supported by <type>InteractionHandler</type> service, and can diff --git a/offapi/com/sun/star/task/ErrorCodeRequest.idl b/offapi/com/sun/star/task/ErrorCodeRequest.idl index 13b0ddce4c35..392ccbf78dbe 100644 --- a/offapi/com/sun/star/task/ErrorCodeRequest.idl +++ b/offapi/com/sun/star/task/ErrorCodeRequest.idl @@ -35,7 +35,7 @@ /** represents a general error exception. It can be used to transport the error code information. - E.g. that can be usefull for interactions. + E.g. that can be useful for interactions. @since OpenOffice 1.1.2 */ diff --git a/offapi/com/sun/star/task/JobExecutor.idl b/offapi/com/sun/star/task/JobExecutor.idl index 178b1fc6ca99..d6349a01ae93 100644 --- a/offapi/com/sun/star/task/JobExecutor.idl +++ b/offapi/com/sun/star/task/JobExecutor.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module task { <p> Can start registered uno services on triggered events and handle there own configuration and there lifetime. Such events are simple strings - wich meaning doesn't matter for any real service implementation of this + which meaning doesn't matter for any real service implementation of this specification. But triggered events must be available inside the configuration and some <type>Job</type>s or <type>AsyncJob</type>s must be registered for that. </p> diff --git a/offapi/com/sun/star/task/MasterPasswordRequest.idl b/offapi/com/sun/star/task/MasterPasswordRequest.idl index 4af4a14b6e6d..0291c2b8e777 100644 --- a/offapi/com/sun/star/task/MasterPasswordRequest.idl +++ b/offapi/com/sun/star/task/MasterPasswordRequest.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module task { //============================================================================= -/** this request specifies the mode in wich the password should be asked +/** this request specifies the mode in which the password should be asked <P> It is supported by <type>InteractionHandler</type> service, and can diff --git a/offapi/com/sun/star/task/PDFExportException.idl b/offapi/com/sun/star/task/PDFExportException.idl index 6fd326db7609..959e114f2156 100644 --- a/offapi/com/sun/star/task/PDFExportException.idl +++ b/offapi/com/sun/star/task/PDFExportException.idl @@ -34,7 +34,7 @@ */ published exception PDFExportException: com::sun::star::uno::Exception { - /** contains a number of errors that occured during PDFExport + /** contains a number of errors that occurred during PDFExport */ sequence< long > ErrorCodes; }; diff --git a/offapi/com/sun/star/task/PasswordRequest.idl b/offapi/com/sun/star/task/PasswordRequest.idl index a4cb4752a916..8f8379f61b24 100644 --- a/offapi/com/sun/star/task/PasswordRequest.idl +++ b/offapi/com/sun/star/task/PasswordRequest.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module task { //============================================================================= -/** this request specifies the mode in wich the password should be asked +/** this request specifies the mode in which the password should be asked <P> It is supported by <type>InteractionHandler</type> service, and can diff --git a/offapi/com/sun/star/task/XJob.idl b/offapi/com/sun/star/task/XJob.idl index 5fe3a1d9b7be..91fe9abe4cb6 100644 --- a/offapi/com/sun/star/task/XJob.idl +++ b/offapi/com/sun/star/task/XJob.idl @@ -79,7 +79,7 @@ published interface XJob : com::sun::star::uno::XInterface @throws com::sun::star::uno::Exception to notify the excutor about faild operation; otherwise the return value - indicates a successfull finishing. + indicates a successful finishing. */ any execute( [in] sequence< com::sun::star::beans::NamedValue > Arguments ) diff --git a/offapi/com/sun/star/task/XJobExecutor.idl b/offapi/com/sun/star/task/XJobExecutor.idl index 3e0161d71674..585923e8fec9 100644 --- a/offapi/com/sun/star/task/XJobExecutor.idl +++ b/offapi/com/sun/star/task/XJobExecutor.idl @@ -53,7 +53,7 @@ published interface XJobExecutor : com::sun::star::uno::XInterface <p> Jobs are registered in configuration and will be started by executor - automaticly, if they are registered for triggered event. + automatically, if they are registered for triggered event. The meaning of given string <var>Event</var> mustn't be known. Because for the executor it's enough to use it for searching a registered job inside his own configuration. So no special events will be defined here. diff --git a/offapi/com/sun/star/task/XStatusIndicator.idl b/offapi/com/sun/star/task/XStatusIndicator.idl index 6c4928815e33..89b67e1418d2 100644 --- a/offapi/com/sun/star/task/XStatusIndicator.idl +++ b/offapi/com/sun/star/task/XStatusIndicator.idl @@ -100,7 +100,7 @@ published interface XStatusIndicator: com::sun::star::uno::XInterface <p> Wrong values must be ignored and stopped indicators must ignore this - call generaly. + call generally. </p> @param Value diff --git a/offapi/com/sun/star/task/XUrlContainer.idl b/offapi/com/sun/star/task/XUrlContainer.idl index dc8f2835a6d8..8ab37edc7807 100644 --- a/offapi/com/sun/star/task/XUrlContainer.idl +++ b/offapi/com/sun/star/task/XUrlContainer.idl @@ -72,7 +72,7 @@ published interface XUrlContainer : com::sun::star::uno::XInterface //------------------------------------------------------------------------- /** Get all URLs. - @param OnlyPersistent Only URLs taht are stored persistently shall + @param OnlyPersistent Only URLs that are stored persistently shall be returned. @returns List of URLs. */ diff --git a/offapi/com/sun/star/text/AccessiblePageView.idl b/offapi/com/sun/star/text/AccessiblePageView.idl index 114c7d3bbc83..a37643ae99d6 100644 --- a/offapi/com/sun/star/text/AccessiblePageView.idl +++ b/offapi/com/sun/star/text/AccessiblePageView.idl @@ -103,7 +103,7 @@ published service AccessiblePageView regardless whether they are bound to the page, a paragarph, a frame, or a character. The only exception are text frames that are bound as - character. They are childen of the paragraph they + character. They are children of the paragraph they are contained in. <li><type scope="::com::sun::star::text" >AccessibleTextGraphicObject</type>: @@ -113,7 +113,7 @@ published service AccessiblePageView regardless whether they are bound to a page, paragraph, a frame or a character. The only exception are text frames that are bound as character. They are - childen of the paragraph they are contained in. + children of the paragraph they are contained in. <li><type scope="::com::sun::star::text" >AccessibleTextEmbeddedObject</type>: A child of this kind is returned for every embedded @@ -121,7 +121,7 @@ published service AccessiblePageView These objects are children of the <type>AccessibleTextDocumentView</type> regardless whether they are bound to a page, a paragarph, a frame, - or a character. They are childen of the paragraph they + or a character. They are children of the paragraph they are contained in. <li><type scope="::com::sun::star::drawing" >AccessibleShape</type>: diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl index a1ff960a5794..ab864e9fb4de 100644 --- a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl +++ b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl @@ -100,7 +100,7 @@ published service AccessibleTextDocumentView <type>AccessibleTextDocumentView</type> regardless whether they are bound to a page, a paragarph, a frame, or a character. The only exception are text - frames that are bound as character. They are childen + frames that are bound as character. They are children of the paragraph they are contained in. <li><type scope="::com::sun::star::text" >AccessibleTextGraphicObject</type>: @@ -110,7 +110,7 @@ published service AccessibleTextDocumentView regardless whether they are bound to a page, paragraph, a frame or a character. The only exception are text frames that are bound as character. They are - childen of the paragraph they are contained in. + children of the paragraph they are contained in. <li><type scope="::com::sun::star::text" >AccessibleTextEmbeddedObject</type>: A child of this kind is returned for every embedded @@ -118,7 +118,7 @@ published service AccessibleTextDocumentView These objects are children of the <type>AccessibleTextDocumentView</type> regardless whether they are bound to a page, a paragarph, a frame, - or a character. They are childen of the paragraph they + or a character. They are children of the paragraph they are contained in. <li><type scope="::com::sun::star::drawing" >AccessibleShape</type>: A child of this kind (or a diff --git a/offapi/com/sun/star/text/LineNumberingProperties.idl b/offapi/com/sun/star/text/LineNumberingProperties.idl index 1e5da2c60d70..cf24328a9db5 100644 --- a/offapi/com/sun/star/text/LineNumberingProperties.idl +++ b/offapi/com/sun/star/text/LineNumberingProperties.idl @@ -97,7 +97,7 @@ published service LineNumberingProperties /** specifies if the line numbering should start from the beginning at each page. - <p>If set to <FALSE/> the line numbering will be continous.</p> + <p>If set to <FALSE/> the line numbering will be continuous.</p> @since OpenOffice 2.0 */ diff --git a/offapi/com/sun/star/text/NumberingRules.idl b/offapi/com/sun/star/text/NumberingRules.idl index d02c0578b9e6..854e1c510742 100644 --- a/offapi/com/sun/star/text/NumberingRules.idl +++ b/offapi/com/sun/star/text/NumberingRules.idl @@ -57,7 +57,7 @@ published service NumberingRules //------------------------------------------------------------------------- /** determins if the margins are absolute or relative - to the preceeding numbering level. + to the preceding numbering level. */ [optional, property] boolean IsAbsoluteMargins; //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/text/TextSortDescriptor2.idl b/offapi/com/sun/star/text/TextSortDescriptor2.idl index a0edfc372c70..6e5780b1c003 100644 --- a/offapi/com/sun/star/text/TextSortDescriptor2.idl +++ b/offapi/com/sun/star/text/TextSortDescriptor2.idl @@ -40,7 +40,7 @@ //============================================================================= -/** describes sort criterias for sorting paragraphs or table contents in +/** describes sort criteria for sorting paragraphs or table contents in a text document. @since OpenOffice 1.1.2 diff --git a/offapi/com/sun/star/text/XRelativeTextContentRemove.idl b/offapi/com/sun/star/text/XRelativeTextContentRemove.idl index a42caca2dda0..a5d462ef31b4 100644 --- a/offapi/com/sun/star/text/XRelativeTextContentRemove.idl +++ b/offapi/com/sun/star/text/XRelativeTextContentRemove.idl @@ -53,7 +53,7 @@ published interface XRelativeTextContentRemove: com::sun::star::uno::XInterface //------------------------------------------------------------------------- // DocMerge from xml: method com::sun::star::text::XRelativeTextContentRemove::removeTextContentBefore - /** removes the text content that preceeds the argument. + /** removes the text content that precedes the argument. <p> This is helpful to remove empty paragraphs before text tables. </p> */ diff --git a/offapi/com/sun/star/text/textfield/Author.idl b/offapi/com/sun/star/text/textfield/Author.idl index 99164c83780e..1885c733c7fe 100644 --- a/offapi/com/sun/star/text/textfield/Author.idl +++ b/offapi/com/sun/star/text/textfield/Author.idl @@ -53,7 +53,7 @@ published service Author */ [optional, property] short AuthorFormat; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [optional, property]string CurrentPresentation; /** determines whether the full name of the author is displayed rather than diff --git a/offapi/com/sun/star/text/textfield/ConditionalText.idl b/offapi/com/sun/star/text/textfield/ConditionalText.idl index 1653427cdbf8..40ea54d54401 100644 --- a/offapi/com/sun/star/text/textfield/ConditionalText.idl +++ b/offapi/com/sun/star/text/textfield/ConditionalText.idl @@ -53,7 +53,7 @@ published service ConditionalText */ [property] boolean IsConditionTrue; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [optional, property]string CurrentPresentation; }; diff --git a/offapi/com/sun/star/text/textfield/Database.idl b/offapi/com/sun/star/text/textfield/Database.idl index c50e64c486d3..d7f8f7671760 100644 --- a/offapi/com/sun/star/text/textfield/Database.idl +++ b/offapi/com/sun/star/text/textfield/Database.idl @@ -40,11 +40,11 @@ published service Database service com::sun::star::text::DependentTextField; /** contains the database content that was merged in the last database merge action. - Initially it contains the colum name in parenthesis (<>). + Initially it contains the column name in parenthesis (<>). */ [property]string Content; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** determins whether the number format is number display format is read diff --git a/offapi/com/sun/star/text/textfield/ExtendedUser.idl b/offapi/com/sun/star/text/textfield/ExtendedUser.idl index df84e987b4da..487ea0e1ff3d 100644 --- a/offapi/com/sun/star/text/textfield/ExtendedUser.idl +++ b/offapi/com/sun/star/text/textfield/ExtendedUser.idl @@ -42,7 +42,7 @@ published service ExtendedUser */ [property]string Content; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to <FALSE/> the content is regularly updated. diff --git a/offapi/com/sun/star/text/textfield/FileName.idl b/offapi/com/sun/star/text/textfield/FileName.idl index e0be9f6d6665..37e02eafc3d7 100644 --- a/offapi/com/sun/star/text/textfield/FileName.idl +++ b/offapi/com/sun/star/text/textfield/FileName.idl @@ -39,7 +39,7 @@ published service FileName { service com::sun::star::text::TextField; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** determins the format the file name is displayed as specified in diff --git a/offapi/com/sun/star/text/textfield/GetExpression.idl b/offapi/com/sun/star/text/textfield/GetExpression.idl index 3a66edf4f545..63f2556af868 100644 --- a/offapi/com/sun/star/text/textfield/GetExpression.idl +++ b/offapi/com/sun/star/text/textfield/GetExpression.idl @@ -41,7 +41,7 @@ published service GetExpression */ [property]string Content; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** this is the number format for this field. diff --git a/offapi/com/sun/star/text/textfield/GetReference.idl b/offapi/com/sun/star/text/textfield/GetReference.idl index c807de9632b2..007f5107febe 100644 --- a/offapi/com/sun/star/text/textfield/GetReference.idl +++ b/offapi/com/sun/star/text/textfield/GetReference.idl @@ -39,7 +39,7 @@ published service GetReference service com::sun::star::text::TextField; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property] string CurrentPresentation; /** contains the source of the reference. diff --git a/offapi/com/sun/star/text/textfield/SetExpression.idl b/offapi/com/sun/star/text/textfield/SetExpression.idl index 42013c0ff438..1402dfe1b9e0 100644 --- a/offapi/com/sun/star/text/textfield/SetExpression.idl +++ b/offapi/com/sun/star/text/textfield/SetExpression.idl @@ -43,7 +43,7 @@ published service SetExpression */ [property]string Content; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; diff --git a/offapi/com/sun/star/text/textfield/TableFormula.idl b/offapi/com/sun/star/text/textfield/TableFormula.idl index 0f96da7fdc65..41346d2f9163 100644 --- a/offapi/com/sun/star/text/textfield/TableFormula.idl +++ b/offapi/com/sun/star/text/textfield/TableFormula.idl @@ -43,7 +43,7 @@ published service TableFormula [property] string Formula; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property] string CurrentPresentation; diff --git a/offapi/com/sun/star/text/textfield/docinfo/ChangeAuthor.idl b/offapi/com/sun/star/text/textfield/docinfo/ChangeAuthor.idl index f380619485e6..ef4cf28800ef 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/ChangeAuthor.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/ChangeAuthor.idl @@ -44,7 +44,7 @@ published service ChangeAuthor */ [property]string Author; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/ChangeDateTime.idl b/offapi/com/sun/star/text/textfield/docinfo/ChangeDateTime.idl index 5eabf334882a..40d7a76d97da 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/ChangeDateTime.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/ChangeDateTime.idl @@ -40,7 +40,7 @@ published service ChangeDateTime { service com::sun::star::text::TextField; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/CreateAuthor.idl b/offapi/com/sun/star/text/textfield/docinfo/CreateAuthor.idl index b908ccfa2aee..43600b5472f0 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/CreateAuthor.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/CreateAuthor.idl @@ -44,7 +44,7 @@ published service CreateAuthor */ [property]string Author; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/CreateDateTime.idl b/offapi/com/sun/star/text/textfield/docinfo/CreateDateTime.idl index 4ba5516f4cef..d8cc6f4add61 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/CreateDateTime.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/CreateDateTime.idl @@ -40,7 +40,7 @@ published service CreateDateTime { service com::sun::star::text::TextField; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/Description.idl b/offapi/com/sun/star/text/textfield/docinfo/Description.idl index 575cf1532ed0..7d7c2a59eea9 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Description.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Description.idl @@ -47,7 +47,7 @@ published service Description <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/EditTime.idl b/offapi/com/sun/star/text/textfield/docinfo/EditTime.idl index 1fa5a0162fba..04dec30d46f9 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/EditTime.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/EditTime.idl @@ -40,7 +40,7 @@ published service EditTime { service com::sun::star::text::TextField; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/Info0.idl b/offapi/com/sun/star/text/textfield/docinfo/Info0.idl index 02f98a3b2f1b..1afb1634d406 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Info0.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Info0.idl @@ -47,7 +47,7 @@ published service Info0 <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/Info1.idl b/offapi/com/sun/star/text/textfield/docinfo/Info1.idl index 9516b93ebf55..5ce5e3a8e591 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Info1.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Info1.idl @@ -47,7 +47,7 @@ published service Info1 <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/Info2.idl b/offapi/com/sun/star/text/textfield/docinfo/Info2.idl index e7056e0f7628..0b83fa65bde2 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Info2.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Info2.idl @@ -47,7 +47,7 @@ published service Info2 <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/Info3.idl b/offapi/com/sun/star/text/textfield/docinfo/Info3.idl index 4d8164e3a78c..1c54d837e0de 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Info3.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Info3.idl @@ -47,7 +47,7 @@ published service Info3 <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/Keywords.idl b/offapi/com/sun/star/text/textfield/docinfo/Keywords.idl index bb0cdcf78593..3ce7f6b343c8 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Keywords.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Keywords.idl @@ -47,7 +47,7 @@ published service Keywords <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/PrintAuthor.idl b/offapi/com/sun/star/text/textfield/docinfo/PrintAuthor.idl index 6ca519c5a06d..525debeae943 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/PrintAuthor.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/PrintAuthor.idl @@ -44,7 +44,7 @@ published service PrintAuthor */ [property]string Author; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/PrintDateTime.idl b/offapi/com/sun/star/text/textfield/docinfo/PrintDateTime.idl index 6e7fb5eb91f1..8986affbce08 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/PrintDateTime.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/PrintDateTime.idl @@ -40,7 +40,7 @@ published service PrintDateTime { service com::sun::star::text::TextField; /** contains the current content of the text field. - <p> This property is escpecially usefull for import/export purposes. </p> + <p> This property is especially useful for import/export purposes. </p> */ [property]string CurrentPresentation; /** If this flag is set to false the author diff --git a/offapi/com/sun/star/text/textfield/docinfo/Revision.idl b/offapi/com/sun/star/text/textfield/docinfo/Revision.idl index 805d8c70daa6..62b7d2cc55cb 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Revision.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Revision.idl @@ -47,7 +47,7 @@ published service Revision <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/Subject.idl b/offapi/com/sun/star/text/textfield/docinfo/Subject.idl index eab15856e1e1..4ab7dfb8f280 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Subject.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Subject.idl @@ -47,7 +47,7 @@ published service Subject <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/text/textfield/docinfo/Title.idl b/offapi/com/sun/star/text/textfield/docinfo/Title.idl index e4dee7b47de8..8b046000c3eb 100644 --- a/offapi/com/sun/star/text/textfield/docinfo/Title.idl +++ b/offapi/com/sun/star/text/textfield/docinfo/Title.idl @@ -47,7 +47,7 @@ published service Title <p> This property is escpecially useful for import/export purposes. </p> */ [property]string CurrentPresentation; - /** If this flag is set to <FALSE/> the content updated everytime the document + /** If this flag is set to <FALSE/> the content updated every time the document information is changed. */ [property]boolean IsFixed; diff --git a/offapi/com/sun/star/ucb/CommandFailedException.idl b/offapi/com/sun/star/ucb/CommandFailedException.idl index 3beed81c105b..848b3f172c02 100644 --- a/offapi/com/sun/star/ucb/CommandFailedException.idl +++ b/offapi/com/sun/star/ucb/CommandFailedException.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module ucb { //============================================================================= -/** This exception is thrown if an exception situation occured during the +/** This exception is thrown if an exception situation occurred during the processing of a command and an <type scope="com::sun::star::task">XInteractionHandler</type> was able to handle the request for the error condition and the requesting code diff --git a/offapi/com/sun/star/ucb/Content.idl b/offapi/com/sun/star/ucb/Content.idl index 1e0171056fa3..2d422b184f3c 100644 --- a/offapi/com/sun/star/ucb/Content.idl +++ b/offapi/com/sun/star/ucb/Content.idl @@ -53,7 +53,7 @@ published service Content /** must be implemented to make it possible to resolve cyclic object references. - <p>Those references i.e. may occure if there are listeners + <p>Those references i.e. may occur if there are listeners registered at the content ( the content holds the listeners ) and the implementation of the listener interface holds a reference on the content. If the content shall be released, @@ -703,7 +703,7 @@ published service Content <td>UpdateOnOpen</td> <td>boolean</td> <td>indicates whether (sub)contents shall be automatically updated - everytime a (folder) content is opened.</br>This property may be + every time a (folder) content is opened.</br>This property may be used to control whether a folder content should read data only from local cache when it is opened, or whether it should connect to a server to obtain latest data.</td> diff --git a/offapi/com/sun/star/ucb/ContentAction.idl b/offapi/com/sun/star/ucb/ContentAction.idl index 0b21598e916b..efbd57138bea 100644 --- a/offapi/com/sun/star/ucb/ContentAction.idl +++ b/offapi/com/sun/star/ucb/ContentAction.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module ucb { </td></tr> <tr><td>D3</td><td>A folder content F has a set of children H(F) that is a set of content identifiers. For example, an "open" - command will usualy return a subset of the contents + command will usually return a subset of the contents denoted by H(F).</td></tr> </table> diff --git a/offapi/com/sun/star/ucb/FetchError.idl b/offapi/com/sun/star/ucb/FetchError.idl index 92cc2fad12fc..b2143cafa3a6 100644 --- a/offapi/com/sun/star/ucb/FetchError.idl +++ b/offapi/com/sun/star/ucb/FetchError.idl @@ -28,7 +28,7 @@ module com { module sun { module star { module ucb { //============================================================================= -/** These values are used to specify whether and which error has occured +/** These values are used to specify whether and which error has occurred while fetching data of some <type>ContentResultSet</type> rows. @see FetchResult diff --git a/offapi/com/sun/star/ucb/FetchResult.idl b/offapi/com/sun/star/ucb/FetchResult.idl index e78a205f0024..8b2f51491d8a 100644 --- a/offapi/com/sun/star/ucb/FetchResult.idl +++ b/offapi/com/sun/star/ucb/FetchResult.idl @@ -67,7 +67,7 @@ published struct FetchResult boolean Orientation; //------------------------------------------------------------------------- - /** indicates whether and which error has occured, while fetching. + /** indicates whether and which error has occurred, while fetching. <p>The value may contain zero or more constants of the <type>FetchError</type> constants group. diff --git a/offapi/com/sun/star/ucb/HierarchyDataSource.idl b/offapi/com/sun/star/ucb/HierarchyDataSource.idl index 4e920f8113fa..8f7001710a28 100644 --- a/offapi/com/sun/star/ucb/HierarchyDataSource.idl +++ b/offapi/com/sun/star/ucb/HierarchyDataSource.idl @@ -78,11 +78,11 @@ published service HierarchyDataSource must accept a property named <code>nodepath</code> of type <atom>string</atom>. This property must contain the absolute path to an element of the data. The view that is selected consists of the named - element and all its decendants. A path consists of segments that are + element and all its descendants. A path consists of segments that are separated by a single slash ('/'). There is neither a leading nor a trailing slash allowed. The <b>root</b> of the hierarchy data always has an empty path. Refer to <type>HierarchyDataReadAccess</type> for - more informtion on hierarchical names. + more information on hierarchical names. <p>Other arguments can be used to control the behavior of the view. These are different for different implementations. Whether and how they diff --git a/offapi/com/sun/star/ucb/InteractiveFileIOException.idl b/offapi/com/sun/star/ucb/InteractiveFileIOException.idl index 74d73c267581..701509ba3c9e 100644 --- a/offapi/com/sun/star/ucb/InteractiveFileIOException.idl +++ b/offapi/com/sun/star/ucb/InteractiveFileIOException.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module ucb { published exception InteractiveFileIOException: com::sun::star::ucb::InteractiveIOException { //------------------------------------------------------------------------- - /** The file url where the i/o error occured + /** The file url where the i/o error occurred */ string FileName; }; diff --git a/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl b/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl index 76b3f6f03eb9..ccc5bf47f3b2 100644 --- a/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl +++ b/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module ucb { //============================================================================= /** An error indicating that the resource is not locked. - <p>This error for instance can occure when trying to unlock a resource + <p>This error for instance can occur when trying to unlock a resource that is not locked. </p> diff --git a/offapi/com/sun/star/ucb/Lock.idl b/offapi/com/sun/star/ucb/Lock.idl index d9ada3d68357..10d1a65a88e3 100644 --- a/offapi/com/sun/star/ucb/Lock.idl +++ b/offapi/com/sun/star/ucb/Lock.idl @@ -60,7 +60,7 @@ published struct Lock : LockEntry <p>This element specifies the number of seconds between granting of the lock and the automatic removal of that lock. The value must not be greater than <code>2^32-1</code>. A value of <code>-1</code> - stands for an infinit lock, that will never be removed automatically. + stands for an infinite lock, that will never be removed automatically. */ hyper Timeout; diff --git a/offapi/com/sun/star/ucb/Rule.idl b/offapi/com/sun/star/ucb/Rule.idl index 03c46182d7eb..20588ea01213 100644 --- a/offapi/com/sun/star/ucb/Rule.idl +++ b/offapi/com/sun/star/ucb/Rule.idl @@ -61,7 +61,7 @@ published struct Rule </tr> <tr> <td>FORWARD</td> - <td>The email address of the recepient</td> + <td>The email address of the recipient</td> </tr> <tr> <td>All other actions</td> diff --git a/offapi/com/sun/star/ucb/SearchRecursion.idl b/offapi/com/sun/star/ucb/SearchRecursion.idl index 5d8273cfc2c3..301a3e9e014e 100644 --- a/offapi/com/sun/star/ucb/SearchRecursion.idl +++ b/offapi/com/sun/star/ucb/SearchRecursion.idl @@ -29,7 +29,7 @@ module com { module sun { module star { module ucb { //============================================================================= -/** the various modes of recursion when searching through a hierachical +/** the various modes of recursion when searching through a hierarchical object. @see SearchInfo diff --git a/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl b/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl index bffd3e28d136..6e535217a85d 100644 --- a/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl +++ b/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module ucb { <type>ContentProvider</type> for the <type>UniversalContentBroker</type> (UCB). - <p>It provides access to the hierachical structure of the documents that + <p>It provides access to the hierarchical structure of the documents that are active in a running OpenOffice.org process. As long as a document was not closed, the TDCP can access it. All documents that have been loaded - regardless of their persistent document format (sxw, doc, sxc, xls, ...) diff --git a/offapi/com/sun/star/ucb/UniversalContentBroker.idl b/offapi/com/sun/star/ucb/UniversalContentBroker.idl index f66bd350c016..35cda1cf7d57 100644 --- a/offapi/com/sun/star/ucb/UniversalContentBroker.idl +++ b/offapi/com/sun/star/ucb/UniversalContentBroker.idl @@ -74,7 +74,7 @@ published service UniversalContentBroker /** must be implemented to make it possible to resolve cyclic object references. - <p>Those references i.e. may occure if content provider implementations + <p>Those references i.e. may occur if content provider implementations hold references to the Broker. The Broker itself always holds its providers. If the Broker shall be released, <member scope="com::sun::star::lang">XComponent::dispose</member> diff --git a/offapi/com/sun/star/ucb/WebDAVContentProvider.idl b/offapi/com/sun/star/ucb/WebDAVContentProvider.idl index 517acfb97ec6..20ab473763ca 100644 --- a/offapi/com/sun/star/ucb/WebDAVContentProvider.idl +++ b/offapi/com/sun/star/ucb/WebDAVContentProvider.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module ucb { <p>It provides access to WebDAV and standard HTTP servers. The DCP communicates with the server using the WebDAV protocol which is an - extention to the HTTP protocol or using the plain HTTP protocol in case + extension to the HTTP protocol or using the plain HTTP protocol in case the server is not WebDAV enabled. @see com::sun::star::ucb::Content diff --git a/offapi/com/sun/star/ucb/WebDAVFolderContent.idl b/offapi/com/sun/star/ucb/WebDAVFolderContent.idl index 1d5f232753dc..7ffb2718508d 100644 --- a/offapi/com/sun/star/ucb/WebDAVFolderContent.idl +++ b/offapi/com/sun/star/ucb/WebDAVFolderContent.idl @@ -118,7 +118,7 @@ published service WebDAVFolderContent </li> <li> transfer ( only transfers from DCP Folders/DCP Documents to other - DCP folders. Source and target must recide on the same server. ) + DCP folders. Source and target must reside on the same server. ) </li> </ul> diff --git a/offapi/com/sun/star/ucb/XAnyCompare.idl b/offapi/com/sun/star/ucb/XAnyCompare.idl index 5c8fd88eea7b..385f705c5ddd 100644 --- a/offapi/com/sun/star/ucb/XAnyCompare.idl +++ b/offapi/com/sun/star/ucb/XAnyCompare.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module ucb { published interface XAnyCompare: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- - /** allows comparision of two <atom>any</atom>s. + /** allows comparison of two <atom>any</atom>s. @param Any1 is the first compare value diff --git a/offapi/com/sun/star/ucb/XCachedContentResultSetFactory.idl b/offapi/com/sun/star/ucb/XCachedContentResultSetFactory.idl index 015675a62efe..cb9a5ee55c59 100644 --- a/offapi/com/sun/star/ucb/XCachedContentResultSetFactory.idl +++ b/offapi/com/sun/star/ucb/XCachedContentResultSetFactory.idl @@ -55,7 +55,7 @@ published interface XCachedContentResultSetFactory: com::sun::star::uno::XInterf @param xMapping can be used for optimization of remote access via the interface <type>XContentAccess</type> of the <type>CachedContentResultSet</type>. - This paramter can be <NULL/>. + This parameter can be <NULL/>. @returns an instance of service <type>CachedContentResultSet</type>. diff --git a/offapi/com/sun/star/ucb/XCachedDynamicResultSetFactory.idl b/offapi/com/sun/star/ucb/XCachedDynamicResultSetFactory.idl index 8f5bf0921861..916b270d74bd 100644 --- a/offapi/com/sun/star/ucb/XCachedDynamicResultSetFactory.idl +++ b/offapi/com/sun/star/ucb/XCachedDynamicResultSetFactory.idl @@ -63,7 +63,7 @@ published interface XCachedDynamicResultSetFactory: com::sun::star::uno::XInterf @param ContentIdentifierMapping is not required, but can be set if it is necessary to change the - identity of the contents accessable via the interface + identity of the contents accessible via the interface <type>XContentAccess</type> of the <type>ContentResultSet</type> (e.g., if merging two sources of the same type). diff --git a/offapi/com/sun/star/ucb/XCommandProcessor.idl b/offapi/com/sun/star/ucb/XCommandProcessor.idl index 7afe4171a4dc..13a192628552 100644 --- a/offapi/com/sun/star/ucb/XCommandProcessor.idl +++ b/offapi/com/sun/star/ucb/XCommandProcessor.idl @@ -120,7 +120,7 @@ published interface XCommandProcessor : com::sun::star::uno::XInterface to indicate that two threads tried to use the same command identifier @throws Exception - if an error occured during the execution of the command. + if an error occurred during the execution of the command. */ any execute( [in] Command aCommand, [in] long CommandId, diff --git a/offapi/com/sun/star/ucb/XContentIdentifierMapping.idl b/offapi/com/sun/star/ucb/XContentIdentifierMapping.idl index a2d2b730a436..22f406e8e3b5 100644 --- a/offapi/com/sun/star/ucb/XContentIdentifierMapping.idl +++ b/offapi/com/sun/star/ucb/XContentIdentifierMapping.idl @@ -107,7 +107,7 @@ published interface XContentIdentifierMapping: com::sun::star::uno::XInterface be returned unmodified). @returns <TRUE/> if any of the columns contain data that (potentially) - needs mapping (though maybe no mapping occured for the concrete input + needs mapping (though maybe no mapping occurred for the concrete input data of this call). This information can be useful to decide whether, for another row, a call to this function is at all necessary. */ diff --git a/offapi/com/sun/star/ucb/XContentProviderManager.idl b/offapi/com/sun/star/ucb/XContentProviderManager.idl index 4c9e4864d583..ef8b7f6c7d8e 100644 --- a/offapi/com/sun/star/ucb/XContentProviderManager.idl +++ b/offapi/com/sun/star/ucb/XContentProviderManager.idl @@ -108,7 +108,7 @@ published interface XContentProviderManager: com::sun::star::uno::XInterface (<code><simple-authority>:</code>), or by arbitrary characters not including any of '/', '?', or '#', followed by a given string literal, followed by arbitrary characters that start with one of '/', '?', or - '#', if any. The comparision of string literals is done ignoring the + '#', if any. The comparison of string literals is done ignoring the case of ASCII letters. The <code><translation>:</code> regexps match the same URLs as their <code><simple>:</code> counterparts, but they also describe how a (local) URL is mapped to another (remote) diff --git a/offapi/com/sun/star/ucb/XRemoteContentProviderChangeListener.idl b/offapi/com/sun/star/ucb/XRemoteContentProviderChangeListener.idl index a98af7980f25..967115a3cc02 100644 --- a/offapi/com/sun/star/ucb/XRemoteContentProviderChangeListener.idl +++ b/offapi/com/sun/star/ucb/XRemoteContentProviderChangeListener.idl @@ -49,7 +49,7 @@ published interface XRemoteContentProviderChangeListener: occur. @param Event - describes the change that has occured. + describes the change that has occurred. */ void remoteContentProviderChange([in] RemoteContentProviderChangeEvent Event); diff --git a/offapi/com/sun/star/ui/UIElementType.idl b/offapi/com/sun/star/ui/UIElementType.idl index 9955b2f1f114..78a701a6021a 100644 --- a/offapi/com/sun/star/ui/UIElementType.idl +++ b/offapi/com/sun/star/ui/UIElementType.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module ui { constants UIElementType { //------------------------------------------------------------------------- - /** unkown user interface element type, which can be used as a wildcard + /** unknown user interface element type, which can be used as a wildcard to specify all types. */ const short UNKNOWN = 0; diff --git a/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl index 5278659b6824..ab88da219ef0 100644 --- a/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl +++ b/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl @@ -139,7 +139,7 @@ interface XAcceleratorConfiguration </p> <p> - Note: This method cant be used to remove entities from the configuration set. + Note: This method can't be used to remove entities from the configuration set. Empty parameters will result into an exception! Use the method removeKeyEvent() instead. </p> @@ -153,7 +153,7 @@ interface XAcceleratorConfiguration the new command for the specified key event. @throws ::com::sun::star::lang::IllegalArgumentException - if the key event isnt a valid one. Commands can be + if the key event isn't a valid one. Commands can be checked only, if they are empty. Because every URL schema can be used by commands in general, so its not possible to validate it. */ @@ -191,12 +191,12 @@ interface XAcceleratorConfiguration where the pecified command is registered for. @throws ::com::sun::star::lang::IllegalArgumentException - if the specified command is empty. It cant be checked, if a command + if the specified command is empty. It can't be checked, if a command is valid - because every URL schema can be used here. @throws ::com::sun::star::container::NoSuchElementException - if the specified command isnt empty but does not - occure inside this configuration set. + if the specified command isn't empty but does not + occur inside this configuration set. */ sequence< com::sun::star::awt::KeyEvent > getKeyEventsByCommand( [in] string sCommand ) raises(com::sun::star::lang::IllegalArgumentException , @@ -217,12 +217,12 @@ interface XAcceleratorConfiguration Instead to the method getKeyEventsForCommand() the returned list contains only one(!) key event bound to one(!) requested command. If more then one key event is bound to a command - a selection is done inside this method. - This internal selection cant be influenced from outside. + This internal selection can't be influenced from outside. </p> @attention Because its not defined, that any command (e.g. configured inside a menu) - must have an accelerator - we cant reject the call if at least one command - does not occure inside this configuration set ... + must have an accelerator - we can't reject the call if at least one command + does not occur inside this configuration set ... We handle it more gracefully - and return an empty item instead of throwing and exception. @@ -236,7 +236,7 @@ interface XAcceleratorConfiguration @throws ::com::sun::star::lang::IllegalArgumentException if at least one of the specified commands is empty. - It cant be checked, if a command is valid - + It can't be checked, if a command is valid - because every URL schema can be used here. */ sequence< any > getPreferredKeyEventsForCommandList( [in] sequence< string > lCommandList ) @@ -266,7 +266,7 @@ interface XAcceleratorConfiguration if the specified command is empty. @throws ::com::sun::star::container::NoSuchElementException - if the specified command isnt used inside this configuration set. + if the specified command isn't used inside this configuration set. */ void removeCommandFromAllKeyEvents( [in] string sCommand ) raises(com::sun::star::lang::IllegalArgumentException , diff --git a/offapi/com/sun/star/ui/dialogs/FilePicker.idl b/offapi/com/sun/star/ui/dialogs/FilePicker.idl index 77f0d76458d1..e999003a85eb 100644 --- a/offapi/com/sun/star/ui/dialogs/FilePicker.idl +++ b/offapi/com/sun/star/ui/dialogs/FilePicker.idl @@ -134,7 +134,7 @@ published service FilePicker //------------------------------------------------------------------------- /** For canceling a running dialog instance. - <p>This may be usefull for automatic test tools for instance.</p> + <p>This may be useful for automatic test tools for instance.</p> */ [optional] interface com::sun::star::util::XCancellable; diff --git a/offapi/com/sun/star/ui/dialogs/FolderPicker.idl b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl index b3d61e090680..926df4812317 100644 --- a/offapi/com/sun/star/ui/dialogs/FolderPicker.idl +++ b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl @@ -72,7 +72,7 @@ published service FolderPicker //------------------------------------------------------------------------- /** For canceling a running dialog instance. - <p>This may be usefull for automatic test tools for instance.</p> + <p>This may be useful for automatic test tools for instance.</p> */ [optional] interface com::sun::star::util::XCancellable; }; diff --git a/offapi/com/sun/star/util/Endianness.idl b/offapi/com/sun/star/util/Endianness.idl index e129ac964bc5..528f1fab979b 100644 --- a/offapi/com/sun/star/util/Endianness.idl +++ b/offapi/com/sun/star/util/Endianness.idl @@ -37,7 +37,7 @@ constants Endianness /** Little endian.<p> The values are stored in little endian format, i.e. the bytes - of the long word 0xAABBCCDD are layed out like 0xDD, 0xCC, + of the long word 0xAABBCCDD are laid out like 0xDD, 0xCC, 0xBB, 0xAA in memory. That is, data of arbitrary machine word lengths always starts with the least significant byte, and ends with the most significant one.<p> @@ -47,7 +47,7 @@ constants Endianness /** Big endian.<p> The values are stored in big endian format, i.e. the bytes of - the long word 0xAABBCCDD are layed out like 0xAA, 0xBB, 0xCC, + the long word 0xAABBCCDD are laid out like 0xAA, 0xBB, 0xCC, 0xDD in memory. That is, data of arbitrary machine word lengths always start with the most significant byte, and ends with the least significant one.<p> diff --git a/offapi/com/sun/star/util/PathSubstitution.idl b/offapi/com/sun/star/util/PathSubstitution.idl index ec68212a86cc..852faae58f47 100644 --- a/offapi/com/sun/star/util/PathSubstitution.idl +++ b/offapi/com/sun/star/util/PathSubstitution.idl @@ -99,7 +99,7 @@ published service PathSubstitution /** Interface to exchange path variables with defined paths and to resubstitute paths with path variables. <p> - To resubstitute path variables the caller must provide pathes as UCB-compliant URL's. + To resubstitute path variables the caller must provide paths as UCB-compliant URL's. </p> */ interface com::sun::star::util::XStringSubstitution; diff --git a/offapi/com/sun/star/util/XChangesNotifier.idl b/offapi/com/sun/star/util/XChangesNotifier.idl index 357ef2535fe2..e6cc92e2eb35 100644 --- a/offapi/com/sun/star/util/XChangesNotifier.idl +++ b/offapi/com/sun/star/util/XChangesNotifier.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module util { published interface XChangesNotifier: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- - /** adds the specified listener to receive events when changes occured. + /** adds the specified listener to receive events when changes occurred. */ [oneway] void addChangesListener( [in] com::sun::star::util::XChangesListener aListener ); diff --git a/offapi/com/sun/star/util/XCloseBroadcaster.idl b/offapi/com/sun/star/util/XCloseBroadcaster.idl index d8a9243f76a1..e5b6a543ef0b 100644 --- a/offapi/com/sun/star/util/XCloseBroadcaster.idl +++ b/offapi/com/sun/star/util/XCloseBroadcaster.idl @@ -56,7 +56,7 @@ published interface XCloseBroadcaster: com::sun::star::uno::XInterface /** adds the specified listener to receive or have a veto for "close" events @param Listener - the listener wich is interest on closing events + the listener which is interested on closing events */ [oneway] void addCloseListener( [in] XCloseListener Listener ); @@ -64,7 +64,7 @@ published interface XCloseBroadcaster: com::sun::star::uno::XInterface /** removes the specified listener @param Listener - the listener wich isn't interest on closing events anylonger + the listener which isn't interested on closing events anylonger */ [oneway] void removeCloseListener( [in] XCloseListener Listener ); }; diff --git a/offapi/com/sun/star/util/XCloseListener.idl b/offapi/com/sun/star/util/XCloseListener.idl index 85f89f8eae43..5d14ab223536 100644 --- a/offapi/com/sun/star/util/XCloseListener.idl +++ b/offapi/com/sun/star/util/XCloseListener.idl @@ -55,7 +55,7 @@ <p> If an event <method scope="com::sun::star::lang">XEventListener::disposing</method> - occured, nobody called <method>XCloseable::close</method> on listened object before. + occurred, nobody called <method>XCloseable::close</method> on listened object before. Then it's not allowed to break this request - it must be accepted! </p> @@ -109,16 +109,16 @@ published interface XCloseListener: com::sun::star::lang::XEventListener raises( CloseVetoException ); //------------------------------------------------------------------------- - /** is called when the listened object is closed realy + /** is called when the listened object is closed really <p> - Now the listened object is closed realy. Listener has to accept that; + Now the listened object is closed really. Listener has to accept that; should deregister himself and relaese all references to it. It's not allowed nor possible to disagree with that by throwing any exception. </p> <p> - If the event <member scope="com::sun::star::lang">XEventListener::disposing()</member> occured before + If the event <member scope="com::sun::star::lang">XEventListener::disposing()</member> occurred before it must be accepted too. There exist no chance for a disagreement any more. </p> diff --git a/offapi/com/sun/star/util/XCloseable.idl b/offapi/com/sun/star/util/XCloseable.idl index e0337a421d5a..eb14672df69b 100644 --- a/offapi/com/sun/star/util/XCloseable.idl +++ b/offapi/com/sun/star/util/XCloseable.idl @@ -46,9 +46,9 @@ module com { module sun { module star { module util { <li>closed (if it supports <member>XCloseable::close()</member>)</li> </ul> First version gives the object no chance to disagree with that (e.g. if a - process is still running and can't be cancelled realy). Last version + process is still running and can't be really cancelled). Last version provides this possibility, but can't guarantee real termination of called object. - It depends from the environment of an object, if one or both mechanism are neccessary. + It depends from the environment of an object, if one or both mechanism are necessary. </p> <p> @@ -70,8 +70,8 @@ published interface XCloseable: XCloseBroadcaster /** try to close the object <p> - Must definitly be called before <member scope="com::sun::star::lang">XComponent::dispose()</member>. - But nobody can guarentee real closing of called object - because it can disagree with that if any + Must definitely be called before <member scope="com::sun::star::lang">XComponent::dispose()</member>. + But nobody can guarantee real closing of called object - because it can disagree with that if any still running processes can't be cancelled yet. It's not allowed to block this call till internal operations will be finished here. They must be cancelled or call must return imediatly by throwing the <type>CloseVetoException</type>. Otherwise (if nothing exist to disagree) it must return normaly. @@ -106,11 +106,11 @@ published interface XCloseable: XCloseBroadcaster </p> @param DeliverOwnership - <TRUE/> delegates the ownership of ths closing object to any one which throw the CloseVetoException. + <TRUE/> delegates the ownership of this closing object to any one which throw the CloseVetoException. This new owner has to close the closing object again if his still running processes will be finished. <br> <FALSE/> let the ownership at the original one which called the close() method. He must react for possible - CloseVetoExceptions and try it again at a later time. This can be usefull for a generic UI handling. + CloseVetoExceptions and try it again at a later time. This can be useful for a generic UI handling. @throws CloseVetoException indicates that the closing object himself or any of his currently registered listener disagree with this close() request. diff --git a/offapi/com/sun/star/util/XSortable.idl b/offapi/com/sun/star/util/XSortable.idl index 52953f7f12a6..d91d478e9b6e 100644 --- a/offapi/com/sun/star/util/XSortable.idl +++ b/offapi/com/sun/star/util/XSortable.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module util { /** makes it possible to sort the contents of this object. - <p>The available properties describing the sort criterias are + <p>The available properties describing the sort criteria are defined in the sort descriptor implemented by the object that implements this interface.</p> diff --git a/offapi/com/sun/star/util/XStringSubstitution.idl b/offapi/com/sun/star/util/XStringSubstitution.idl index 6904de906c03..b14d504e01da 100644 --- a/offapi/com/sun/star/util/XStringSubstitution.idl +++ b/offapi/com/sun/star/util/XStringSubstitution.idl @@ -67,7 +67,7 @@ published interface XStringSubstitution : com::sun::star::uno::XInterface A string containing variables that should be substituted. @param bSubstRequired - Specifies if a successfull substitution is required. The + Specifies if a successful substitution is required. The function throws a <type scope="com::sun::star::container">NoSuchElementException</type> if it finds a variable that is unknown. In this case it is possible that the returned string would not be what the caller expected! @@ -106,7 +106,7 @@ published interface XStringSubstitution : com::sun::star::uno::XInterface <p> The method iterates through it's internal variable list and tries to - find the given variable. If the variable is unkown a + find the given variable. If the variable is unknown a <type scope="com::sun::star::container">NoSuchElementException</type> is thrown. </p> diff --git a/offapi/com/sun/star/util/XTextSearch.idl b/offapi/com/sun/star/util/XTextSearch.idl index eb83944b8900..a4960e60f227 100644 --- a/offapi/com/sun/star/util/XTextSearch.idl +++ b/offapi/com/sun/star/util/XTextSearch.idl @@ -113,7 +113,7 @@ published constants SearchFlags /** Flag for "Weighted Levenshtein Distance" search / Relaxed checking of limit, split weigh pools. - <p> If not specified (<b>strict</b>), the search is sucessful if + <p> If not specified (<b>strict</b>), the search is successful if the WLD is within a calculated limit where each insertion, deletion and replacement adds a weight to a common pool of weights. This is the mathematically correct WLD. </p> diff --git a/offapi/com/sun/star/util/XURLTransformer.idl b/offapi/com/sun/star/util/XURLTransformer.idl index 29505e1b542f..8ec0698327a4 100644 --- a/offapi/com/sun/star/util/XURLTransformer.idl +++ b/offapi/com/sun/star/util/XURLTransformer.idl @@ -99,7 +99,7 @@ published interface XURLTransformer: com::sun::star::uno::XInterface stores it into <member>URL::Complete</member> @param aURL - the URL which contains alls neccessary information in a structured form. The + the URL which contains alls necessary information in a structured form. The member <member>URL::Complete</member> contains the URL in string notation after the operation finished successfully. Otherwise the content of <member>URL::complete</member> is not defined. @@ -113,7 +113,7 @@ published interface XURLTransformer: com::sun::star::uno::XInterface /** returns a representation of the URL for UI purposes only <p> - Sometimes it can be usefull to show an URL on an user interface + Sometimes it can be useful to show an URL on an user interface in a more "human readable" form. Such URL can't be used on any API call, but make it easier for the user to understand it. </p> diff --git a/offapi/com/sun/star/xforms/XModel.idl b/offapi/com/sun/star/xforms/XModel.idl index 623d6b3ce09d..344a86a45b6e 100644 --- a/offapi/com/sun/star/xforms/XModel.idl +++ b/offapi/com/sun/star/xforms/XModel.idl @@ -103,7 +103,7 @@ interface XModel consistency criteria for the model data is not fulfilled. @throws com::sun::star::lang::WrappedTargetException - when another error occured during the submission. The + when another error occurred during the submission. The <member scope="com::sun::star::lang">WrappedTargetException::TargetException</member> describes this error then. */ @@ -127,7 +127,7 @@ interface XModel consistency criteria for the model data is not fulfilled. @throws com::sun::star::lang::WrappedTargetException - when another error occured during the submission. The + when another error occurred during the submission. The <member scope="com::sun::star::lang">WrappedTargetException::TargetException</member> describes this error then. */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl b/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl index a8ceca9185ff..0a13eae6387c 100644 --- a/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl +++ b/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module xml { module crypto { module sax /** * Interface of Mission Taker. * <p> - * This interface is used to controll a mission. + * This interface is used to control a mission. */ interface XMissionTaker : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl index d9592e82dd81..a1108225da63 100644 --- a/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl +++ b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl @@ -122,7 +122,7 @@ interface XSAXEventKeeper : com::sun::star::uno::XInterface /** * Prints information about all bufferred elements. * - * @return a tree-style string including all buffer informtion + * @return a tree-style string including all buffer information */ string printBufferNodeTree(); diff --git a/offapi/com/sun/star/xml/dom/events/EventType.idl b/offapi/com/sun/star/xml/dom/events/EventType.idl index 3a4a16e21eaf..eb7f980177e9 100644 --- a/offapi/com/sun/star/xml/dom/events/EventType.idl +++ b/offapi/com/sun/star/xml/dom/events/EventType.idl @@ -111,7 +111,7 @@ enum EventType DOMSubtreeModified, /* - This is a general event for notification of all changes to the document. It can be used instead of the more specific events listed below. It may be fired after a single modification to the document or, at the implementation's discretion, after multiple changes have occurred. The latter use should generally be used to accomodate multiple changes which occur either simultaneously or in rapid succession. The target of this event is the lowest common parent of the changes which have taken place. This event is dispatched after any other events caused by the mutation have fired. + This is a general event for notification of all changes to the document. It can be used instead of the more specific events listed below. It may be fired after a single modification to the document or, at the implementation's discretion, after multiple changes have occurred. The latter use should generally be used to accommodate multiple changes which occur either simultaneously or in rapid succession. The target of this event is the lowest common parent of the changes which have taken place. This event is dispatched after any other events caused by the mutation have fired. * Bubbles: Yes * Cancelable: No * Context Info: None diff --git a/offapi/com/sun/star/xml/input/XElement.idl b/offapi/com/sun/star/xml/input/XElement.idl index dd9dcb5e8276..55fa3ffb2ed8 100644 --- a/offapi/com/sun/star/xml/input/XElement.idl +++ b/offapi/com/sun/star/xml/input/XElement.idl @@ -63,7 +63,7 @@ interface XElement : com::sun::star::uno::XInterface */ XAttributes getAttributes(); - /** Called upon each occuring child element. + /** Called upon each occurring child element. @param uid namespace uid of element diff --git a/offapi/com/sun/star/xml/sax/XExtendedDocumentHandler.idl b/offapi/com/sun/star/xml/sax/XExtendedDocumentHandler.idl index 2f65d73dd9e3..6413452efcb2 100644 --- a/offapi/com/sun/star/xml/sax/XExtendedDocumentHandler.idl +++ b/offapi/com/sun/star/xml/sax/XExtendedDocumentHandler.idl @@ -49,7 +49,7 @@ published interface XExtendedDocumentHandler: com::sun::star::xml::sax::XDocumen /** receives notification about the start of a CDATA section in the XML-source. - <p>Any string comming in via character handler may include chars, + <p>Any string coming in via character handler may include chars, that would otherwise be interpreted as markup. </p> */ void startCDATA() diff --git a/offapi/com/sun/star/xml/sax/XFastAttributeList.idl b/offapi/com/sun/star/xml/sax/XFastAttributeList.idl index 5ddccfbf52af..b456adc3e87d 100644 --- a/offapi/com/sun/star/xml/sax/XFastAttributeList.idl +++ b/offapi/com/sun/star/xml/sax/XFastAttributeList.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module xml { module sax { /** a container for the attributes of an xml element. - <br>Attributes are seperated into known attributes and unknown attributes. + <br>Attributes are separated into known attributes and unknown attributes. <p>Known attributes have a local name that is known to the <type>XFastTokenHandler</token> registered at the <type>XFastParser</type> which created the sax event containing this attributes. If an attribute also has a namespace, that must be registered diff --git a/offapi/com/sun/star/xml/sax/XFastParser.idl b/offapi/com/sun/star/xml/sax/XFastParser.idl index d379762b9fb5..569ae50426b0 100644 --- a/offapi/com/sun/star/xml/sax/XFastParser.idl +++ b/offapi/com/sun/star/xml/sax/XFastParser.idl @@ -98,7 +98,7 @@ module com { module sun { module star { module xml { module sax { <p>Setting a <type>XFastTokenHandler</type> with <member>setTokenHandler</member> is optional, but without a <type>XFastTokenHandler</type> you will only - get unknown sax events. This can be usefull if you are only interested + get unknown sax events. This can be useful if you are only interested in the namespace handling and/or the context feature. <p>For each element the parser sends a create child element event to the diff --git a/offapi/com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl b/offapi/com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl index 6fee71e53e58..7f26ec1a89b9 100644 --- a/offapi/com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl +++ b/offapi/com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl @@ -46,7 +46,7 @@ interface XXMLElementWrapper; * data structure, this interface provides a common method set which * each lauguage have to implement. * <p> - * In another word, this interface wraps language dependant methods, + * In another word, this interface wraps language dependent methods, * then other component can manipulate DOM data through UNO methods. */ interface XXMLDocumentWrapper : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/xml/wrapper/XXMLElementWrapper.idl b/offapi/com/sun/star/xml/wrapper/XXMLElementWrapper.idl index 81f7d9cf4be5..58ee720d6649 100644 --- a/offapi/com/sun/star/xml/wrapper/XXMLElementWrapper.idl +++ b/offapi/com/sun/star/xml/wrapper/XXMLElementWrapper.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module xml { module wrapper { * Interface of XML Element Wrapper. * <p> * This interface is used to wrap a element information, which - * make it enable to tranfer the element information between + * make it enable to transfer the element information between * different languages, such as C++/Java. */ interface XXMLElementWrapper : com::sun::star::uno::XInterface diff --git a/officecfg/registry/data/org/openoffice/Office/Labels.xcu b/officecfg/registry/data/org/openoffice/Office/Labels.xcu index 6e3b86bdbef4..343a8310b427 100644 --- a/officecfg/registry/data/org/openoffice/Office/Labels.xcu +++ b/officecfg/registry/data/org/openoffice/Office/Labels.xcu @@ -3908,7 +3908,7 @@ <prop oor:name="Name"> - <value>L7651 Mini Adress</value> + <value>L7651 Mini Address</value> </prop> <prop oor:name="Measure"> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index cb7c1ec92e53..75affea6cf66 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -5153,7 +5153,7 @@ <value>9</value> </prop> </node> - <node oor:name=".uno:Substract" oor:op="replace"> + <node oor:name=".uno:Subtract" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">~Subtract</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index 8000a105dbd6..fb55dff7ef49 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -1023,7 +1023,7 @@ <prop oor:name="PaintBuffer" oor:type="xs:boolean"> <info> <author>AW</author> - <desc>Specifies if the Application Repaint shall use a buffer for Pre-Rendering. If on, screen flicker is greatly reduced and remote display is fast, but a buffer (graphics memory) is needed. If off, screen flicker will occurr and remote display is slow, but no buffer is needed. This is the global switch for the whole office.</desc> + <desc>Specifies if the Application Repaint shall use a buffer for Pre-Rendering. If on, screen flicker is greatly reduced and remote display is fast, but a buffer (graphics memory) is needed. If off, screen flicker will occur and remote display is slow, but no buffer is needed. This is the global switch for the whole office.</desc> <label>Application Repaint is allowed to use Pre-Rendering Buffer.</label> </info> <value>true</value> @@ -4829,7 +4829,7 @@ <desc>Contains settings for HTML import.</desc> </info> <prop oor:name="NumbersEnglishUS" oor:type="xs:boolean"> - <!-- UIHints: Tools Options Load/Save - HTML Compability [Section] Import --> + <!-- UIHints: Tools Options Load/Save - HTML Compatibility [Section] Import --> <info> <author>ER</author> <desc>Specifies if numbers should be parsed according to the en-US locale instead of the user's locale.</desc> @@ -6164,7 +6164,7 @@ previews, etc...). EdgeBlending will visualize a one pixel border on the preview object with interpolated colors (default: TopLeft White, BottomRight Black) so that a nice 3D effect is shown. It is a percent value describing how strong the effect shall be. The value 0% switches it off, while the value 100% will - cover the preview object's border completely with one pixel. Values in-between vill be alpha-blended with + cover the preview object's border completely with one pixel. Values in-between will be alpha-blended with the original preview image. </desc> <label>Defines the EdgeBlending for Previews in Percent.</label> diff --git a/officecfg/registry/schema/org/openoffice/Office/Embedding.xcs b/officecfg/registry/schema/org/openoffice/Office/Embedding.xcs index 90abd98ad211..12a96d7c1fc6 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Embedding.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Embedding.xcs @@ -130,7 +130,7 @@ <group oor:name="MimeTypeClassIDRelations" oor:extensible="true"> <info> <author>MAV</author> - <desc>Contains convertion table from MimeType to ClassID. MimeType is used as a name for entry.</desc> + <desc>Contains conversion table from MimeType to ClassID. MimeType is used as a name for entry.</desc> </info> </group> <group oor:name="UserFactories" oor:extensible="true"> diff --git a/officecfg/registry/schema/org/openoffice/Office/ExtensionDependencies.xcs b/officecfg/registry/schema/org/openoffice/Office/ExtensionDependencies.xcs index d0539b4bf12e..db06317d73fb 100644 --- a/officecfg/registry/schema/org/openoffice/Office/ExtensionDependencies.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/ExtensionDependencies.xcs @@ -22,12 +22,12 @@ <oor:component-schema oor:name="ExtensionDependencies" oor:package="org.openoffice.Office" xml:lang="en-US" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <info> <author>JSC</author> - <desc>Contains a list of extensions with additonal dependencies to overrule missing dependencies in extensions + <desc>Contains a list of extensions with additional dependencies to overrule missing dependencies in extensions or to control specific extensions in general.</desc> </info> <templates> <group oor:name="Extension"> - <info><desc>Describes the additonal meta data for an extension whereas the node name have to be the extension identifier.</desc></info> + <info><desc>Describes the additional meta data for an extension whereas the node name have to be the extension identifier.</desc></info> <prop oor:name="Versions" oor:type="oor:string-list" oor:localized="false"> <info><desc>Specifies a list of extension versions for which the extra dependecies should be active.</desc></info> </prop> @@ -35,7 +35,7 @@ <info><desc>Specifies a list of platforms for which the extra dependencies mechanism is active.</desc></info> </prop> <prop oor:name="Dependencies" oor:type="xs:string" oor:localized="false"> - <info><desc>Specifies a list of additonal dependencies.</desc></info> + <info><desc>Specifies a list of additional dependencies.</desc></info> </prop> </group> </templates> diff --git a/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs b/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs index 5102f427c7ae..34e964c7062d 100755 --- a/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs @@ -55,7 +55,7 @@ </group> <group oor:name="ExtensionUpdateData"> <info> - <desc>Contains inforamtion about availabe or ignored updates for extensions."</desc> + <desc>Contains information about available or ignored updates for extensions."</desc> </info> <set oor:name="AvailableUpdates" oor:node-type="UpdateInfo"> <info> diff --git a/officecfg/registry/schema/org/openoffice/Office/Histories.xcs b/officecfg/registry/schema/org/openoffice/Office/Histories.xcs index 86e18f44071d..517f13f68726 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Histories.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Histories.xcs @@ -62,7 +62,7 @@ </info> <prop oor:name="HistoryItemRef" oor:type="xs:string"> <info> - <desc>Reference to an item of the orginal history list.</desc> + <desc>Reference to an item of the original history list.</desc> </info> </prop> </group> diff --git a/officecfg/registry/schema/org/openoffice/Office/OOoImprovement/Settings.xcs b/officecfg/registry/schema/org/openoffice/Office/OOoImprovement/Settings.xcs index b9ed2e878e5a..f88340cedaa9 100644 --- a/officecfg/registry/schema/org/openoffice/Office/OOoImprovement/Settings.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/OOoImprovement/Settings.xcs @@ -58,7 +58,7 @@ </prop> <prop oor:name="HelpUrl" oor:type="xs:string"> <info> - <desc>the url where additional infomation can be found.</desc> + <desc>the url where additional information can be found.</desc> </info> <value>http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Office/OptionsDialog.xcs b/officecfg/registry/schema/org/openoffice/Office/OptionsDialog.xcs index a7bf6c4bffca..f8e3cff901ef 100644 --- a/officecfg/registry/schema/org/openoffice/Office/OptionsDialog.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/OptionsDialog.xcs @@ -81,7 +81,7 @@ </info> <set oor:name="Nodes" oor:node-type="OrderedNode"> <info> - <desc>A set member countains a Node (see type Node) which has been + <desc>A set member contains a Node (see type Node) which has been assigned to this Module. Also entities which do not own the Module may add members to the set. Please look at the specification for applying restrictions @@ -275,7 +275,7 @@ <set oor:name="Modules" oor:node-type="Module"> <info> - <desc>List of availabe application contexts</desc> + <desc>List of available application contexts</desc> </info> </set> <set oor:name="Nodes" oor:node-type="Node"> diff --git a/officecfg/registry/schema/org/openoffice/Office/Paths.xcs b/officecfg/registry/schema/org/openoffice/Office/Paths.xcs index 059949b6a28c..8a38a1aa90cf 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Paths.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Paths.xcs @@ -26,7 +26,7 @@ <info> <author>AS</author> - <desc>Configuration of layered pathes replacing the old path configuration org.openoffice.Office.Common/Path.</desc> + <desc>Configuration of layered paths replacing the old path configuration org.openoffice.Office.Common/Path.</desc> </info> <templates> @@ -48,7 +48,7 @@ </info> <prop oor:name="IsSinglePath" oor:type="xs:boolean"> <info> - <desc>Mark a NamedPath as SinglePath (false=MultiPath). Only the property WritePath is used for such single pathes then.</desc> + <desc>Mark a NamedPath as SinglePath (false=MultiPath). Only the property WritePath is used for such single paths then.</desc> </info> <value>false</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Office/PresenterScreen.xcs b/officecfg/registry/schema/org/openoffice/Office/PresenterScreen.xcs index 3450fa4f4e01..5edbe76f38f9 100644 --- a/officecfg/registry/schema/org/openoffice/Office/PresenterScreen.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/PresenterScreen.xcs @@ -176,7 +176,7 @@ <group oor:name="ToolBarEntry"> <info><desc>Describes a ToolBar entry.</desc></info> <prop oor:name="Name" oor:type="xs:string"> - <info><desc>Name of the entry. May be used to have mode dependant entries.</desc></info> + <info><desc>Name of the entry. May be used to have mode dependent entries.</desc></info> </prop> <prop oor:name="Type" oor:type="xs:string"> <info><desc>Type of the entry. Examples are "Label" and "Button".</desc></info> diff --git a/officecfg/registry/schema/org/openoffice/Office/TabBrowse.xcs b/officecfg/registry/schema/org/openoffice/Office/TabBrowse.xcs index 7ba357e7bbc3..90b3663c5a7a 100644 --- a/officecfg/registry/schema/org/openoffice/Office/TabBrowse.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/TabBrowse.xcs @@ -47,7 +47,7 @@ <info> <desc>Because there can exists more then one implementations of such TaskCreatorService, the actual one must be specified with it's UNO implementation name. - Otherwise it's not guaranteed, which implementation is realy used at runtime.</desc> + Otherwise it's not guaranteed, which implementation is really used at runtime.</desc> </info> </prop> </group> diff --git a/officecfg/registry/schema/org/openoffice/Office/UI.xcs b/officecfg/registry/schema/org/openoffice/Office/UI.xcs index 4a7fe95dd757..8fa27ec733a6 100644 --- a/officecfg/registry/schema/org/openoffice/Office/UI.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/UI.xcs @@ -655,7 +655,7 @@ </info> <prop oor:name="FillAsynchronously" oor:type="xs:boolean"> <info> - <desc>Specifies whether the dialog should fill its view asynchronously. Asnychronous filling allows the user to cancel blocking operations, which may be usefull for instance for mounted, but dead NFS devices.</desc> + <desc>Specifies whether the dialog should fill its view asynchronously. Asnychronous filling allows the user to cancel blocking operations, which may be useful for instance for mounted, but dead NFS devices.</desc> </info> <value>false</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs index 4002980665fa..f249c58271b4 100644 --- a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs @@ -147,7 +147,7 @@ </prop> <prop oor:name="TitleBarIsOptional" oor:type="xs:boolean"> <info> - <desc>When true then the title bar can be ommitted when the panel is the only panel in a deck.</desc> + <desc>When true, the title bar can be omitted when the panel is the only panel in a deck.</desc> </info> <value>false</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/WindowState.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/WindowState.xcs index 60c59da3eba9..7e343a45413c 100644 --- a/officecfg/registry/schema/org/openoffice/Office/UI/WindowState.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/UI/WindowState.xcs @@ -125,7 +125,7 @@ </prop> <prop oor:name="SoftClose" oor:type="xs:boolean"> <info> - <desc>Specifies that a user interface element shouldn't be closed forever. This is usefull for context sensitive ui elements which must be visible whenever their context is active. This property is only used by toolbars or floating window user interface elements.</desc> + <desc>Specifies that a user interface element shouldn't be closed forever. This is useful for context sensitive ui elements which must be visible whenever their context is active. This property is only used by toolbars or floating window user interface elements.</desc> </info> <value>false</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Office/WebWizard.xcs b/officecfg/registry/schema/org/openoffice/Office/WebWizard.xcs index f5834e8aaf3a..7961e8ed8e9c 100644 --- a/officecfg/registry/schema/org/openoffice/Office/WebWizard.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/WebWizard.xcs @@ -478,7 +478,7 @@ </prop> <prop oor:name="Filter" oor:type="xs:string"> <info> - <desc>Semicolon seperated list of file types this filter will show</desc> + <desc>Semicolon separated list of file types this filter will show</desc> </info> </prop> </group> diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs index cffbe06ddbbc..1610f1898df8 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs @@ -4898,14 +4898,14 @@ <info> <desc>Contains settings for the media type used for the label.</desc> </info> - <prop oor:name="Continous" oor:type="xs:boolean"> + <prop oor:name="Continuous" oor:type="xs:boolean"> <!-- OldPath: Writer/Dialog/Labels/Labels --> <!-- OldLocation: Soffice.cfg --> <!-- UIHints: File New Labels Labels --> <info> <author>OS</author> <desc>Specifies if continuous paper or individual sheets are used.</desc> - <label>Continous / Sheet</label> + <label>Continuous / Sheet</label> </info> <value>false</value> </prop> @@ -5085,14 +5085,14 @@ <info> <desc>Contains settings for the media type used.</desc> </info> - <prop oor:name="Continous" oor:type="xs:boolean"> + <prop oor:name="Continuous" oor:type="xs:boolean"> <!-- OldPath: Writer/Dialog/BusinessCards/Medium --> <!-- OldLocation: Soffice.cfg --> <!-- UIHints: File New BusinessCards Medium --> <info> <author>OS</author> <desc>Specifies if continuous paper or individual sheets are used.</desc> - <label>Continous / Sheet</label> + <label>Continuous / Sheet</label> </info> <value>false</value> </prop> diff --git a/officecfg/registry/schema/org/openoffice/Setup.xcs b/officecfg/registry/schema/org/openoffice/Setup.xcs index d99873a27891..d07451aae7d6 100644 --- a/officecfg/registry/schema/org/openoffice/Setup.xcs +++ b/officecfg/registry/schema/org/openoffice/Setup.xcs @@ -92,7 +92,7 @@ </prop> <prop oor:name="Priority" oor:type="xs:int"> <info> - <desc>Contains the priority value to specify which migration should be prefered. Higher values are prefered.</desc> + <desc>Contains the priority value to specify which migration should be preferred. Higher values are preferred.</desc> </info> <value/> </prop> diff --git a/officecfg/registry/schema/org/openoffice/TypeDetection/Types.xcs b/officecfg/registry/schema/org/openoffice/TypeDetection/Types.xcs index 15f51460362f..c7c93b214871 100644 --- a/officecfg/registry/schema/org/openoffice/TypeDetection/Types.xcs +++ b/officecfg/registry/schema/org/openoffice/TypeDetection/Types.xcs @@ -55,7 +55,7 @@ <value>false</value> </prop> <prop oor:name="PreferredFilter" oor:type="xs:string"> - <info><desc>An optimization! Points directly to the preferred filter for this type. No search across all filters is neccessary ...</desc></info> + <info><desc>An optimization! Points directly to the preferred filter for this type. No search across all filters is necessary ...</desc></info> <value/> </prop> <prop oor:name="UIName" oor:localized="true" oor:type="xs:string"> diff --git a/oovbaapi/ooo/vba/XCollectionBase.idl b/oovbaapi/ooo/vba/XCollectionBase.idl index 7ca75bb70a8c..629cafa40ef8 100644 --- a/oovbaapi/ooo/vba/XCollectionBase.idl +++ b/oovbaapi/ooo/vba/XCollectionBase.idl @@ -39,7 +39,7 @@ module ooo { module vba { The various VBA collection objects expect a specific number of arguments in the "Item" method, therefore this method is not part of this base interface - but has to be specified seperately in every derived interface. + but has to be specified separately in every derived interface. */ interface XCollectionBase { diff --git a/oovbaapi/ooo/vba/msforms/XControl.idl b/oovbaapi/ooo/vba/msforms/XControl.idl index a0665b94512e..5fc0b77186cb 100644 --- a/oovbaapi/ooo/vba/msforms/XControl.idl +++ b/oovbaapi/ooo/vba/msforms/XControl.idl @@ -53,7 +53,7 @@ interface XControl //in Dialogs Mso uses pixels [attribute] double Height; [attribute] double Width; - //Postion + //Position [attribute] double Left; [attribute] double Top; [attribute] string Name; diff --git a/oox/inc/oox/core/binarycodec.hxx b/oox/inc/oox/core/binarycodec.hxx index 25a1f22e6771..e8622ff53a90 100644 --- a/oox/inc/oox/core/binarycodec.hxx +++ b/oox/inc/oox/core/binarycodec.hxx @@ -141,7 +141,7 @@ public: this size. @return - True = decoding was successful (no error occured). + True = decoding was successful (no error occurred). */ bool decode( sal_uInt8* pnDestData, @@ -161,7 +161,7 @@ public: Number of bytes to be skipped (cipher "seeks" forward). @return - True = skip was successful (no error occured). + True = skip was successful (no error occurred). */ bool skip( sal_Int32 nBytes ); @@ -274,7 +274,7 @@ public: this size. @return - True = decoding was successful (no error occured). + True = decoding was successful (no error occurred). */ bool decode( sal_uInt8* pnDestData, @@ -294,7 +294,7 @@ public: Number of bytes to be skipped (cipher "seeks" forward). @return - True = skip was successful (no error occured). + True = skip was successful (no error occurred). */ bool skip( sal_Int32 nBytes ); diff --git a/oox/inc/oox/drawingml/drawingmltypes.hxx b/oox/inc/oox/drawingml/drawingmltypes.hxx index 5be4f24ef1ae..48600fb3b899 100644 --- a/oox/inc/oox/drawingml/drawingmltypes.hxx +++ b/oox/inc/oox/drawingml/drawingmltypes.hxx @@ -163,7 +163,7 @@ inline sal_Int32 convertEmuToHmm( sal_Int64 nValue ) // ============================================================================ -/** A structure for a point with 64-bit interger components. */ +/** A structure for a point with 64-bit integer components. */ struct EmuPoint { sal_Int64 X; @@ -175,7 +175,7 @@ struct EmuPoint // ============================================================================ -/** A structure for a size with 64-bit interger components. */ +/** A structure for a size with 64-bit integer components. */ struct EmuSize { sal_Int64 Width; @@ -187,7 +187,7 @@ struct EmuSize // ============================================================================ -/** A structure for a rectangle with 64-bit interger components. */ +/** A structure for a rectangle with 64-bit integer components. */ struct EmuRectangle : public EmuPoint, public EmuSize { inline explicit EmuRectangle() {} diff --git a/oox/inc/oox/helper/graphichelper.hxx b/oox/inc/oox/helper/graphichelper.hxx index 0ab80b00545e..4f36fc916b4c 100644 --- a/oox/inc/oox/helper/graphichelper.hxx +++ b/oox/inc/oox/helper/graphichelper.hxx @@ -55,7 +55,7 @@ namespace oox { persistent graphic objects internally and store them in an internal container to prevent their early destruction. This makes it possible to use the returned URL of the graphic object in any way (e.g. insert it into a - property map) without needing to store it immediatly at an object that + property map) without needing to store it immediately at an object that resolves the graphic object from the passed URL and thus prevents it from being destroyed. */ diff --git a/oox/inc/oox/helper/propertyset.hxx b/oox/inc/oox/helper/propertyset.hxx index d0b3ba3cf8c1..88d2b9ba0508 100644 --- a/oox/inc/oox/helper/propertyset.hxx +++ b/oox/inc/oox/helper/propertyset.hxx @@ -95,7 +95,7 @@ public: { return getAnyProperty( nPropId ) >>= orValue; } /** Gets the specified boolean property from the property set. - @return true = property contains true; false = property contains false or error occured. */ + @return true = property contains true; false = property contains false or error occurred. */ inline bool getBoolProperty( sal_Int32 nPropId ) const { bool bValue = false; return getProperty( bValue, nPropId ) && bValue; } diff --git a/oox/inc/oox/ole/axbinaryreader.hxx b/oox/inc/oox/ole/axbinaryreader.hxx index 2b974b15a25d..8f27fb765218 100644 --- a/oox/inc/oox/ole/axbinaryreader.hxx +++ b/oox/inc/oox/ole/axbinaryreader.hxx @@ -39,7 +39,7 @@ namespace ole { seeking operations (tell, seekTo, align) are performed relative to the position of the wrapped stream at construction time of this wrapper. It is possible to construct this wrapper with an unseekable input stream without - loosing any functionality. + losing any functionality. */ class AxAlignedInputStream : public BinaryInputStream { diff --git a/oox/inc/oox/vml/vmlinputstream.hxx b/oox/inc/oox/vml/vmlinputstream.hxx index 2b78af9aea57..0c9680dbcfe4 100644 --- a/oox/inc/oox/vml/vmlinputstream.hxx +++ b/oox/inc/oox/vml/vmlinputstream.hxx @@ -51,7 +51,7 @@ typedef ::cppu::WeakImplHelper1< ::com::sun::star::io::XInputStream > InputStrea not containing the characters '<' and '>' are stripped from the input stream. - 2) Multiple occurences of the same attribute in an element but the last + 2) Multiple occurrences of the same attribute in an element but the last are removed. 3) Line breaks represented by a single <br> element (without matching diff --git a/oox/inc/oox/xls/biffinputstream.hxx b/oox/inc/oox/xls/biffinputstream.hxx index 45d30d37b05a..97f389ce5434 100644 --- a/oox/inc/oox/xls/biffinputstream.hxx +++ b/oox/inc/oox/xls/biffinputstream.hxx @@ -152,7 +152,7 @@ public: /** Constructs the BIFF record stream using the passed binary stream. @param rInStream - The base input stream. Must be seekable. Will be seeked to its + The base input stream. Must be seekable. Will be sought to its start position. @param bContLookup Automatic CONTINUE lookup on/off. @@ -348,7 +348,7 @@ public: // ------------------------------------------------------------------------ private: - /** Initializes all members after base stream has been seeked to new record. */ + /** Initializes all members after base stream has been sought to new record. */ void setupRecord(); /** Restarts the current record from the beginning. */ void restartRecord( bool bInvalidateRecSize ); diff --git a/oox/inc/oox/xls/defnamesbuffer.hxx b/oox/inc/oox/xls/defnamesbuffer.hxx index 8fdea570498d..fba94cc51ccf 100644 --- a/oox/inc/oox/xls/defnamesbuffer.hxx +++ b/oox/inc/oox/xls/defnamesbuffer.hxx @@ -187,7 +187,7 @@ public: /** Creates all defined names in the document. */ void finalizeImport(); - /** Returns a defined name by zero-based index (order of appearence). */ + /** Returns a defined name by zero-based index (order of appearance). */ DefinedNameRef getByIndex( sal_Int32 nIndex ) const; /** Returns a defined name by token index (index in XDefinedNames container). */ DefinedNameRef getByTokenIndex( sal_Int32 nIndex ) const; diff --git a/oox/source/core/filterdetect.cxx b/oox/source/core/filterdetect.cxx index 0a2ce1d0283f..0e64d4751cd2 100644 --- a/oox/source/core/filterdetect.cxx +++ b/oox/source/core/filterdetect.cxx @@ -627,7 +627,7 @@ OUString SAL_CALL FilterDetect::detect( Sequence< PropertyValue >& rMediaDescSeq OUString aFilterName; MediaDescriptor aMediaDesc( rMediaDescSeq ); - /* Check that the user has not choosen to abort detection, e.g. by hitting + /* Check that the user has not chosen to abort detection, e.g. by hitting 'Cancel' in the password input dialog. This may happen because this filter detection is used by different filters. */ bool bAborted = aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_ABORTED(), false ); diff --git a/oox/source/export/preset-definitions-to-shape-types.pl b/oox/source/export/preset-definitions-to-shape-types.pl index becac00ab7e8..686606bdc578 100644 --- a/oox/source/export/preset-definitions-to-shape-types.pl +++ b/oox/source/export/preset-definitions-to-shape-types.pl @@ -284,7 +284,7 @@ $path_h = 1; 201 => 'hostControl', # should not be used 202 => 'textBox' ); -# An error occured, we have to ignore this shape +# An error occurred, we have to ignore this shape sub error( $ ) { my ( $msg ) = @_; diff --git a/oox/source/vml/vmlinputstream.cxx b/oox/source/vml/vmlinputstream.cxx index 2749741579c9..9f5086c1dcb6 100644 --- a/oox/source/vml/vmlinputstream.cxx +++ b/oox/source/vml/vmlinputstream.cxx @@ -89,7 +89,7 @@ inline void lclAppendToBuffer( OStringBuffer& rBuffer, const sal_Char* pcBeg, co void lclProcessAttribs( OStringBuffer& rBuffer, const sal_Char* pcBeg, const sal_Char* pcEnd ) { /* Map attribute names to char-pointer of all attributes. This map is used - to find multiple occurences of attributes with the same name. The + to find multiple occurrences of attributes with the same name. The mapped pointers are used as map key in the next map below. */ typedef ::std::map< OString, const sal_Char* > AttributeNameMap; AttributeNameMap aAttributeNames; @@ -140,7 +140,7 @@ void lclProcessAttribs( OStringBuffer& rBuffer, const sal_Char* pcBeg, const sal } } - // if no error has occured, build the resulting attribute list + // if no error has occurred, build the resulting attribute list if( bOk ) for( AttributeDataMap::iterator aIt = aAttributes.begin(), aEnd = aAttributes.end(); aIt != aEnd; ++aIt ) rBuffer.append( ' ' ).append( aIt->second ); diff --git a/oox/source/xls/formulaparser.cxx b/oox/source/xls/formulaparser.cxx index f38344e20069..d8a5ab7c59ae 100644 --- a/oox/source/xls/formulaparser.cxx +++ b/oox/source/xls/formulaparser.cxx @@ -367,7 +367,7 @@ const ApiToken* FormulaFinalizer::findParameters( ParameterPosVector& rParams, void FormulaFinalizer::appendEmptyParameter( const FunctionInfo& rFuncInfo, size_t nParam ) { - // remeber old size of the token array + // remember old size of the token array size_t nTokenArraySize = maTokens.size(); switch( rFuncInfo.mnBiff12FuncId ) diff --git a/oox/source/xls/sheetdatabuffer.cxx b/oox/source/xls/sheetdatabuffer.cxx index c15334a39506..1b697349c06b 100644 --- a/oox/source/xls/sheetdatabuffer.cxx +++ b/oox/source/xls/sheetdatabuffer.cxx @@ -257,7 +257,7 @@ CellBlock* CellBlockBuffer::getCellBlock( const CellAddress& rCellAddr ) { /* The colspan vector aIt points to is sorted by columns, as well as the cell block map. In the folloing, this vector and the - list of cell blocks can be iterated simultanously. */ + list of cell blocks can be iterated simultaneously. */ CellBlockMap::iterator aMIt = maCellBlocks.begin(); const ValueRangeVector& rColRanges = aIt->second; for( ValueRangeVector::const_iterator aVIt = rColRanges.begin(), aVEnd = rColRanges.end(); aVIt != aVEnd; ++aVIt, ++aMIt ) diff --git a/package/qa/ofopxmlstorages/Test01.java b/package/qa/ofopxmlstorages/Test01.java index 7f66075e23a4..4e7dc690f30a 100644 --- a/package/qa/ofopxmlstorages/Test01.java +++ b/package/qa/ofopxmlstorages/Test01.java @@ -146,7 +146,7 @@ public class Test01 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/ofopxmlstorages/Test04.java b/package/qa/ofopxmlstorages/Test04.java index b36843863dac..baafbf134c54 100644 --- a/package/qa/ofopxmlstorages/Test04.java +++ b/package/qa/ofopxmlstorages/Test04.java @@ -170,7 +170,7 @@ public class Test04 implements StorageTest { if ( !m_aTestHelper.copyElementTo( xTempStorage, "SubStorage1", xTempFileStorage ) ) return false; - // if storage is not commited before disposing all the changes will be lost + // if storage is not committed before disposing all the changes will be lost if ( !m_aTestHelper.commitStorage( xTempSubStorage2 ) ) return false; diff --git a/package/qa/ofopxmlstorages/Test07.java b/package/qa/ofopxmlstorages/Test07.java index 7a98cf6667c2..a80faa6337dc 100644 --- a/package/qa/ofopxmlstorages/Test07.java +++ b/package/qa/ofopxmlstorages/Test07.java @@ -134,7 +134,7 @@ public class Test07 implements StorageTest { // check cloning at current state // ============================== - // the new storage still was not commited so the clone must be empty + // the new storage still was not committed so the clone must be empty XStorage xClonedSubStorage = m_aTestHelper.cloneSubStorage( m_xMSF, m_xStorageFactory, xTempStorage, "SubStorage1" ); if ( xClonedSubStorage == null ) @@ -158,7 +158,7 @@ public class Test07 implements StorageTest { if ( xClonedNameAccess.hasElements() ) { - m_aTestHelper.Error( "The new substorage still was not commited so it must be empty!" ); + m_aTestHelper.Error( "The new substorage still was not committed so it must be empty!" ); return false; } @@ -224,7 +224,7 @@ public class Test07 implements StorageTest { if ( xCloneOfRootNA.hasElements() ) { - m_aTestHelper.Error( "The root storage still was not commited so it's clone must be empty!" ); + m_aTestHelper.Error( "The root storage still was not committed so it's clone must be empty!" ); return false; } diff --git a/package/qa/ofopxmlstorages/TestHelper.java b/package/qa/ofopxmlstorages/TestHelper.java index a62f4d5a7697..2d7c2c1dfcd0 100644 --- a/package/qa/ofopxmlstorages/TestHelper.java +++ b/package/qa/ofopxmlstorages/TestHelper.java @@ -1041,7 +1041,7 @@ public class TestHelper { public XStorage cloneStorage( XMultiServiceFactory xMSF, XSingleServiceFactory xFactory, XStorage xStorage ) { - // create a copy of a last commited version of specified storage + // create a copy of a last committed version of specified storage XStorage xResult = null; try { @@ -1060,7 +1060,7 @@ public class TestHelper { public XStorage cloneSubStorage( XMultiServiceFactory xMSF, XSingleServiceFactory xFactory, XStorage xStorage, String sName ) { - // create a copy of a last commited version of specified substorage + // create a copy of a last committed version of specified substorage XStorage xResult = null; try { diff --git a/package/qa/storages/RegressionTest_i29169.java b/package/qa/storages/RegressionTest_i29169.java index ad33d46ecce8..2a2564927e01 100644 --- a/package/qa/storages/RegressionTest_i29169.java +++ b/package/qa/storages/RegressionTest_i29169.java @@ -127,7 +127,7 @@ public class RegressionTest_i29169 implements StorageTest { // commit the storages, and check the renaming in all stages // ================================================ - // rename the storage before it is commited + // rename the storage before it is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage1", "SubSubStorage2" ) ) return false; @@ -139,7 +139,7 @@ public class RegressionTest_i29169 implements StorageTest { if ( !m_aTestHelper.commitStorage( xTempSubSubStorage ) ) return false; - // rename the storage after it is commited + // rename the storage after it is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage2", "SubSubStorage3" ) ) return false; @@ -151,11 +151,11 @@ public class RegressionTest_i29169 implements StorageTest { if ( !m_aTestHelper.commitStorage( xTempSubStorage ) ) return false; - // rename the storage after it`s parent is commited + // rename the storage after it's parent is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage3", "SubSubStorage4" ) ) return false; - // rename the stream after it`s parent is commited + // rename the stream after it's parent is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubStream3", "SubStream4" ) ) return false; @@ -167,11 +167,11 @@ public class RegressionTest_i29169 implements StorageTest { if ( !m_aTestHelper.commitStorage( xTempStorage ) ) return false; - // rename the storage after the package is commited + // rename the storage after the package is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage4", "SubSubStorage5" ) ) return false; - // rename the stream after it`s parent is commited + // rename the stream after it's parent is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubStream4", "SubStream5" ) ) return false; @@ -252,7 +252,7 @@ public class RegressionTest_i29169 implements StorageTest { // rename the reopened storages and streams // ================================================ - // rename the storage before it is commited + // rename the storage before it is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage5", "SubSubStorage6" ) ) return false; @@ -264,7 +264,7 @@ public class RegressionTest_i29169 implements StorageTest { if ( !m_aTestHelper.commitStorage( xTempSubSubStorage ) ) return false; - // rename the storage after it is commited + // rename the storage after it is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage6", "SubSubStorage7" ) ) return false; @@ -276,11 +276,11 @@ public class RegressionTest_i29169 implements StorageTest { if ( !m_aTestHelper.commitStorage( xTempSubStorage ) ) return false; - // rename the storage after it`s parent is commited + // rename the storage after it's parent is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage7", "SubSubStorage8" ) ) return false; - // rename the stream after it`s parent is commited + // rename the stream after it's parent is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubStream7", "SubStream8" ) ) return false; @@ -292,11 +292,11 @@ public class RegressionTest_i29169 implements StorageTest { if ( !m_aTestHelper.commitStorage( xTempStorage ) ) return false; - // rename the storage after the package is commited + // rename the storage after the package is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubSubStorage8", "SubSubStorage9" ) ) return false; - // rename the stream after it`s parent is commited + // rename the stream after it`s parent is committed if ( !m_aTestHelper.renameElement( xTempSubStorage, "SubStream8", "SubStream9" ) ) return false; diff --git a/package/qa/storages/Test01.java b/package/qa/storages/Test01.java index f231dafe2ff7..6ec994d90d22 100644 --- a/package/qa/storages/Test01.java +++ b/package/qa/storages/Test01.java @@ -131,7 +131,7 @@ public class Test01 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/storages/Test04.java b/package/qa/storages/Test04.java index 1ed1efd16c44..06ca476d1316 100644 --- a/package/qa/storages/Test04.java +++ b/package/qa/storages/Test04.java @@ -155,7 +155,7 @@ public class Test04 implements StorageTest { if ( !m_aTestHelper.copyElementTo( xTempStorage, "SubStorage1", xTempFileStorage ) ) return false; - // if storage is not commited before disposing all the changes will be lost + // if storage is not committed before disposing all the changes will be lost if ( !m_aTestHelper.commitStorage( xTempSubStorage2 ) ) return false; diff --git a/package/qa/storages/Test07.java b/package/qa/storages/Test07.java index 5076fcf56b0c..6a5796b40cfd 100644 --- a/package/qa/storages/Test07.java +++ b/package/qa/storages/Test07.java @@ -109,7 +109,7 @@ public class Test07 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/storages/Test08.java b/package/qa/storages/Test08.java index 7d8f5bcc4968..857c75fa1a9d 100644 --- a/package/qa/storages/Test08.java +++ b/package/qa/storages/Test08.java @@ -162,7 +162,7 @@ public class Test08 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/storages/Test09.java b/package/qa/storages/Test09.java index 45f8a7d9aca2..03e62400bf40 100644 --- a/package/qa/storages/Test09.java +++ b/package/qa/storages/Test09.java @@ -99,7 +99,7 @@ public class Test09 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/storages/Test10.java b/package/qa/storages/Test10.java index 827ef428b8e3..c459c143714a 100644 --- a/package/qa/storages/Test10.java +++ b/package/qa/storages/Test10.java @@ -116,7 +116,7 @@ public class Test10 implements StorageTest { // check cloning at current state // ============================== - // the new storage still was not commited so the clone must be empty + // the new storage still was not committed so the clone must be empty XStorage xClonedSubStorage = m_aTestHelper.cloneSubStorage( m_xStorageFactory, xTempStorage, "SubStorage1" ); if ( xClonedSubStorage == null ) @@ -137,7 +137,7 @@ public class Test10 implements StorageTest { if ( xClonedNameAccess.hasElements() ) { - m_aTestHelper.Error( "The new substorage still was not commited so it must be empty!" ); + m_aTestHelper.Error( "The new substorage still was not committed so it must be empty!" ); return false; } @@ -202,7 +202,7 @@ public class Test10 implements StorageTest { if ( xCloneOfRootNA.hasElements() ) { - m_aTestHelper.Error( "The root storage still was not commited so it's clone must be empty!" ); + m_aTestHelper.Error( "The root storage still was not committed so it's clone must be empty!" ); return false; } diff --git a/package/qa/storages/Test11.java b/package/qa/storages/Test11.java index 0780770f0fb9..2a09845d36c6 100644 --- a/package/qa/storages/Test11.java +++ b/package/qa/storages/Test11.java @@ -118,7 +118,7 @@ public class Test11 implements StorageTest { // check cloning at current state // ============================== - // the new storage still was not commited so the clone must be empty + // the new storage still was not committed so the clone must be empty XStorage xClonedSubStorage = m_aTestHelper.cloneSubStorage( m_xStorageFactory, xTempStorage, "SubStorage1" ); if ( xClonedSubStorage == null ) @@ -139,7 +139,7 @@ public class Test11 implements StorageTest { if ( xClonedNameAccess.hasElements() ) { - m_aTestHelper.Error( "The new substorage still was not commited so it must be empty!" ); + m_aTestHelper.Error( "The new substorage still was not committed so it must be empty!" ); return false; } diff --git a/package/qa/storages/Test13.java b/package/qa/storages/Test13.java index 218a25ecac63..07ecb5e7b5f3 100644 --- a/package/qa/storages/Test13.java +++ b/package/qa/storages/Test13.java @@ -215,7 +215,7 @@ public class Test13 implements StorageTest { if ( !m_aTestHelper.checkStreamH( xResultStorage, aBigSubStream1Path, "MediaType3", true, pBigBytes ) ) return false; - // the following stream was not commited last time, so the last change must be lost + // the following stream was not committed last time, so the last change must be lost if ( !m_aTestHelper.checkStreamH( xResultStorage, aBigSubStream2Path, "MediaType2", false, pBigBytes ) ) return false; diff --git a/package/qa/storages/Test14.java b/package/qa/storages/Test14.java index a2f727db6a8b..4d0d45917850 100644 --- a/package/qa/storages/Test14.java +++ b/package/qa/storages/Test14.java @@ -188,7 +188,7 @@ public class Test14 implements StorageTest { if ( !m_aTestHelper.checkEncrStreamH( xResultStorage, aSubStream1Path, "MediaType3", pBytes2, sPass1 ) ) return false; - // the following stream was not commited last time, so the last change must be lost + // the following stream was not committed last time, so the last change must be lost if ( !m_aTestHelper.checkEncrStreamH( xResultStorage, aSubStream2Path, "MediaType2", pBytes2, sPass2 ) ) return false; diff --git a/package/qa/storages/Test16.java b/package/qa/storages/Test16.java index ee5b560b2bbc..fcdff3935245 100644 --- a/package/qa/storages/Test16.java +++ b/package/qa/storages/Test16.java @@ -119,7 +119,7 @@ public class Test16 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/storages/Test18.java b/package/qa/storages/Test18.java index 3ee766b4488e..1a9a067801b9 100644 --- a/package/qa/storages/Test18.java +++ b/package/qa/storages/Test18.java @@ -126,7 +126,7 @@ public class Test18 implements StorageTest { } // copy xTempStorage to xTempFileStorage - // xTempFileStorage will be automatically commited + // xTempFileStorage will be automatically committed if ( !m_aTestHelper.copyStorage( xTempStorage, xTempFileStorage ) ) return false; diff --git a/package/qa/storages/TestHelper.java b/package/qa/storages/TestHelper.java index b53522bc904a..c3cd5648fa93 100644 --- a/package/qa/storages/TestHelper.java +++ b/package/qa/storages/TestHelper.java @@ -1599,7 +1599,7 @@ public class TestHelper { public XStorage cloneStorage( XSingleServiceFactory xFactory, XStorage xStorage ) { - // create a copy of a last commited version of specified storage + // create a copy of a last committed version of specified storage XStorage xResult = null; try { @@ -1619,7 +1619,7 @@ public class TestHelper { public XStorage cloneSubStorage( XSingleServiceFactory xFactory, XStorage xStorage, String sName ) { - // create a copy of a last commited version of specified substorage + // create a copy of a last committed version of specified substorage XStorage xResult = null; try { diff --git a/package/source/xstor/ohierarchyholder.cxx b/package/source/xstor/ohierarchyholder.cxx index 70163505865a..5a0e1306bc3f 100644 --- a/package/source/xstor/ohierarchyholder.cxx +++ b/package/source/xstor/ohierarchyholder.cxx @@ -120,8 +120,8 @@ uno::Reference< embed::XExtendedStorageStream > OHierarchyElement_Impl::GetStrea uno::Reference< embed::XTransactedObject > xTransact( xResult, uno::UNO_QUERY ); if ( xTransact.is() ) { - // the existance of the transacted object means that the stream is opened for writing also - // so the whole chain must be commited + // the existence of the transacted object means that the stream is opened for writing also + // so the whole chain must be committed uno::Reference< embed::XTransactionBroadcaster > xTrBroadcast( xTransact, uno::UNO_QUERY_THROW ); xTrBroadcast->addTransactionListener( static_cast< embed::XTransactionListener* >( this ) ); } diff --git a/package/source/xstor/owriteablestream.cxx b/package/source/xstor/owriteablestream.cxx index 0787d9c9e5bd..e968def72ff1 100644 --- a/package/source/xstor/owriteablestream.cxx +++ b/package/source/xstor/owriteablestream.cxx @@ -1031,7 +1031,7 @@ void OWriteStream_Impl::Revert() } else { - // the original stream was aready parsed + // the original stream was already parsed if ( !m_bOrigRelInfoBroken ) m_nRelInfoStatus = RELINFO_READ; else diff --git a/package/source/xstor/xstorage.cxx b/package/source/xstor/xstorage.cxx index 93ceab27db8e..6fd43fbc70a4 100644 --- a/package/source/xstor/xstorage.cxx +++ b/package/source/xstor/xstorage.cxx @@ -71,7 +71,7 @@ struct StorInternalData_Impl ::cppu::OMultiTypeInterfaceContainerHelper m_aListenersContainer; // list of listeners ::cppu::OTypeCollection* m_pTypeCollection; sal_Bool m_bIsRoot; - sal_Int32 m_nStorageType; // the mode in wich the storage is used + sal_Int32 m_nStorageType; // the mode in which the storage is used sal_Bool m_bReadOnlyWrap; OChildDispListener_Impl* m_pSubElDispListener; @@ -1062,7 +1062,7 @@ void OStorage_Impl::Commit() // in case of a new empty storage it is possible that the contents are still not read // ( the storage of course has no contents, but the initialization is postponed till the first use, - // thus if a new storage was created and commited immediatelly it must be initialized here ) + // thus if a new storage was created and commited immediately it must be initialized here ) ReadContents(); // if storage is commited it should have a valid Package representation @@ -1180,7 +1180,7 @@ void OStorage_Impl::Commit() { // the element must be just copied to the new temporary package folder // the connection with the original package should not be lost just because - // the element is still refered by the folder in the original hierarchy + // the element is still referred by the folder in the original hierarchy uno::Any aPackageElement = m_xPackageFolder->getByName( (*pElementIter)->m_aOriginalName ); xNewPackageFolder->insertByName( (*pElementIter)->m_aName, aPackageElement ); } @@ -1545,7 +1545,7 @@ SotElement_Impl* OStorage_Impl::InsertElement( ::rtl::OUString aName, sal_Bool b OSL_ENSURE( (*pElementIter)->m_bIsRemoved, "Try to insert an element instead of existing one!\n" ); if ( (*pElementIter)->m_bIsRemoved ) { - OSL_ENSURE( !(*pElementIter)->m_bIsInserted, "Inserted elements must be deleted immediatelly!\n" ); + OSL_ENSURE( !(*pElementIter)->m_bIsInserted, "Inserted elements must be deleted immediately!\n" ); pDeletedElm = *pElementIter; break; } diff --git a/package/source/xstor/xstorage.hxx b/package/source/xstor/xstorage.hxx index a2a06172d27a..8f039e6fedb0 100644 --- a/package/source/xstor/xstorage.hxx +++ b/package/source/xstor/xstorage.hxx @@ -170,7 +170,7 @@ struct OStorage_Impl SwitchablePersistenceStream* m_pSwitchStream; - sal_Int32 m_nStorageType; // the mode in wich the storage is used + sal_Int32 m_nStorageType; // the mode in which the storage is used // the _rels substorage that is handled in a special way in embed::StorageFormats::OFOPXML SotElement_Impl* m_pRelStorElement; diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx index e43475c9abd7..b945d54dd3b1 100644 --- a/package/source/zippackage/ZipPackage.cxx +++ b/package/source/zippackage/ZipPackage.cxx @@ -1390,7 +1390,7 @@ uno::Reference< XActiveDataStreamer > ZipPackage::openOriginalForOutput() void SAL_CALL ZipPackage::commitChanges() throw( WrappedTargetException, RuntimeException ) { - // lock the component for the time of commiting + // lock the component for the time of committing ::osl::MutexGuard aGuard( m_aMutexHolder->GetMutex() ); if ( m_eMode == e_IMode_XInputStream ) diff --git a/package/source/zippackage/zipfileaccess.cxx b/package/source/zippackage/zipfileaccess.cxx index 4b2fa0157937..6df00f182bc4 100644 --- a/package/source/zippackage/zipfileaccess.cxx +++ b/package/source/zippackage/zipfileaccess.cxx @@ -65,7 +65,7 @@ OZipFileAccess::~OZipFileAccess() if ( !m_bDisposed ) { try { - m_refCount++; // dispose will use refcounting so the further distruction must be avoided + m_refCount++; // dispose will use refcounting so the further destruction must be avoided dispose(); } catch( uno::Exception& ) {} diff --git a/padmin/source/padialog.src b/padmin/source/padialog.src index 327853646543..a4d564aec1df 100644 --- a/padmin/source/padialog.src +++ b/padmin/source/padialog.src @@ -353,7 +353,7 @@ String RID_ERR_NOPRINTER String RID_PA_TXT_TESTPAGE_PRINTED { - Text [ en-US ] = "The test page was printed succesfully. Please check the result."; + Text [ en-US ] = "The test page was printed successfully. Please check the result."; }; String RID_ERR_NOWRITE diff --git a/postprocess/signing/signing.pl b/postprocess/signing/signing.pl index 4b289bc5a0e4..070f21dab5b4 100644 --- a/postprocess/signing/signing.pl +++ b/postprocess/signing/signing.pl @@ -236,7 +236,7 @@ sub execute #11.07.2007 10:02 my $result = ""; print "$commandline\n" if ($debug); - open(PIPE, "$commandline 2>&1 |") || die "Error: Cant open pipe!\n"; + open(PIPE, "$commandline 2>&1 |") || die "Error: Can't open pipe!\n"; while ( $result = <PIPE> ) { print LOG "$result" if ($opt_log); # logging if ( $result =~ /SignTool Error\:/ ) { diff --git a/pyuno/source/module/pyuno_module.cxx b/pyuno/source/module/pyuno_module.cxx index 55b4db53c7af..e029a147fc02 100644 --- a/pyuno/source/module/pyuno_module.cxx +++ b/pyuno/source/module/pyuno_module.cxx @@ -292,7 +292,7 @@ static PyObject *createUnoStructHelper(PyObject *, PyObject* args ) OStringBuffer buf; buf.append( "UNO struct " ); buf.append( OUStringToOString( typeName, RTL_TEXTENCODING_ASCII_US ) ); - buf.append( " is unkown" ); + buf.append( " is unknown" ); PyErr_SetString (PyExc_RuntimeError, buf.getStr()); } } |