summaryrefslogtreecommitdiff
path: root/plugins/LotusNotify
diff options
context:
space:
mode:
authorSzymon Tokarz <wsx22@o2.pl>2013-05-21 16:41:00 +0000
committerSzymon Tokarz <wsx22@o2.pl>2013-05-21 16:41:00 +0000
commit6b6e144b140f8f3ce2fa6b1de7e6a13d92030caf (patch)
tree79dd830b197c5c5638b29df6b726f413a22034c9 /plugins/LotusNotify
parentca5fa0ee002d6c18d03817053362bad866a78e90 (diff)
LotusNotify plugin by MaKaRSoFT adapted by me.
plugin from: http://maciej.wycik.pl/p_lotusnotify.php base sources from: https://code.google.com/p/makarplugins/ - Miranda NG version - unicode support - many fixes and code reworks git-svn-id: http://svn.miranda-ng.org/main/trunk@4780 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/LotusNotify')
-rw-r--r--plugins/LotusNotify/LotusNotify_10.vcxproj227
-rw-r--r--plugins/LotusNotify/LotusNotify_10.vcxproj.filters151
-rw-r--r--plugins/LotusNotify/docs/Langpack_polish.txt99
-rw-r--r--plugins/LotusNotify/docs/install.txt80
-rw-r--r--plugins/LotusNotify/res/LotusNotify.rc184
-rw-r--r--plugins/LotusNotify/res/icon1.icobin0 -> 1406 bytes
-rw-r--r--plugins/LotusNotify/res/icon2.icobin0 -> 318 bytes
-rw-r--r--plugins/LotusNotify/src/LotusNotify.cpp1740
-rw-r--r--plugins/LotusNotify/src/LotusNotify.h32
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/bsafeerr.h931
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/extmgr.h492
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/global.h1242
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/globerr.h443
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/misc.h413
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/names.h177
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nif.h520
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nls.h536
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nsfdata.h841
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nsfdb.h924
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nsferr.h2663
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nsfnote.h551
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nsfsearc.h181
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/nsfstr.h257
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/osenv.h76
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/osmisc.h109
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/pool.h88
-rw-r--r--plugins/LotusNotify/src/cnotesapi/include/stdnames.h6175
-rw-r--r--plugins/LotusNotify/src/debug.cpp57
-rw-r--r--plugins/LotusNotify/src/debug.h8
-rw-r--r--plugins/LotusNotify/src/lotusnotes.cpp84
-rw-r--r--plugins/LotusNotify/src/lotusnotes.h176
-rw-r--r--plugins/LotusNotify/src/resource.h52
-rw-r--r--plugins/LotusNotify/src/stdafx.cpp1
-rw-r--r--plugins/LotusNotify/src/stdafx.h48
-rw-r--r--plugins/LotusNotify/src/version.h17
35 files changed, 19575 insertions, 0 deletions
diff --git a/plugins/LotusNotify/LotusNotify_10.vcxproj b/plugins/LotusNotify/LotusNotify_10.vcxproj
new file mode 100644
index 0000000000..57b7fbc2e4
--- /dev/null
+++ b/plugins/LotusNotify/LotusNotify_10.vcxproj
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>LotusNotify</ProjectName>
+ <ProjectGuid>{0E046380-14CA-4C23-A807-8C678519A605}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="src\debug.cpp" />
+ <ClCompile Include="src\lotusnotes.cpp" />
+ <ClCompile Include="src\LotusNotify.cpp" />
+ <ClCompile Include="src\stdafx.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\debug.h" />
+ <ClInclude Include="src\lotusnotes.h" />
+ <ClInclude Include="src\LotusNotify.h" />
+ <ClInclude Include="src\notesapi\include\bsafe.h" />
+ <ClInclude Include="src\notesapi\include\bsafeerr.h" />
+ <ClInclude Include="src\notesapi\include\darray.h" />
+ <ClInclude Include="src\notesapi\include\dname.h" />
+ <ClInclude Include="src\notesapi\include\extmgr.h" />
+ <ClInclude Include="src\notesapi\include\global.h" />
+ <ClInclude Include="src\notesapi\include\globerr.h" />
+ <ClInclude Include="src\notesapi\include\idtable.h" />
+ <ClInclude Include="src\notesapi\include\kfm.h" />
+ <ClInclude Include="src\notesapi\include\mailserv.h" />
+ <ClInclude Include="src\notesapi\include\misc.h" />
+ <ClInclude Include="src\notesapi\include\nadtypes.h" />
+ <ClInclude Include="src\notesapi\include\names.h" />
+ <ClInclude Include="src\notesapi\include\nif.h" />
+ <ClInclude Include="src\notesapi\include\nls.h" />
+ <ClInclude Include="src\notesapi\include\ns.h" />
+ <ClInclude Include="src\notesapi\include\nsfdata.h" />
+ <ClInclude Include="src\notesapi\include\nsfdb.h" />
+ <ClInclude Include="src\notesapi\include\nsferr.h" />
+ <ClInclude Include="src\notesapi\include\nsfnote.h" />
+ <ClInclude Include="src\notesapi\include\nsfsearc.h" />
+ <ClInclude Include="src\notesapi\include\osenv.h" />
+ <ClInclude Include="src\notesapi\include\osfile.h" />
+ <ClInclude Include="src\notesapi\include\osmem.h" />
+ <ClInclude Include="src\notesapi\include\osmisc.h" />
+ <ClInclude Include="src\notesapi\include\ossignal.h" />
+ <ClInclude Include="src\notesapi\include\pool.h" />
+ <ClInclude Include="src\notesapi\include\stdnames.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="res\icon1.ico" />
+ <None Include="res\icon2.ico" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\LotusNotify.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/LotusNotify/LotusNotify_10.vcxproj.filters b/plugins/LotusNotify/LotusNotify_10.vcxproj.filters
new file mode 100644
index 0000000000..5bc066e5c4
--- /dev/null
+++ b/plugins/LotusNotify/LotusNotify_10.vcxproj.filters
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+ </Filter>
+ <Filter Include="notesapi">
+ <UniqueIdentifier>{df00f0a3-e7f1-4ece-8f78-92cd020c62d1}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\debug.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\lotusnotes.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\LotusNotify.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\debug.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\lotusnotes.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\LotusNotify.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\stdnames.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\bsafe.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\bsafeerr.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\darray.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\dname.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\extmgr.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\global.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\globerr.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\idtable.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\kfm.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\mailserv.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\misc.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nadtypes.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\names.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nif.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nls.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\ns.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nsfdata.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nsfdb.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nsferr.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nsfnote.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\nsfsearc.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\osenv.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\osfile.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\osmem.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\osmisc.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\ossignal.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\notesapi\include\pool.h">
+ <Filter>notesapi</Filter>
+ </ClInclude>
+ <ClInclude Include="src\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\stdafx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="res\icon1.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="res\icon2.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\LotusNotify.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/LotusNotify/docs/Langpack_polish.txt b/plugins/LotusNotify/docs/Langpack_polish.txt
new file mode 100644
index 0000000000..862eb50072
--- /dev/null
+++ b/plugins/LotusNotify/docs/Langpack_polish.txt
@@ -0,0 +1,99 @@
+#muuid {23eacc0d-bab0-49c0-8f37-5e259ece527f}
+;============================================================
+; File: LotusNotify.dll
+; Plugin: LotusNotify
+; Version: 0.0.21.0
+; Version: 0.0.21.0
+; Authors: MaKaRSoFT - http://maciej.wycik.pl/miranda
+;============================================================
+[Notify about new mail in Lotus Database]
+;file \plugins\LotusNotify\res\LotusNotify.rc
+[Show again if still unread]
+Pokazuj ponownie wszystkie nieczytane
+[Show error messages]
+Pokazuj błędy połączeń
+[Set popup colours]
+Ustaw kolory komunikatów
+[Popup options]
+Opcje komunikatów
+[Background]
+TÅ‚o
+[Text]
+Tekst
+[Close after: ]
+Zamknij po:
+[sek.(0 default,\n -1 disabled)]
+sek.(0 domyślne,\n -1 wyłączone)
+[...but only if popup not clicked]
+...ale tylko te niekliknięte
+[Left button click cmd: ]
+Polecenie po kliknięciu:
+[Command parameters: ]
+Argumenty polecenia:
+[Remember newest message ID\n and don't show older]
+Zapamiętaj najnowszą wiadomość i nie pokazuj starszych od niej
+[version:]
+wersja:
+[Clear popups history]
+Wyczyść historię powiadomień
+[Filter messages contain below strings in:]
+Filtruj powiadomienia zawierajÄ…ce napisy w:
+[Sender]
+Nadawca
+[Subject]
+Temat
+[Lotus connection settings]
+Ustawienia połączenia z serwerem Lotus
+[Primary server:]
+Serwer główny:
+[Database: ]
+Baza:
+[try detect]
+wykryj
+[Secondary server: ]
+Serwer zapasowy:
+[Check interval: ]
+Sprawdź co:
+[(0-disabled)]
+(0-wyłączone)
+[min.]
+min.
+[Password:]
+Hasło:
+[Offline status mean: ]
+Status niepołączony gdy:
+[To / CopyTo]
+Do / Kopia do
+[autoregister]
+Zarejestruj
+;file \plugins\LotusNotify\src\LotusNotify.cpp
+[Unable to load all required Lotus API functions]
+Załadowanie wymaganych funkcji API biblioteki Lotus nie powiodło się.
+[Lotus Notes Client not detected. Check plugin configuration descripted on install.txt]
+Nie znalazłem zainstalowanego klienta Lotus Notes. Sprawdź w pliku install.txt poprawność konfiguracji pluginu.
+[Unable to initialize Notes.]
+Zainicjowanie interfejsu Lotus Notes nie powiodło się.
+[Lotus Notes Extension Manager was not registered. Authentication function will not work propertly]
+Nie udało się prawidłowo zarejestrować w Managerze Rozszerzeń Lotus Notes. Autoryzacja z wykorzystaniem mechanizmów LotusNotify nie będą działały poprawnie.
+[In notes.ini file there is no required entry EXTMGR_ADDINS=plugindllnamewithout".dll"]
+W pliku notes.ini nie ma wymaganego wpisu EXTMGR_ADDINS=plugindllnamewithout".dll"
+[This utility check your notes.ini file if it's set to autenticate this plugin as safe. Plugin is not added as Lotus Extension, so plugin buildin authentication will not work propertly. Do you want to add Plugin as Lotus Extension (modify notes.ini by adding "EXTMGR_ADDINS=PLUGINNAME\]
+To narzędzie pozwala sprawdzić twój plik notes.ini, czy został prawidłowo ustawiony, aby ten plugin był użyty jako bezpieczny. Wygląda na to, że wtyczka nie została dodana jako rozszerzenie, dlatego wbudowana autentykacja nie będzie funkcjonowała prawidłowo. Czy chces dodać ten plugin jako rozszerzenie Lotusa (modyfikacja pliku notes.ini przez dodanie wpisu "EXTMGR_ADDINS=PLUGINNAME")?
+[LotusNotify plugin configuration]
+Konfiguracja pluginu LotusNotify
+[notes.ini modified correctly. Miranda restart required.]
+notes.ini poprawnie zmodyfikowany. Należy zrestartować mirandę.
+[notes.ini seem to be set correctly.]
+notes.ini wygląda na skonfigurowane prawidłowo.
+[Now checking Lotus, try again later]
+Trwa sprawdzanie serwera Lotus, spróbuj później
+[Attachments: %d bytes]
+Załączniki: %d bajtów\n%s
+[Status]
+Status
+[Plugins]
+Wtyczki
+[&Check Lotus]
+&Sprawdź Lotusa
+[LotusNotify: New Lotus document detected]
+LotusNotify: Nowy dokument na serwerze Lotus
diff --git a/plugins/LotusNotify/docs/install.txt b/plugins/LotusNotify/docs/install.txt
new file mode 100644
index 0000000000..0d59f2fdb9
--- /dev/null
+++ b/plugins/LotusNotify/docs/install.txt
@@ -0,0 +1,80 @@
+EN
+1.With 0.0.11.19 version plugin use lotus API dynamicly (Set PATH environment to Lotus Notes bins directory is now not required). If plugin can't load propertly nnotes.dll that must be found in Lotus Client location (stored in HCLM/Software/Lotus/Notes/Path registry value by installer), plugin will not load.
+2.Installation:
+ Unpack lotusnotify.dll plugin in plugins directory.
+ In options find plugins->LotusNotify page.
+ Click button try detect - it will read settings from your lotus.ini.
+ Enter your lotus password into password field, then click button autoregister to add plugin as trusted in Lotus Notes.
+3.To show popups plugin requires popups option (yapp.dll plugin M->popups->enable popups) enabled
+4.If you wish, to open note in Lotus Notes Client by click it with left mouse button:
+ -Open Lotus Notes Client
+ -Open database that should be opened
+ -Open any document (eMail)
+ -In document properties go to tag <+>
+ -In identifier field you can find link to this document build as: notes://server/database/view/document
+ (f.e. Notes:///C125709600375164/01D6C45C67A7DC98C3256C70004F4814/94FDCE1037A90037C125726C004795DD where server is not given)
+ -copy part of this link without part containing document description that should be replaced with variable name %OID% This variable plugin will replace with note id
+ notes://server/database/view/%OID%
+ (in our example it will be Notes:///C125709600375164/01D6C45C67A7DC98C3256C70004F4814/%OID%)
+ -above build link set in plugin properties field: "Left button click cmd", and leave "Command parameters" field empty.
+5.With version 0.0.15.26 you can store your lotus password in miranda, and buildin authentication let miranda connect to Lotus API without prompt for password. You need to set some options before use this feature:
+ -add in your notes.ini file (Lotus Notes installation folder) line (you can do it automatic with button "autoregister" in plugin options dialog. If this option is checked, everytime plugin start, it verify (in depend of given answer) if appropriate entry in lotus.ini exists and modifies it if required):
+ EXTMGR_ADDINS=lotusnotify
+ or if EXTMGR_ADDINS line already exists, simply add new extension after comma f.e.:
+ EXTMGR_ADDINS=someextension, lotusnotify
+ -don't forget to set your Lotus password in plugin options!!!
+ Now you can (if need/want) set security option that I suggest to disable in second Anaswer of FAQ below.
+6. With version 0.0.14.25 added messages filter - for sender and subject fields (primitive spam remover). For me this function is used to disable notification about emails sent by me (it's same new entries in Lotus Notes database)
+
+FAQ:
+Q:Could i keep Notes Client runing on my machine or it should be closed?
+A:There's no problem with that I think (not yet :)).
+
+Q:It always ask my password for id-file when it tries to check for e-mails.
+A:This is Lotus Client security build in solution, and its possible to disabe it (it decrease safety):
+It's somewhere like (have polish lotus client) menu File->Protection(or security)->User protection-> basic security data (first tab)->Don't ask for password in other Lotus Notes aplications.
+If I find on Lotus API some other solition it will be updated (And I found, see point 5 of installation instructions)
+
+Q:miranda start with the error, that nNotes.dll not found. What is the solution?
+A:nnotes.dll is placed in Lotus installation directory, and miranda have to know that. You can do it adding in PATH (my computer->properies->advanced->environment variables->system variables)
+directory where lotus exist (where nnotes.dll can be find)
+
+
+
+PL
+1. Od wersji 0.0.11.19 plugin u¿ywa dynamicznego ³adowania biblioteki API Lotusa (ustawienie zmiennej œrodowiskowej PATH uwzglêdniaj¹cej katalog gdzie zainstalowany zosta³ lotus (u mnie "C:\Program Files\lotus\notes\") nie jest ju¿ wymagane. Je¿eli plugin nie za³aduje biblioteki nnotes.dll której szuka w lokalizacji (zapisanej przez instalatora Lotusa w rejestrze pod kluczem HKLM/Software/Lotus/Notes) , plugin nie zostanie za³adowany.
+2.Instalacja:
+ Skopiuj plik lotusnotify.dll do folderu /Plugins/ Mirandy.
+ W opcjach mirandy przejdŸ do za³adki Wtyczki->LotusNotify
+ Wybierz przycisk 'wykryj' aby odczytaæ ustawienia serwera Lotus z pliku lotus.ini
+ Uzupe³nij swoje has³o, i wybierz 'Zarejestruj' aby dodaæ plugin jako zaufany w Lotus Notes.
+3. Aby pokazywaæ komunikaty o nowych wiadomoœciach, plugin wymaga w³¹czonej opcji pokazywania komunikatów (plugin yapp.dll M->komunikaty->enable popups)
+4. Jeœli chcesz, aby po klikniêciu lewym klawiszem myszy otwiera³a siê ta wiadomoœæ w programie Lotus Notes:
+ -Otwórz klienta Lotus Notes
+ -Otwórz bazê która ma siê otwieraæ
+ -Otwórz jeden z dokumentów (eMaili)
+ -We w³aœciwoœciach dokumentu przejd¿ do pi¹tej zak³adki <+>
+ -W polu identyfikator znajduje siê link do tego dokumentu w formacie notes://serwer/baza/widok/dokument
+ (np Notes:///C125709600375164/01D6C45C67A7DC98C3256C70004F4814/94FDCE1037A90037C125726C004795DD gdzie serwer nie zosta³ podany)
+ -skopiuj fragment adresu bez czêœci dokument któr¹ zamieñ na nazwê zmiennej %OID% za któr¹ plugin wstawi id dokumentu
+ notes://serwer/baza/widok/%OID%
+ (w naszym przyk³adzie Notes:///C125709600375164/01D6C45C67A7DC98C3256C70004F4814/%OID%)
+ -tak skomponowany link wstaw w ustawieniach pluginu w polu: "Polecenie po klikniêciu", a pole "Argumenty polecenia" pozostaw puste.
+5.Pocz¹wszy od wersji 0.0.15.26 mo¿liwe jest zapisanie has³a dostêpu do bazy Lotus w ustawieniach pluginu. Pozwala to na autoryzacjê w API Lotusa bez podawania has³a przy ka¿dym uruchomieniu. W celu u¿ycia koniecznych jest kilka ustawieñ:
+ -dodanie do pliku notes.ini (w katalogu instalacyjnym Lotus Notes) linii (mo¿na to zrobiæ automatycznie za pomoc¹ przycisku "autoregister" znajduj¹cego siê w opcjach wtyczki. Jeœli ta opcja jest zaznaczone, plugin przy starcie sprawdza czy istnieje stosowny wpis w pliku notes.ini oraz w zale¿noœci od potrzeby i wybranej opcji modyfikuje plik ini przed kontynuacj¹ inicjalizacji Lotus API):
+ EXTMGR_ADDINS=lotusnotify
+ lub jeœli linia EXTMGR_ADDINS ju¿ istnieje, poprostu dodaæ po przecinku nowe rozszerzenie np.:
+ EXTMGR_ADDINS=someextension, lotusnotify
+ -nie zapomnij te¿ o ustawieniu has³a w opcjach pluginu!!!
+ Teraz mo¿esz (jeœli chcesz/powinieneœ) ustawiæ opcjê zabezpieczeñ któr¹ sugerowa³em wy³¹czyæ w drugiej odpowiedzi FAQ poni¿ej
+6. Wraz z wersj¹ 0.0.14.25 dodany zosta³ prymitywny filtr antyspamowy. Mo¿liwe jest definiowanie s³ów znajduj¹cych siê w polach OD i TEMAT maila których wyst¹pienie bêdzie skutkowa³o brakiem powiadomienia o tej wiadomoœci.
+
+FAQ:
+P: Czy klient Lotus Notes mo¿e byæ uruchomiony na komputerze?
+O: Nie zaobserwowa³em jeszcze ubocznych skutków pracy plugina przy uruchomionym klientcie, dlatego nie widzê przeciwskazañ.
+
+P: Plugin pyta o has³o do pliku id gdy próbuje sprawdzaæ pocztê.
+O: Jest to wbudowane w klienta rozwi¹zanie zabezpieczaj¹ce krórego wy³¹czenie jest mo¿liwe w jego w³aœciwoœciach (kosztem obni¿enia zabezpieczeñ). Aby wy³¹czyæ t¹ funkcjonalnoœæ nale¿y zaznaczyæ opcjê "Nie pytaj o has³o w innych aplikacjach dzia³aj¹cych w praogramie Lotus Notes..." któr¹ mo¿na znaleŸæ w zak³adce "Podst. dane o zabezp" opcji Plik->Zabezpieczenia->Zabezpieczenia u¿ytkownia. Ostatnie wersje pluginu posiadaj¹ wbudowany mechanizm autoryzacji i zmiana tej opcji nie jest wymagana. Konieczne jest jedynie ustawienie has³a odpowiedniego wpisu w konfiguracji lotusa (patrz pkt. 5 procedury instalacyjnej)
+
+P: Miranda uruchamia siê z b³êdem ¿e nie mo¿e znaleŸæ biblioteki nNotes.dll
+O: biblioteka nNotes.dll powinna znajdowaæ siê w katalogu instalacyjnym klienta lotusa, i plugin lotusnotify.dll powinien o tym wiedzieæ. Aby go poinformowaæ najlepiej jest dodaæ katalog instalacyjny lotusa (katalog gdzie znajduje siê biblioteka nNotes.dll) do zmiennej œrodowiskowej PATH (Mój komputer->w³aœciwoœci->zaawansowane->Zmienne œrodowiskowe->zmienne systemowe). Aktualne wersje nie powinny wymagaæ tego ustawienia.
diff --git a/plugins/LotusNotify/res/LotusNotify.rc b/plugins/LotusNotify/res/LotusNotify.rc
new file mode 100644
index 0000000000..5885f85ea3
--- /dev/null
+++ b/plugins/LotusNotify/res/LotusNotify.rc
@@ -0,0 +1,184 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\src\resource.h"
+#include "..\src\version.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+//#include "afxres.h"
+#include "windows.h"
+#define IDC_STATIC -1
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(1250)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_ICON1 ICON "icon1.ico"
+IDI_ICON2 ICON "icon2.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_OPT_DIALOG DIALOGEX 0, 0, 314, 239
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ EDITTEXT IDC_DATABASE,75,39,115,12,ES_AUTOHSCROLL
+ EDITTEXT IDC_INTERVAL,250,17,21,12,ES_AUTOHSCROLL
+ EDITTEXT IDC_COMMAND,91,116,80,12,ES_AUTOHSCROLL
+ EDITTEXT IDC_PARAMETERS,91,128,80,12,ES_AUTOHSCROLL
+ CONTROL "Show again if still unread",IDC_ONCEONLY,"Button",
+ BS_AUTOCHECKBOX | BS_LEFT | BS_PUSHLIKE | WS_TABSTOP,177,
+ 68,130,10
+ CONTROL "Show error messages",IDC_SHOWERROR,"Button",
+ BS_AUTOCHECKBOX | BS_LEFT | BS_PUSHLIKE | WS_TABSTOP,177,
+ 92,130,10
+ EDITTEXT IDC_SERVERSEC,75,28,115,12,ES_AUTOHSCROLL
+ CONTROL "Set popup colours",IDC_SETCOLOURS,"Button",
+ BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,17,
+ 76,132,10
+ CONTROL "Custom1",IDC_BGCOLOR,"ColourPicker",WS_GROUP |
+ WS_TABSTOP,15,87,10,10
+ CONTROL "Custom1",IDC_FGCOLOR,"ColourPicker",WS_GROUP |
+ WS_TABSTOP,75,87,10,9
+ GROUPBOX "Popup options",IDC_STATIC,7,66,167,80,WS_GROUP
+ LTEXT "Background",IDC_STATIC,31,88,43,8
+ LTEXT "Text",IDC_STATIC,91,89,41,8
+ EDITTEXT IDC_INTERVAL1,57,97,21,12,ES_AUTOHSCROLL | WS_GROUP
+ RTEXT "Close after: ",IDC_STATIC,9,99,47,9
+ LTEXT "sek.(0 default,\n -1 disabled)",IDC_STATIC,81,99,66,17
+ CONTROL "...but only if popup not clicked",IDC_NONCLICKEDONLY,
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_PUSHLIKE |
+ WS_TABSTOP,177,80,130,10
+ LTEXT "Left button click cmd: ",IDC_STATIC,7,117,83,9
+ LTEXT "Command parameters: ",IDC_STATIC,7,130,83,9
+ CONTROL "Remember newest message ID\n and don't show older",
+ IDC_NEWEST,"Button",BS_AUTOCHECKBOX | BS_LEFT |
+ BS_PUSHLIKE | BS_MULTILINE | WS_TABSTOP,177,103,130,20
+ CTEXT "",IDC_VERSION,39,222,52,9,0,WS_EX_STATICEDGE
+ RTEXT "version:",IDC_VERSION2,7,223,31,9
+ PUSHBUTTON "Clear popups history",IDC_BUTTON_CLEAR,7,204,197,14,
+ BS_CENTER | BS_MULTILINE
+ GROUPBOX "Filter messages contain below strings in:",IDC_STATIC,8,
+ 147,197,56
+ COMBOBOX IDC_FILTER_SENDER,51,157,115,12,CBS_DROPDOWN | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Sender",IDC_STATIC,9,159,39,8
+ COMBOBOX IDC_FILTER_SUBJECT,51,170,115,12,CBS_DROPDOWN | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Subject",IDC_STATIC,9,171,39,8
+ PUSHBUTTON "+",IDC_BUTTON_ADD_SENDER_FILTER,169,158,16,11,BS_CENTER
+ PUSHBUTTON "+",IDC_BUTTON_ADD_SUBJECT_FILTER,169,171,16,11,
+ BS_CENTER
+ PUSHBUTTON "-",IDC_BUTTON_REMOVE_SENDER_FILTER,185,158,16,11,
+ BS_CENTER
+ PUSHBUTTON "-",IDC_BUTTON_REMOVE_SUBJECT_FILTER,185,171,16,11,
+ BS_CENTER
+ GROUPBOX "Lotus connection settings",IDC_STATIC,7,7,237,57
+ LTEXT "Primary server:",IDC_STATIC,8,18,65,9
+ COMBOBOX IDC_SERVER,75,16,115,12,CBS_DROPDOWN | CBS_AUTOHSCROLL |
+ CBS_SORT | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Database: ",IDC_STATIC,8,40,65,9
+ PUSHBUTTON "try detect",IDC_BUTTON_DETECT,191,14,51,36,BS_MULTILINE
+ LTEXT "Secondary server: ",IDC_STATIC,8,29,65,9
+ GROUPBOX "Check interval: ",IDC_STATIC,246,7,61,57
+ LTEXT "(0-disabled)",IDC_STATIC,250,34,56,8
+ LTEXT "min.",IDC_STATIC,273,19,19,8
+ EDITTEXT IDC_PASSWORD,75,50,115,12,ES_PASSWORD | ES_AUTOHSCROLL
+ LTEXT "Password:",IDC_STATIC,8,51,65,9
+ GROUPBOX "Offline status mean: ",IDC_STATIC,206,123,101,110
+ CONTROL "",IDC_STATUS,"SysListView32",LVS_REPORT |
+ LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_TABSTOP,209,133,96,97,
+ WS_EX_CLIENTEDGE
+ COMBOBOX IDC_FILTER_TO,51,183,115,12,CBS_DROPDOWN | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "To / CopyTo",IDC_STATIC,9,184,39,8
+ PUSHBUTTON "+",IDC_BUTTON_ADD_TO_FILTER,169,184,16,11,BS_CENTER
+ PUSHBUTTON "-",IDC_BUTTON_REMOVE_TO_FILTER,185,184,16,11,BS_CENTER
+ CONTROL "autoregister",IDC_BUTTON_CHECK,"Button",BS_AUTOCHECKBOX |
+ BS_PUSHLIKE | WS_TABSTOP,191,50,51,12
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_OPT_DIALOG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 307
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 232
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION __FILEVERSION_STRING
+ PRODUCTVERSION __FILEVERSION_STRING
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "Comments", __FILECOMMENTS
+ VALUE "CompanyName", __AUTHOR
+ VALUE "FileDescription", __DESCRIPTION
+ VALUE "InternalName", __PLUGIN_NAME
+ VALUE "LegalCopyright", __COPYRIGHT
+ VALUE "LegalTrademarks", __LEGALTRADEMARKS
+ VALUE "OriginalFilename", __FILENAME
+ VALUE "ProductName", __FILENAME
+ VALUE "FileVersion", __VERSION_STRING
+ VALUE "ProductVersion", __VERSION_STRING
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
+
+#endif // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
diff --git a/plugins/LotusNotify/res/icon1.ico b/plugins/LotusNotify/res/icon1.ico
new file mode 100644
index 0000000000..2bb90b9eec
--- /dev/null
+++ b/plugins/LotusNotify/res/icon1.ico
Binary files differ
diff --git a/plugins/LotusNotify/res/icon2.ico b/plugins/LotusNotify/res/icon2.ico
new file mode 100644
index 0000000000..dfb94e1042
--- /dev/null
+++ b/plugins/LotusNotify/res/icon2.ico
Binary files differ
diff --git a/plugins/LotusNotify/src/LotusNotify.cpp b/plugins/LotusNotify/src/LotusNotify.cpp
new file mode 100644
index 0000000000..b3e03819bc
--- /dev/null
+++ b/plugins/LotusNotify/src/LotusNotify.cpp
@@ -0,0 +1,1740 @@
+/*
+Miranda plugin template, originally by Richard Hughes
+http://miranda-icq.sourceforge.net/
+
+This file is placed in the public domain. Anybody is free to use or
+modify it as they wish with no restriction.
+There is no warranty.
+*/
+
+#include "stdafx.h"
+
+#include "debug.h"
+#include "resource.h"
+#include "version.h"
+#include "lotusnotes.h"
+#include "LotusNotify.h"
+
+
+#define MAX_FIELD 256
+#define MAX_SETTING_STR 512
+#define STATUS_COUNT 9
+
+char PLUGINNAME[64] = {0}; //init at init_pluginname();
+int hLangpack = 0;
+HINSTANCE hInst;
+
+HINSTANCE hLotusDll;
+HEMREGISTRATION hLotusRegister = 0;
+
+boolean volatile Plugin_Terminated = false;
+CRITICAL_SECTION checkthreadCS;
+
+HANDLE hMenuService = NULL;
+HANDLE hMenuHandle = NULL;
+HANDLE hCheckEvent = NULL;
+HANDLE hCheckHook = NULL;
+HANDLE hHookModulesLoaded = NULL;
+HANDLE hHookPreShutdown = NULL;
+
+HANDLE hOptInit = NULL;
+static HWND hTimerWnd = (HWND)NULL;
+static UINT TID = (UINT)2006;
+
+char settingServer[MAX_SETTING_STR] = "";
+char settingServerSec[MAX_SETTING_STR] = "";
+char settingDatabase[MAX_SETTING_STR] = "";
+char settingCommand[MAX_SETTING_STR] = "";
+char settingParameters[MAX_SETTING_STR] = "";
+TCHAR settingFilterSubject[MAX_SETTING_STR] = TEXT("");
+TCHAR settingFilterSender[MAX_SETTING_STR] = TEXT("");
+TCHAR settingFilterTo[MAX_SETTING_STR] = TEXT("");
+char settingPassword[MAX_SETTING_STR] = "";
+
+COLORREF settingBgColor;
+COLORREF settingFgColor;
+int settingInterval = 0;
+int settingInterval1 = 0;
+DWORD settingNewestID = 0;
+BYTE settingSetColours = 0;
+BYTE settingShowError = 1;
+BYTE settingIniAnswer = -1;
+BYTE settingIniCheck = 0;
+BYTE settingOnceOnly = 0;
+BYTE settingNonClickedOnly = 0;
+BYTE settingNewest = 0;
+BOOL settingStatus[STATUS_COUNT];
+BOOL bMirandaCall=FALSE;
+
+struct HISTORIA *first = NULL;
+BOOL running = FALSE;
+BOOL second = FALSE;
+BOOL isPopupWaiting = FALSE;
+int currentStatus = ID_STATUS_OFFLINE;
+int diffstat = 0;
+int startuperror = 0;
+TCHAR *startuperrors[] = {
+ LPGENT("Unable to load all required Lotus API functions"),
+ LPGENT("Lotus Notes Client not detected. Check plugin configuration descripted on install.txt"),
+ LPGENT("Unable to initialize Notes."),
+ LPGENT("Lotus Notes Extension Manager was not registered. Authentication function will not work propertly"),
+ LPGENT("In notes.ini file there is no required entry EXTMGR_ADDINS=plugindllnamewithout\".dll\"")
+ };
+
+
+PLUGININFOEX pluginInfo = {
+ sizeof(PLUGININFOEX),
+ __PLUGIN_NAME,
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+ __DESCRIPTION,
+ __AUTHOR,
+ __AUTHOREMAIL,
+ __COPYRIGHT,
+ __AUTHORWEB,
+ UNICODE_AWARE,
+ { 0x23eacc0d, 0xbab0, 0x49c0, { 0x8f, 0x37, 0x5e, 0x25, 0x9e, 0xce, 0x52, 0x7f } } // {23EACC0D-BAB0-49c0-8F37-5E259ECE527F}
+};
+
+
+
+// authentication callback futnction from extension manager called by nnotes.dll
+STATUS LNPUBLIC __stdcall EMCallBack (EMRECORD * pData)
+{
+ VARARG_PTR pArgs;
+ DWORD maxPwdLen;
+ DWORD * retLength;
+ char * retPassword;
+ char * fileName;
+ char * ownerName;
+
+ if (pData->EId != EM_GETPASSWORD) return (ERR_EM_CONTINUE); //asking for password?
+ if (pData->Status != NOERROR) return (ERR_EM_CONTINUE);
+
+ pArgs= pData->Ap;
+ maxPwdLen = VARARG_GET (pArgs, DWORD);
+ retLength = VARARG_GET (pArgs, DWORD *);
+ retPassword = VARARG_GET (pArgs, char *);
+ fileName = VARARG_GET (pArgs, char *);
+ ownerName = VARARG_GET (pArgs, char *);
+ strncpy(retPassword, settingPassword, strlen(settingPassword)); //set our password
+ retPassword[strlen(settingPassword)]='\0';
+ *retLength = (DWORD)strlen(retPassword);//and his length
+ return ERR_BSAFE_EXTERNAL_PASSWORD;
+}
+
+
+//Main entry point for Ext Manager of Lotus API. called by nnotes.dll
+//It don't work (don't know why), and Mirandas Load function is called with value 1 or 0 as parameter...
+__declspec(dllexport)STATUS LNPUBLIC MainEntryPoint (void)
+{
+ STATUS rc;
+ rc = EMRegister1 (EM_GETPASSWORD, EM_REG_BEFORE | EM_REG_AFTER, EMCallBack, 0, &hLotusRegister); //Extension Manager must know that we are here
+ if(rc) {
+ //Extension magager don't know who we are :(
+ startuperror+=8;
+ // Get the info from the .ini file
+ }
+ return rc;
+}
+
+
+//Clear Extension Manager when exiting
+void ExtClear()
+{
+ STATUS status;
+ if (0 != hLotusRegister) {
+ status = (EMDeregister1) (&hLotusRegister); //we was registered, so let's unregister
+ } else {
+ status = NOERROR;
+ }
+ log_p(L"ExtClear() status=%d", status);
+ return;
+}
+
+
+//check if msg was clicked and exists on msgs list
+struct HISTORIA* getEl(DWORD id)
+{
+ struct HISTORIA *cur = first;
+ while(cur != NULL)
+ {
+ if(cur->noteID == id)
+ return cur;
+ cur = cur->next;
+ }
+ return NULL;
+}
+
+
+//creates new entry on list of msgs
+void addNewId(DWORD id)
+{
+ struct HISTORIA* nowy = (struct HISTORIA*)mir_alloc(sizeof(struct HISTORIA)) ;
+ assert(nowy);
+ nowy->noteID = id;
+ nowy->next = first;
+ nowy->pq = NULL;
+ nowy->again = FALSE;
+ first = nowy;
+}
+
+
+//add popup handle. This queue is used to close popups with same msg
+void addPopup(DWORD id,HWND hWnd)
+{
+ struct POPUPSQUEUE* nowy = (struct POPUPSQUEUE*)mir_alloc(sizeof(struct POPUPSQUEUE)) ;
+ struct HISTORIA *elem = getEl(id);
+ assert(nowy);
+ nowy->hWnd = hWnd;
+ nowy->next = elem->pq;
+ elem->pq = nowy;
+}
+
+
+//clear popups handles list
+void deletePopupsHandles(struct POPUPSQUEUE **firstpq, BOOL closePopup)
+{
+ struct POPUPSQUEUE *curpq = *firstpq, *delpq;
+ while(curpq != NULL) {
+ delpq = curpq;
+ curpq = curpq->next;
+ if(closePopup)
+ PUDeletePopup(delpq->hWnd);
+ mir_free(delpq);
+ }
+ *firstpq = NULL;
+}
+
+
+//clear msgs list
+void deleteElements()
+{
+ struct HISTORIA *cur = first, *del;
+ while(cur != NULL)
+ {
+ del = cur;
+ cur = cur->next;
+ deletePopupsHandles(&(del->pq),FALSE);
+ mir_free(del);
+ first = cur;
+ }
+ first = NULL;
+}
+
+
+//set plugin name
+void init_pluginname()
+{
+ char text[MAX_PATH], *p, *q;
+ WIN32_FIND_DATAA ffd;
+ HANDLE hFind;
+
+ // Try to find name of the file having original letter sizes
+ GetModuleFileNameA(hInst, text, sizeof(text));
+
+ if((hFind = FindFirstFileA(text, &ffd)) != INVALID_HANDLE_VALUE) {
+ strncpy_s(text, SIZEOF(text), ffd.cFileName, strlen(ffd.cFileName));
+ FindClose(hFind);
+ }
+ // Check if we have relative or full path
+ if(p = strrchr(text, '\\')) {
+ p++;
+ } else {
+ p = text;
+ }
+ if(q = strrchr(p, '.')) {
+ *q = '\0';
+ }
+ if((q = strstr(p, "debug")) && strlen(q) == 5) {
+ *q = '\0';
+ }
+
+ // copy to static variable
+ strncpy_s(PLUGINNAME, SIZEOF(PLUGINNAME), p, strlen(p));
+ assert(strlen(PLUGINNAME)>0);
+
+}
+
+
+BOOL strrep(char *src, char *needle, char *newstring)
+{
+ char *found, begining[MAX_SETTING_STR], tail[MAX_SETTING_STR];
+ int pos=0;
+
+ //strset(begining,' ');
+ //strset(tail,' ');
+ if(!(found=strstr(src,needle)))
+ return FALSE;
+
+ pos = (int)(found-src);
+ strncpy_s(begining, _countof(begining), src, pos);
+ begining[pos]='\0';
+
+ pos = pos+(int)strlen(needle);
+ strncpy_s(tail, _countof(tail), src+pos, SIZEOF(tail));
+ begining[pos]='\0';
+
+ pos = sprintf(src, "%s%s%s", begining, newstring, tail);
+ return TRUE;
+}
+
+
+//check if given string contain filter string
+//param field= 0-sender
+// 1-subject
+BOOL checkFilters(TCHAR* str, int field)
+{
+ TCHAR buff[512] = _T("");
+ TCHAR *strptr = NULL;
+ switch(field)
+ {
+ case 0:
+ _tcsncpy_s(buff, SIZEOF(buff), settingFilterSender, SIZEOF(buff));
+ break;
+ case 1:
+ _tcsncpy_s(buff, SIZEOF(buff), settingFilterSubject, SIZEOF(buff));
+ break;
+ case 2:
+ _tcsncpy_s(buff, SIZEOF(buff), settingFilterTo, SIZEOF(buff));
+ break;
+ }
+
+
+ while(strptr = _tcschr(buff, ';'))
+ {
+ TCHAR tmp[512] = TEXT(""), *ptr;
+ _tcsncpy_s(tmp, SIZEOF(tmp), buff, (strptr-buff));
+ _tcsncpy_s(buff, SIZEOF(buff), strptr + 1, SIZEOF(buff));
+
+ if(_tcsstr(_tcslwr(ptr=_tcsdup(str)),_tcslwr(tmp)))
+ {
+ free(ptr);
+ return TRUE;
+ }
+ free(ptr);
+ }
+ return FALSE;
+}
+
+
+//subfunction called from popup plugin callback function
+void Click(HWND hWnd,BOOL execute)
+{
+ POPUPATT *pid=NULL;
+ pid = (POPUPATT*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd,(LPARAM)pid);
+ if(settingOnceOnly&&settingNonClickedOnly)
+ (getEl(pid->id))->clicked=TRUE;//add to msgs list
+
+ deletePopupsHandles((&(getEl(pid->id))->pq),TRUE);
+
+ if(settingNewest && (pid->id > settingNewestID) ){
+ db_set_dw(NULL, PLUGINNAME, "LNNewestID", settingNewestID=pid->id);
+ }
+ if(execute && settingCommand && strlen(settingCommand)>0 ) {
+ char tmpcommand[2*MAX_SETTING_STR];
+ char tmpparameters[2*MAX_SETTING_STR];
+ strncpy_s(tmpcommand, SIZEOF(tmpcommand), settingCommand, SIZEOF(tmpcommand));
+ strncpy_s(tmpparameters, SIZEOF(tmpparameters), settingParameters, SIZEOF(tmpparameters));
+ strrep(tmpcommand, "%OID%", pid->strNote);
+ strrep(tmpparameters, "%OID%", pid->strNote);
+ log_p(L"executing: %S %S", tmpcommand, tmpparameters);
+ ShellExecuteA(NULL, "Open", tmpcommand, tmpparameters, NULL, SW_NORMAL);
+ }
+}
+
+
+//popup plugin callback function
+static int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch(message) {
+ case WM_COMMAND:
+ {
+
+ if (HIWORD(wParam) == STN_CLICKED)//client clicked on popup with left mouse button
+ {
+ Click(hWnd,TRUE);
+
+ //system(settingCommand);
+ //if(!settingOnceOnly)
+ //addNewId(noteID);
+ return TRUE;
+ }
+
+ break;
+ }
+
+ case WM_RBUTTONUP:
+ {
+ Click(hWnd,FALSE);
+ break;
+ }
+
+ case UM_INITPOPUP:
+ {
+ POPUPATT *pid=NULL;
+ pid = (POPUPATT*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd,(LPARAM)pid);
+ addPopup(pid->id,hWnd);
+ //PUDeletePopUp(hWnd);
+ break;
+ }
+
+ case UM_FREEPLUGINDATA:
+ {
+ POPUPATT * mpd = NULL;
+ mpd = (POPUPATT*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd,(LPARAM)mpd);
+ if (mpd > 0) free(mpd);
+ return TRUE; //TRUE or FALSE is the same, it gets ignored.
+ }
+
+ default:
+ break;
+ }
+
+ return DefWindowProc(hWnd, message, wParam, lParam);
+}
+
+
+//check notes.ini if it has entry about our plugin
+//return TRUE if notes.ini is set correctly
+//give bInfo=TRUE to show MsgBoxes
+BOOL checkNotesIniFile(BOOL bInfo)
+{
+ char tmp[MAXENVVALUE+1], tmp1[MAXENVVALUE+1];
+ (OSGetEnvironmentString1) ("EXTMGR_ADDINS", tmp, MAXENVVALUE);//get current setting
+ strncpy_s(tmp1,_countof(tmp1),tmp,sizeof(tmp1));//copy temporary
+ assert(strlen(tmp1)>0);
+
+ char* PLUGINNAME_lower = _strlwr(mir_strdup(PLUGINNAME));;
+
+ //is there our plugin as safe?
+ if(strstr(tmp1,PLUGINNAME_lower) == NULL)
+ {
+ if(!settingIniCheck && !bInfo)
+ return FALSE;
+
+ if(!settingIniAnswer || bInfo){
+ switch(MessageBox(NULL, TranslateT("This utility check your notes.ini file if it's set to autenticate this plugin as safe. Plugin is not added as Lotus Extension, so plugin buildin authentication will not work propertly. Do you want to add Plugin as Lotus Extension (modify notes.ini by adding \"EXTMGR_ADDINS=PLUGINNAME\")?"), TranslateT("LotusNotify plugin configuration"), MB_YESNO))
+ {
+ case IDYES:
+ {
+ settingIniAnswer=1;
+ break;
+ }
+ case IDNO:
+ {
+ settingIniAnswer=-1;
+ break;
+ }
+ }
+ }
+
+ if(settingIniAnswer == 1)
+ {
+ if(strlen(tmp) > 0) {
+ strcat_s(tmp, SIZEOF(tmp), ",");
+ strcat_s(tmp, SIZEOF(tmp), PLUGINNAME_lower); //add our plugin to extensions
+ } else {
+ strncpy_s(tmp, SIZEOF(tmp), PLUGINNAME_lower, strlen(PLUGINNAME_lower)); //set our plugin as extension
+ }
+
+ (OSSetEnvironmentVariable1) ("EXTMGR_ADDINS", tmp); //set notes.ini entry
+ if(bInfo) {
+ MessageBox(NULL, TranslateT("notes.ini modified correctly. Miranda restart required."), TranslateT("LotusNotify plugin configuration"), MB_OK);
+ } else{
+ ErMsgT(TranslateT("notes.ini modified correctly. Miranda restart required."));
+ }
+ return TRUE;
+ } else { if(settingIniAnswer == 0xFF)
+ return FALSE;
+ }
+ } else {
+ //setting set already
+ if(bInfo)
+ MessageBox(NULL, TranslateT("notes.ini seem to be set correctly."), TranslateT("LotusNotify plugin configuration"), MB_OK);
+ return TRUE;
+ }
+
+ mir_free(PLUGINNAME_lower);
+ return FALSE;
+}
+
+
+//popup plugin to show popup function
+void showMsg(TCHAR* sender,TCHAR* text, DWORD id, char *strUID)
+{
+
+ POPUPDATAT ppd;
+ //hContact = A_VALID_HANDLE_YOU_GOT_FROM_SOMEWHERE;
+ //hIcon = A_VALID_HANDLE_YOU_GOT_SOMEWHERE;
+ //char * lpzContactName = (char*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)lhContact,0);
+ //99% of the times you'll just copy this line.
+ //1% of the times you may wish to change the contact's name. I don't know why you should, but you can.
+ //char * lpzText;
+ //The text for the second line. You could even make something like: char lpzText[128]; lstrcpy(lpzText, "Hello world!"); It's your choice.
+
+ POPUPATT * mpd = (POPUPATT*)malloc(sizeof(POPUPATT));
+ ZeroMemory(&ppd, sizeof(ppd)); //This is always a good thing to do.
+ ppd.lchContact = NULL; //(HANDLE)hContact; //Be sure to use a GOOD handle, since this will not be checked.
+ ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
+ _tcscpy_s(ppd.lptzContactName, SIZEOF(ppd.lptzContactName), sender);
+ _tcscpy_s(ppd.lptzText, SIZEOF(ppd.lptzText), text);
+ if(settingSetColours)
+ {
+ ppd.colorBack = settingBgColor;
+ ppd.colorText = settingFgColor;
+ }
+ ppd.PluginWindowProc = (WNDPROC)PopupDlgProc;
+
+ ppd.iSeconds=settingInterval1;
+ //Now the "additional" data.
+ mpd->id = id;
+ strncpy_s(mpd->strNote, SIZEOF(mpd->strNote), strUID, strlen(strUID));
+ //mpd->newStatus = ID_STATUS_ONLINE;
+
+ //Now that the plugin data has been filled, we add it to the PopUpData.
+ ppd.PluginData = mpd;
+
+ //Now that every field has been filled, we want to see the popup.
+ CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&ppd, 0);
+}
+
+
+//what to do with error msg
+void ErMsgW(WCHAR* msg)
+{
+ TCHAR* msgT = mir_u2t(msg);
+ ErMsgT(msgT);
+ mir_free(msgT);
+}
+///TODO TCHAR->WCHAR and test
+void ErMsgT(TCHAR* msg)
+{
+ log_p(L"Error: %S", msg);
+ if(settingShowError && !isPopupWaiting) {
+ TCHAR buffer[256+14];
+ _tcsncpy_s(buffer, _countof(buffer), _T("LotusNotify: "), SIZEOF(buffer));
+ _tcscat_s(buffer, _countof(buffer), msg);
+ isPopupWaiting = TRUE;
+ PUShowMessageT(buffer, SM_WARNING);
+ isPopupWaiting = FALSE;
+ }
+}
+
+
+//Lotus error occured so translate it
+void ErMsgByLotusCode(STATUS erno)
+{
+ char far error_text_LMBCS[200];
+ char far error_text_UNICODEatCHAR[400];
+ WCHAR far error_text_UNICODE[200];
+ WORD text_len;
+
+ text_len = (OSLoadString1)(NULLHANDLE, erno, error_text_LMBCS, sizeof(error_text_LMBCS)-1);
+ (OSTranslate1)(OS_TRANSLATE_LMBCS_TO_UNICODE, error_text_LMBCS, (WORD)strlen(error_text_LMBCS), error_text_UNICODEatCHAR, sizeof(error_text_UNICODEatCHAR)-1);
+ memcpy(error_text_UNICODE, error_text_UNICODEatCHAR, sizeof(error_text_UNICODE));
+
+ ErMsgW(error_text_UNICODE);
+}
+
+
+//set menu avainability
+static void LNEnableMenuItem(HANDLE hMenuItem, BOOL bEnable)
+{
+ log_p(L"LNEnableMenuItem: bEnable=%d", bEnable);
+ CLISTMENUITEM clmi = {0};
+ clmi.cbSize = sizeof(CLISTMENUITEM);
+ clmi.flags = CMIM_FLAGS;
+ if ( !bEnable )
+ clmi.flags |= CMIF_GRAYED;
+
+ CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuItem, (LPARAM)&clmi);
+}
+
+
+int check() {
+
+ log_p(L"check: Entering check function. running=%d", running);
+
+ if(startuperror) {
+ int cnt;
+ for(cnt = 0; cnt <= 4; cnt++)
+ if(startuperror >> cnt & 1)
+ ErMsgT(TranslateTS(startuperrors[cnt]));
+ return 1;
+ }
+
+ if (Plugin_Terminated || Miranda_Terminated()){
+ log_p(L"check: Plugin_Terminated (=%d) OR Miranda_Terminated()", Plugin_Terminated);
+ return 0;
+ }
+
+ if(running) {
+ ErMsgT(TranslateT("Now checking Lotus, try again later"));
+ return 1;
+ } else {
+ running = TRUE;
+ LNEnableMenuItem(hMenuHandle, !running);
+ }
+
+ log(L"check: starting checkthread");
+ mir_forkthread(checkthread, NULL);
+
+ return 0;
+}
+
+
+
+//before pure lotus notes api functions call
+void checkthread(void*)
+{
+
+ STATUS error = NOERROR;
+ char fullpath[255];
+ DBHANDLE db_handle = NULLHANDLE; /* database handle */
+ TCHAR buffer[NSF_INFO_SIZE] = TEXT(""); /* database info buffer */
+ TCHAR title[NSF_INFO_SIZE] = TEXT(""); /* database title */
+ char UserName [MAXUSERNAME + 1];
+ HANDLE hTable;
+
+ DWORD noteID = 0L;
+ BOOL fFirst = TRUE;
+
+ NOTEHANDLE note_handle;
+ WORD field_len;
+ char field_date[MAXALPHATIMEDATE + 1];
+
+ char field_lotus_LMBCS[MAX_FIELD];
+ char field_lotus_UNICODEatCHAR[MAX_FIELD * sizeof(TCHAR)];
+ WCHAR field_from_UNICODE[MAX_FIELD];
+ WCHAR field_subject_UNICODE[MAX_FIELD];
+ WCHAR field_to_UNICODE[MAX_FIELD];
+ WCHAR field_copy_UNICODE[MAX_FIELD];
+
+ EnterCriticalSection(&checkthreadCS);
+ log(L"checkthread: inside new check thread");
+
+ if (error = (NotesInitThread1)()) {
+ goto errorblock;
+ }
+ log(L"checkthread: Started NotesInitThread");
+
+ if (error = (OSPathNetConstruct1)(NULL, settingServer, settingDatabase, fullpath)) {
+ goto errorblock;
+ }
+ log_p(L"checkthread: OSPathNetConstruct: %S", fullpath);
+
+ if (error = (NSFDbOpen1) (fullpath, &db_handle)) {
+ if(strcmp(settingServerSec, "") != 0) {
+ if (error = (OSPathNetConstruct1)(NULL, settingServerSec, settingDatabase, fullpath)) {
+ goto errorblock;
+ } else {
+ if (error = (NSFDbOpen1) (fullpath, &db_handle)) {
+ goto errorblock;
+ }
+ }
+ } else {
+ goto errorblock;
+ }
+ }
+ assert(db_handle);
+ log(L"checkthread: DBOpened");
+
+ if(error = (SECKFMGetUserName1) (UserName)) {
+ goto errorblock0;
+ }
+ assert(UserName);
+ log_p(L"checkthread: Username: %S", UserName);
+
+ /* Get the unread list */
+ if(error = (NSFDbGetUnreadNoteTable1) (db_handle,UserName,(WORD) strlen(UserName),TRUE,&hTable)) {
+ goto errorblock0;
+ }
+ log(L"checkthread: Unread Table got");
+
+ //error = IDTableCopy (hTable, &hOriginalTable);
+ //IDDestroyTable (hTable);
+ if(error = (NSFDbUpdateUnread1) (db_handle, hTable)){
+ goto errorblock;
+ }
+ log(L"checkthread: Unread Table updated");
+ assert(hTable);
+
+
+ while((IDScan1)(hTable, fFirst, &noteID)) {
+
+ WORD Att;
+ BLOCKID bhAttachment;
+ DWORD cSize = 0;
+ DWORD attSize = 0;
+ OID retNoteOID;
+ TIMEDATE retModified; /* modified timedate */
+ WORD retNoteClass; /* note class */
+ TIMEDATE sendDate;
+ char strLink[4*16];
+
+ if (Plugin_Terminated || Miranda_Terminated()){
+ log_p(L"checkthread: Plugin_Terminated (=%d) OR Miranda_Terminated()", Plugin_Terminated);
+ break;
+ }
+
+ log_p(L"checkthread: Getting info about: %d", noteID);
+
+ fFirst = FALSE;
+ assert(noteID);
+ if(!getEl(noteID))
+ addNewId(noteID);
+ else
+ (getEl(noteID))->again = TRUE;
+
+ if(!settingOnceOnly && (getEl(noteID))->again == TRUE){
+ //don't show again and note was not showed (ID not on list)
+ continue;
+ }
+
+ log(L"checkthread: skiped-don't show again and note was not showed (ID not on list)");
+
+ if(settingOnceOnly && settingNonClickedOnly && (getEl(noteID))->clicked == TRUE){
+ //show again, but only not clicked (id added to list on Left Button click)
+ continue;
+ }
+
+ log(L"checkthread: skiped-show again, but only not clicked (id added to list on Left Button click)");
+
+ if(settingNewest && settingNewestID >= noteID){
+ //only newest option enabled, so if old id don't show it
+ continue;
+ }
+
+ log(L"checkthread: skiped-only newest option enabled, so if old id don't show it");
+
+ //if(((!settingOnceOnly||(settingOnceOnly&&settingNonClickedOnly))&&existElem(noteID))||(settingNewest&&settingNewestID>=noteID))
+ //continue;
+
+ if (error = (NSFNoteOpen1) (db_handle, noteID, 0, &note_handle)) {
+ continue;
+ }
+
+ log_p(L"checkthread: Opened Note: %d", noteID);
+
+ (NSFDbGetNoteInfo1)(db_handle, /* DBHANDLE */
+ noteID, /* NOTEID */
+ &retNoteOID, /* out: OID */
+ &retModified, /* out: */
+ &retNoteClass) ;
+ ZeroMemory(strLink, SIZEOF(strLink));
+ sprintf_s(strLink, SIZEOF(strLink), "%.8lX%.8lX%.8lX%.8lX",
+ retNoteOID.File.Innards[1],
+ retNoteOID.File.Innards[0],
+ retNoteOID.Note.Innards[1],
+ retNoteOID.Note.Innards[0]
+ );
+
+ log_p(L"checkthread: got noteInfo, built link: %S", strLink);
+
+ field_len = (NSFItemGetText1) (note_handle, MAIL_FROM_ITEM, field_lotus_LMBCS, (WORD)sizeof(field_lotus_LMBCS));
+ (OSTranslate1)(OS_TRANSLATE_LMBCS_TO_UNICODE, field_lotus_LMBCS, field_len, field_lotus_UNICODEatCHAR, sizeof(field_lotus_UNICODEatCHAR));
+ memcpy(field_from_UNICODE, field_lotus_UNICODEatCHAR, field_len * sizeof(TCHAR));
+ field_from_UNICODE[field_len] = '\0';
+
+ (NSFItemGetTime1) (note_handle,MAIL_POSTEDDATE_ITEM,&sendDate);
+ error = (ConvertTIMEDATEToText1)(NULL, NULL, &sendDate, field_date, MAXALPHATIMEDATE, &field_len);
+ field_date[field_len] = '\0';
+
+ field_len = (NSFItemGetText1) (note_handle, MAIL_SUBJECT_ITEM, field_lotus_LMBCS, (WORD)sizeof(field_lotus_LMBCS));
+ (OSTranslate1)(OS_TRANSLATE_LMBCS_TO_UNICODE, field_lotus_LMBCS, field_len, field_lotus_UNICODEatCHAR, sizeof(field_lotus_UNICODEatCHAR));
+ memcpy(field_subject_UNICODE, field_lotus_UNICODEatCHAR, field_len * sizeof(TCHAR));
+ field_subject_UNICODE[field_len] = '\0';
+
+ field_len = (NSFItemGetText1) (note_handle, MAIL_SENDTO_ITEM, field_lotus_LMBCS, (WORD)sizeof (field_lotus_LMBCS));
+ (OSTranslate1)(OS_TRANSLATE_LMBCS_TO_UNICODE, field_lotus_LMBCS, field_len, field_lotus_UNICODEatCHAR, sizeof(field_lotus_UNICODEatCHAR));
+ memcpy(field_to_UNICODE, field_lotus_UNICODEatCHAR, field_len * sizeof(TCHAR));
+ field_to_UNICODE[field_len] = '\0';
+
+ field_len = (NSFItemGetText1) (note_handle, MAIL_COPYTO_ITEM, field_lotus_LMBCS, (WORD)sizeof (field_lotus_LMBCS));
+ (OSTranslate1)(OS_TRANSLATE_LMBCS_TO_UNICODE, field_lotus_LMBCS, field_len, field_lotus_UNICODEatCHAR, sizeof(field_lotus_UNICODEatCHAR));
+ memcpy(field_copy_UNICODE, field_lotus_UNICODEatCHAR, field_len * sizeof(TCHAR));
+ field_copy_UNICODE[field_len] = '\0';
+
+
+ WCHAR msgFrom[512];
+ WCHAR msgSubject[512];
+ ZeroMemory(msgFrom,512);
+ ZeroMemory(msgSubject,512);
+
+ if(wcslen(field_from_UNICODE) < 512 && wcslen(field_from_UNICODE) > 3 && wcsstr(field_from_UNICODE, L"CN=") == field_from_UNICODE){
+ _tcsncpy_s(msgFrom, SIZEOF(msgFrom), &(field_from_UNICODE[3]), wcscspn(field_from_UNICODE, L"/")-3 );
+ } else {
+ _tcsncpy_s(msgFrom, SIZEOF(msgFrom), field_from_UNICODE, _TRUNCATE);
+ }
+
+ for (Att = 0; (MailGetMessageAttachmentInfo1)(note_handle, Att,&bhAttachment, NULL, &cSize, NULL, NULL, NULL, NULL); Att++) {
+ attSize += cSize;
+ }
+
+ #ifdef _DEBUG
+ log_p(L"checkthread: MAIL INFO: date=[%S], from=[%s], to=[%s], cc=[%s], sub=[%s], attSize=[%d]"
+ ,field_date
+ ,field_from_UNICODE
+ ,field_to_UNICODE
+ ,field_copy_UNICODE
+ ,field_subject_UNICODE
+ ,attSize
+ );
+ #else
+ //do not put private user data into log
+ log_p(L"checkthread: MAIL INFO (sizes): date=[%S], from=[%d], to=[%d], cc=[%d], sub=[%d], attSize=[%d]"
+ ,field_date
+ ,wcslen(field_from_UNICODE)
+ ,wcslen(field_to_UNICODE)
+ ,wcslen(field_copy_UNICODE)
+ ,wcslen(field_subject_UNICODE)
+ ,attSize
+ );
+ #endif
+
+
+ if(attSize){
+ WCHAR field_attachments_UNICODE[MAX_FIELD];
+ swprintf_s(field_attachments_UNICODE, SIZEOF(field_attachments_UNICODE), TranslateW(L"Attachments: %d bytes"), attSize);
+ swprintf_s(msgSubject, SIZEOF(msgSubject), L"%S\n%s\n%s", field_date, field_subject_UNICODE, field_attachments_UNICODE );
+ } else {
+ swprintf_s(msgSubject, SIZEOF(msgSubject), L"%S\n%s", field_date, field_subject_UNICODE );
+ }
+
+ //check if this is not filtered msg
+ if( ! checkFilters(field_from_UNICODE, 0)
+ && ! checkFilters(field_subject_UNICODE, 1)
+ && ! checkFilters(field_to_UNICODE, 2)
+ && ! checkFilters(field_copy_UNICODE, 2))
+ {
+ log(L"checkthread: filters checked - positive");
+ ///TODO eliminate popups with blank fields
+ showMsg(msgFrom,msgSubject,noteID,strLink);
+ SkinPlaySound("LotusNotify");
+ } else {
+ log(L"checkthread: filters checked - negative");
+ }
+
+ if (error = (NSFNoteClose1) (note_handle)) {
+ continue;
+ }
+ log_p(L"checkthread: Close note id: %d", noteID);
+
+ }
+
+ if(error = (IDDestroyTable1) (hTable)){
+ goto errorblock0;
+ }
+ log(L"checkthread: Table destroyed");
+
+ if (error = (NSFDbClose1) (db_handle)){
+ goto errorblock;
+ }
+ log(L"checkthread: DB closed");
+
+ //NotesTerm();
+ (NotesTermThread1)();
+
+ log(L"checkthread: Terminating Notes thread");
+ running = FALSE;
+ if(currentStatus != ID_STATUS_OFFLINE){
+ LNEnableMenuItem(hMenuHandle, !running);
+ }
+ LeaveCriticalSection(&checkthreadCS);
+ return;
+
+errorblock0:
+ log(L"checkthread: errorblock0");
+ (NSFDbClose1) (db_handle);
+errorblock:
+ log_p(L"checkthread: errorblock. error=%d", error);
+ ErMsgByLotusCode(error);
+ //NotesTerm();
+ //if(currentStatus!=ID_STATUS_OFFLINE)
+ //LNEnableMenuItem(hMenuHandle,!running);
+ //SetStatus(ID_STATUS_OFFLINE,0);
+ running = FALSE;
+ LeaveCriticalSection(&checkthreadCS);
+ return;
+}
+
+
+//hooked notification from service that listning to check lotus
+static int eventCheck(WPARAM wParam,LPARAM lParam)
+{
+ log(L"check event...");
+ check();
+ return 0;
+}
+
+
+//on click to menu callback function
+INT_PTR PluginMenuCommand(WPARAM wParam, LPARAM lParam)
+{
+ NotifyEventHooks(hCheckEvent, wParam, lParam); //create event to check lotus
+ return 0;
+}
+
+
+//window timer callback function, called on timer event
+VOID CALLBACK atTime(HWND hWnd, UINT uMsg, UINT idEvent, DWORD dwTime)
+{
+ log(L"atTime: start");
+ BOOL b = KillTimer(hTimerWnd, idEvent);
+ if(currentStatus != ID_STATUS_OFFLINE) {
+ //if status lets to check
+ check();
+ if(settingInterval != 0){
+ log_p(L"atTime: SetTimer settingInterval=%d", settingInterval * 60000);
+ SetTimer(hTimerWnd, TID, settingInterval * 60000, (TIMERPROC)atTime);
+ }
+ }
+}
+
+
+void decodeServer(char *tmp)
+{
+ if (strstr(tmp,"CN=") && strstr(tmp,"OU=") && strstr(tmp,"O=")) {
+ //if lotus convention
+ while(strrep(tmp,"CN=",""));
+ while(strrep(tmp,"OU=",""));
+ while(strrep(tmp,"O=",""));
+ }
+}
+
+
+//fill combo in options dlgbox with all known servers
+void fillServersList(HWND hwndDlg)
+{
+ HANDLE hServerList=NULLHANDLE;
+ BYTE far *pServerList; /* Pointer to start of Server List */
+ WORD wServerCount; /* Number of servers in list. */
+ WORD far *pwServerLength; /* Index to array of servername lens */
+ BYTE far *pServerName;
+ STATUS error = NOERROR; /* Error return from API routines. */
+ char ServerString[MAXPATH]; /* String to hold server names. */
+ LPSTR szServerString = ServerString;
+ USHORT i;
+
+ if(!hLotusDll) {
+ return;
+ }
+
+ error = (NSGetServerList1)(NULL, &hServerList);
+ if (error == NOERROR) {
+
+ pServerList = (BYTE far *)(OSLockObject1)(hServerList);
+ wServerCount = (WORD) *pServerList;
+
+ pwServerLength = (WORD *)(pServerList + sizeof(WORD));
+
+ pServerName = (BYTE far *) pServerList + sizeof(wServerCount) +((wServerCount) * sizeof(WORD));
+
+ for (i=0; i<wServerCount; pServerName+=pwServerLength[i], i++)
+ {
+ memmove (szServerString, pServerName, pwServerLength[i]);
+ szServerString[pwServerLength[i]] = '\0';
+ decodeServer(ServerString);
+ SendDlgItemMessageA(hwndDlg, IDC_SERVER, CB_ADDSTRING, 0, (LPARAM)szServerString);
+ }
+ (OSUnlockObject1) (hServerList);
+ (OSMemFree1) (hServerList);
+
+ } else {
+ ErMsgByLotusCode(error);
+ }
+
+ return;
+}
+
+
+//gets default settings from notes.ini file
+void lookupLotusDefaultSettings(HWND hwndDlg)
+{
+ char tmp[MAXENVVALUE+1];
+ // Get the info from the .ini file
+ if(hLotusDll) {
+ if ((OSGetEnvironmentString1) ("MailFile", tmp, MAXENVVALUE)) //path to mail file
+ SetDlgItemTextA(hwndDlg, IDC_DATABASE, tmp); //and set fields in opt. dialog
+ if ((OSGetEnvironmentString1) ("MailServer", tmp, MAXENVVALUE)) //server name
+ {
+ decodeServer(tmp);
+ SetDlgItemTextA(hwndDlg, IDC_SERVER, tmp);
+ }
+ }
+
+}
+
+//get variables values stored in db.
+void LoadSettings()
+{
+ DBVARIANT dbv;
+ char buff[128];
+ int i=0;
+
+ settingInterval = (INT)db_get_dw(NULL, PLUGINNAME, "LNInterval", 15);
+ settingInterval1 = (INT)db_get_dw(NULL, PLUGINNAME, "LNInterval1", 0);
+ //if(!db_get(NULL, PLUGINNAME, "LNInterval1",&dbv))
+ // settingInterval1 = int(dbv.lVal);
+ //db_free(&dbv);
+ //settingInterval=dbv.lVal;
+ if(!db_get_s(NULL, PLUGINNAME, "LNDatabase", &dbv))
+ strncpy_s(settingDatabase, _countof(settingDatabase), dbv.pszVal, SIZEOF(settingDatabase));
+ db_free(&dbv);
+ if(!db_get_s(NULL, PLUGINNAME, "LNServer", &dbv))
+ strncpy_s(settingServer, _countof(settingServer), dbv.pszVal, SIZEOF(settingServer));
+ db_free(&dbv);
+ if(!db_get_s(NULL, PLUGINNAME, "LNServerSec", &dbv))
+ strncpy_s(settingServerSec, _countof(settingServerSec), dbv.pszVal, SIZEOF(settingServerSec));
+ db_free(&dbv);
+ if(!db_get(NULL, PLUGINNAME, "LNPassword", &dbv))
+ strncpy_s(settingPassword, _countof(settingPassword), dbv.pszVal, SIZEOF(settingPassword));
+ db_free(&dbv);
+ CallService(MS_DB_CRYPT_DECODESTRING, sizeof(settingPassword), (LPARAM)settingPassword);
+ if(!db_get_s(NULL, PLUGINNAME, "LNCommand", &dbv, DBVT_ASCIIZ))
+ strncpy_s(settingCommand, _countof(settingCommand), dbv.pszVal, SIZEOF(settingCommand));
+ db_free(&dbv);
+ if(!db_get_s(NULL, PLUGINNAME, "LNParameters", &dbv, DBVT_ASCIIZ))
+ strncpy_s(settingParameters, _countof(settingParameters), dbv.pszVal, SIZEOF(settingParameters));
+ db_free(&dbv);
+
+ if(!db_get_ts(NULL, PLUGINNAME, "LNFilterSender",&dbv))
+ _tcsncpy_s(settingFilterSender, SIZEOF(settingFilterSender), dbv.ptszVal, SIZEOF(settingFilterSender));
+ db_free(&dbv);
+ if(!db_get_ts(NULL, PLUGINNAME, "LNFilterSubject",&dbv))
+ _tcsncpy_s(settingFilterSubject, SIZEOF(settingFilterSubject), dbv.ptszVal, SIZEOF(settingFilterSubject));
+ db_free(&dbv);
+ if(!db_get_ts(NULL, PLUGINNAME, "LNFilterTo",&dbv))
+ _tcsncpy_s(settingFilterTo ,SIZEOF(settingFilterTo), dbv.ptszVal, SIZEOF(settingFilterTo));
+ db_free(&dbv);
+
+ settingOnceOnly = db_get_b (NULL, PLUGINNAME, "LNOnceOnly",0);
+
+ settingNonClickedOnly = db_get_b(NULL, PLUGINNAME, "LNNonClickedOnly", 1);
+ settingShowError = db_get_b(NULL, PLUGINNAME, "LNShowError", 1);
+ settingSetColours = db_get_b(NULL, PLUGINNAME, "LNSetColours", 0);
+ settingBgColor = (COLORREF)db_get_dw(NULL, PLUGINNAME, "LNBgColor", (DWORD)0xFFFFFF);
+ settingFgColor = (COLORREF)db_get_dw(NULL, PLUGINNAME, "LNFgColor", (DWORD)0x000000);
+ settingNewest = db_get_b(NULL, PLUGINNAME, "LNNewest", 0);
+ settingNewestID = (DWORD)db_get_dw(NULL, PLUGINNAME, "LNNewestID", 0);
+ settingIniAnswer = db_get_b(NULL, PLUGINNAME, "LNIniAnswer", 0);
+ settingIniCheck = db_get_b(NULL, PLUGINNAME, "LNIniCheck", 0);
+
+ for(i = 0; i < STATUS_COUNT; i++) {
+ sprintf_s(buff,_countof(buff), "LNStatus%d", i);
+ settingStatus[i] = (db_get_b(0, PLUGINNAME, buff, 0) == 1);
+ }
+ //lookupLotusDefaultSettings();
+}
+
+
+//callback function to speak with user interactions in options page
+BOOL CALLBACK DlgProcLotusNotifyOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ HWND hwndList;
+ switch(msg)
+ {
+ case WM_INITDIALOG://initialize dialog, so set properties from db.
+ {
+
+ LVCOLUMN lvc={0};
+ LVITEM lvI={0};
+ int i=0;
+ char* strptra;
+ char buffa[256];
+
+ TranslateDialogDefault(hwndDlg);//translate miranda function
+ mir_snprintf(buffa, sizeof(buffa), "%d.%d.%d.%d", HIBYTE(HIWORD(pluginInfo.version)), LOBYTE(HIWORD(pluginInfo.version)), HIBYTE(LOWORD(pluginInfo.version)), LOBYTE(LOWORD(pluginInfo.version)));
+ SetDlgItemTextA(hwndDlg, IDC_VERSION, buffa);
+ LoadSettings();
+ SetDlgItemTextA(hwndDlg, IDC_DATABASE, settingDatabase);
+ SetDlgItemTextA(hwndDlg, IDC_SERVER, settingServer);
+ SetDlgItemTextA(hwndDlg, IDC_SERVERSEC, settingServerSec);
+ SetDlgItemTextA(hwndDlg, IDC_PASSWORD, settingPassword);
+ SetDlgItemInt(hwndDlg, IDC_INTERVAL, settingInterval,FALSE);
+ SetDlgItemInt(hwndDlg, IDC_INTERVAL1, settingInterval1,TRUE);
+ SetDlgItemTextA(hwndDlg, IDC_COMMAND, settingCommand);
+ SetDlgItemTextA(hwndDlg, IDC_PARAMETERS, settingParameters);
+ CheckDlgButton(hwndDlg, IDC_ONCEONLY, settingOnceOnly);
+ CheckDlgButton(hwndDlg, IDC_SHOWERROR, settingShowError);
+ CheckDlgButton(hwndDlg, IDC_NEWEST, settingNewest);
+ CheckDlgButton(hwndDlg, IDC_NONCLICKEDONLY, settingNonClickedOnly);
+ CheckDlgButton(hwndDlg, IDC_BUTTON_CHECK, settingIniCheck );
+
+ if(!settingOnceOnly) {
+ HWND hwnd = GetDlgItem(hwndDlg, IDC_NONCLICKEDONLY);
+ EnableWindow(hwnd, FALSE);
+ }
+ CheckDlgButton(hwndDlg, IDC_SETCOLOURS, settingSetColours ? TRUE : FALSE);
+ SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_SETCOLOUR, 0, (LPARAM)settingBgColor);
+ SendDlgItemMessage(hwndDlg, IDC_FGCOLOR, CPM_SETCOLOUR, 0, (LPARAM)settingFgColor);
+ if(!settingSetColours) {
+ HWND hwnd = GetDlgItem(hwndDlg, IDC_BGCOLOR);
+ CheckDlgButton(hwndDlg, IDC_SETCOLOURS, FALSE);
+ EnableWindow(hwnd, FALSE);
+ hwnd = GetDlgItem(hwndDlg, IDC_FGCOLOR);
+ EnableWindow(hwnd, FALSE);
+ }
+
+
+ //SendDlgItemMessage(hwndDlg, IDC_SERVER, CB_SELECTSTRING ,-1,(LPARAM)(LPCSTR)settingServer);
+
+ // initialise and fill listbox
+ hwndList = GetDlgItem(hwndDlg, IDC_STATUS);
+ ListView_DeleteAllItems(hwndList);
+
+ SendMessage(hwndList,LVM_SETEXTENDEDLISTVIEWSTYLE, 0,LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);
+
+ // Initialize the LVCOLUMN structure.
+ // The mask specifies that the format, width, text, and
+ // subitem members of the structure are valid.
+ lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
+ lvc.fmt = LVCFMT_LEFT;
+
+ lvc.iSubItem = 0;
+ lvc.pszText = TranslateT("Status");
+ lvc.cx = 120; // width of column in pixels
+ ListView_InsertColumn(hwndList, 0, &lvc);
+
+ // Some code to create the list-view control.
+ // Initialize LVITEM members that are common to all items.
+ lvI.mask = LVIF_TEXT;
+ for(i = 0; i < STATUS_COUNT; i++) {
+ strptra = (char*)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, (WPARAM)(ID_STATUS_ONLINE + i), (LPARAM)0);
+ lvI.pszText = _A2T(strptra);
+ lvI.iItem = i;
+ ListView_InsertItem(hwndList, &lvI);
+ ListView_SetCheckState(hwndList, i, settingStatus[i]);
+ }
+
+ //fill filter combos
+ TCHAR buff[512];
+ TCHAR* strptr;
+
+ _tcsncpy_s(buff, SIZEOF(buff), settingFilterSender, SIZEOF(buff));
+ while(strptr = _tcschr(buff, TEXT(';'))) {
+ TCHAR tmp[512] = TEXT("");
+ _tcsncpy_s(tmp, SIZEOF(tmp), buff, (strptr-buff));
+ SendDlgItemMessage(hwndDlg, IDC_FILTER_SENDER , CB_ADDSTRING, 0, (LPARAM)tmp);
+ _tcsncpy_s(buff, SIZEOF(buff), strptr + 1, SIZEOF(buff));
+ }
+
+ _tcsncpy_s(buff, SIZEOF(buff), settingFilterSubject, SIZEOF(buff) );
+ while(strptr = _tcschr(buff, TEXT(';'))) {
+ TCHAR tmp[512] = TEXT("");
+ _tcsncpy_s(tmp, SIZEOF(tmp), buff, (strptr-buff));
+ SendDlgItemMessage(hwndDlg, IDC_FILTER_SUBJECT , CB_ADDSTRING, 0, (LPARAM)tmp);
+ _tcsncpy_s(buff, SIZEOF(buff), strptr + 1, SIZEOF(buff));
+ }
+
+ _tcsncpy_s(buff, SIZEOF(buff), settingFilterTo, SIZEOF(buff) );
+ while(strptr = _tcschr(buff, TEXT(';'))) {
+ TCHAR tmp[512] = TEXT("");
+ _tcsncpy_s(tmp, SIZEOF(tmp), buff, (strptr-buff));
+ SendDlgItemMessage(hwndDlg, IDC_FILTER_TO , CB_ADDSTRING, 0, (LPARAM)tmp);
+ _tcsncpy_s(buff, SIZEOF(buff), strptr + 1, SIZEOF(buff));
+ }
+
+ break;
+ }
+ case WM_COMMAND://user changed something, so get changes to variables
+ PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ switch(LOWORD(wParam))
+ {
+ case IDC_DATABASE: GetDlgItemTextA(hwndDlg, IDC_DATABASE, settingDatabase, sizeof(settingDatabase)); break;
+ case IDC_SERVER:
+ {
+ switch(HIWORD(wParam))
+ {
+ case CBN_SELCHANGE:
+ {
+ int i;
+ char text[MAXENVVALUE];
+ i=SendDlgItemMessage(hwndDlg,IDC_SERVER,CB_GETCURSEL,0,0);
+ SendDlgItemMessageA(hwndDlg,IDC_SERVER,CB_GETLBTEXT,(WPARAM)i,(LONG)/* (LPSTR) */text);
+ SetDlgItemTextA(hwndDlg,IDC_SERVER,text);
+ break;
+ }
+
+ //case CBN_EDITCHANGE:
+
+ case CBN_DROPDOWN:
+ {
+ SendDlgItemMessage(hwndDlg, IDC_SERVER, CB_RESETCONTENT ,0, 0);
+ fillServersList(hwndDlg);
+ SendDlgItemMessageA(hwndDlg, IDC_SERVER, CB_ADDSTRING, 0, (LPARAM)settingServer);
+ SendDlgItemMessageA(hwndDlg, IDC_SERVER, CB_SELECTSTRING , -1, (LPARAM)(LPCSTR)settingServer);
+ break;
+ }
+ }
+ }
+ case IDC_SERVERSEC: GetDlgItemTextA(hwndDlg, IDC_SERVERSEC, settingServerSec, sizeof(settingServerSec)); break;
+ case IDC_PASSWORD: GetDlgItemTextA(hwndDlg, IDC_PASSWORD, settingPassword, sizeof(settingPassword)); break;
+
+ case IDC_INTERVAL: settingInterval =GetDlgItemInt(hwndDlg, IDC_INTERVAL, NULL, FALSE); break;
+ case IDC_INTERVAL1: settingInterval1 =GetDlgItemInt(hwndDlg, IDC_INTERVAL1, NULL, TRUE); break;
+ case IDC_COMMAND: GetDlgItemTextA(hwndDlg, IDC_COMMAND, settingCommand, sizeof(settingCommand)); break;
+ case IDC_PARAMETERS: GetDlgItemTextA(hwndDlg, IDC_PARAMETERS, settingParameters, sizeof(settingParameters)); break;
+ case IDC_ONCEONLY:
+ {
+ HWND hwnd = GetDlgItem(hwndDlg, IDC_NONCLICKEDONLY);
+ settingOnceOnly=(BYTE) IsDlgButtonChecked(hwndDlg, IDC_ONCEONLY);
+ EnableWindow(hwnd, settingOnceOnly);
+ break;
+ }
+
+ case IDC_NONCLICKEDONLY: settingNonClickedOnly=(BYTE) IsDlgButtonChecked(hwndDlg, IDC_NONCLICKEDONLY); break;
+ case IDC_NEWEST: settingNewest =(BYTE) IsDlgButtonChecked(hwndDlg, IDC_NEWEST); break;
+ case IDC_SHOWERROR: settingShowError=(BYTE) IsDlgButtonChecked(hwndDlg, IDC_SHOWERROR); break;
+
+ case IDC_SETCOLOURS:
+ {
+ HWND hwnd = GetDlgItem(hwndDlg, IDC_BGCOLOR);
+ settingSetColours=IsDlgButtonChecked(hwndDlg, IDC_SETCOLOURS);
+ EnableWindow(hwnd,settingSetColours );
+ hwnd = GetDlgItem(hwndDlg, IDC_FGCOLOR);
+ EnableWindow(hwnd, settingSetColours);
+ break;
+ }
+ case IDC_BGCOLOR: settingBgColor = (COLORREF)SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0);break;
+ case IDC_FGCOLOR: settingFgColor = (COLORREF)SendDlgItemMessage(hwndDlg, IDC_FGCOLOR, CPM_GETCOLOUR, 0, 0);break;
+ case IDC_BUTTON_DETECT:
+ {
+ lookupLotusDefaultSettings(hwndDlg);
+ GetDlgItemTextA(hwndDlg, IDC_SERVER, settingServer, sizeof(settingServer));
+ GetDlgItemTextA(hwndDlg, IDC_DATABASE, settingDatabase, sizeof(settingDatabase));
+ break;
+ }
+ case IDC_BUTTON_CLEAR:
+ {
+ deleteElements();
+ break;
+ }
+ case IDC_BUTTON_CHECK:
+ {
+ settingIniCheck = (BYTE)IsDlgButtonChecked(hwndDlg, IDC_BUTTON_CHECK);
+ checkNotesIniFile(TRUE);
+ break;
+ }
+
+ case IDC_BUTTON_ADD_SENDER_FILTER:
+ {
+ char tmp[255];
+ GetDlgItemTextA(hwndDlg, IDC_FILTER_SENDER, tmp, sizeof(tmp));
+ SendDlgItemMessageA(hwndDlg, IDC_FILTER_SENDER, CB_ADDSTRING, 0, (LPARAM)tmp);
+ break;
+ }
+ case IDC_BUTTON_REMOVE_SENDER_FILTER:
+ {
+ SendDlgItemMessage(hwndDlg, IDC_FILTER_SENDER, CB_DELETESTRING, 0, (LPARAM)SendDlgItemMessage(hwndDlg,IDC_FILTER_SENDER ,CB_GETCURSEL,0,0));
+ break;
+ }
+ case IDC_BUTTON_ADD_SUBJECT_FILTER:
+ {
+ char tmp[255];
+ GetDlgItemTextA(hwndDlg, IDC_FILTER_SUBJECT, tmp, sizeof(tmp));
+ SendDlgItemMessageA(hwndDlg, IDC_FILTER_SUBJECT, CB_ADDSTRING, 0, (LPARAM)tmp);
+ break;
+ }
+ case IDC_BUTTON_REMOVE_SUBJECT_FILTER:
+ {
+ SendDlgItemMessage(hwndDlg, IDC_FILTER_SUBJECT, CB_DELETESTRING, 0, (LPARAM)SendDlgItemMessage(hwndDlg,IDC_FILTER_SUBJECT ,CB_GETCURSEL,0,0));
+ break;
+ }
+ case IDC_BUTTON_ADD_TO_FILTER:
+ {
+ char tmp[255];
+ GetDlgItemTextA(hwndDlg, IDC_FILTER_TO, tmp, sizeof(tmp));
+ SendDlgItemMessageA(hwndDlg, IDC_FILTER_TO, CB_ADDSTRING, 0, (LPARAM)tmp);
+ break;
+ }
+ case IDC_BUTTON_REMOVE_TO_FILTER:
+ {
+ SendDlgItemMessage(hwndDlg, IDC_FILTER_TO, CB_DELETESTRING, 0, (LPARAM)SendDlgItemMessage(hwndDlg,IDC_FILTER_SUBJECT ,CB_GETCURSEL,0,0));
+ break;
+ }
+
+
+ }
+ break;
+
+ case WM_NOTIFY://apply changes so write it to db
+ switch(((LPNMHDR)lParam)->idFrom)
+ {
+ case 0:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_RESET:
+ LoadSettings();
+ return TRUE;
+ case PSN_APPLY:
+
+ {
+ char buff[128];
+ int i=0;
+ GetDlgItemTextA(hwndDlg, IDC_SERVER, settingServer, sizeof(settingServer));
+ db_set_s(NULL, PLUGINNAME, "LNServer", settingServer );
+ db_set_s(NULL, PLUGINNAME, "LNServerSec", settingServerSec);
+ CallService(MS_DB_CRYPT_ENCODESTRING, sizeof(settingPassword), (LPARAM) settingPassword);
+ db_set_s(NULL, PLUGINNAME, "LNPassword", settingPassword);
+ CallService(MS_DB_CRYPT_DECODESTRING, sizeof(settingPassword), (LPARAM) settingPassword);
+ db_set_s(NULL, PLUGINNAME, "LNDatabase", settingDatabase);
+ db_set_dw (NULL, PLUGINNAME, "LNInterval", settingInterval);
+ db_set_dw (NULL, PLUGINNAME, "LNInterval1", settingInterval1);
+ db_set_s(NULL, PLUGINNAME, "LNCommand", settingCommand );
+ db_set_s(NULL, PLUGINNAME, "LNParameters", settingParameters);
+ db_set_b(NULL, PLUGINNAME, "LNOnceOnly", settingOnceOnly);
+ db_set_b(NULL, PLUGINNAME, "LNNonClickedOnly", settingNonClickedOnly);
+ db_set_b(NULL, PLUGINNAME, "LNShowError", settingShowError);
+ db_set_b(NULL, PLUGINNAME, "LNSetColours", settingSetColours);
+ db_set_dw(NULL, PLUGINNAME, "LNBgColor", (DWORD)settingBgColor);
+ db_set_dw(NULL, PLUGINNAME, "LNFgColor", (DWORD)settingFgColor);
+ db_set_b(NULL, PLUGINNAME, "LNNewest", settingNewest);
+ db_set_b(NULL, PLUGINNAME, "LNIniCheck", settingIniCheck);
+ db_set_b(NULL, PLUGINNAME, "LNIniAnswer", settingIniAnswer);
+
+ for(i = 0; i < STATUS_COUNT ; i++){
+ sprintf_s(buff,_countof(buff), "LNStatus%d", i);
+ settingStatus[i] = (ListView_GetCheckState(GetDlgItem(hwndDlg, IDC_STATUS), i) ? TRUE : FALSE);
+ db_set_b(0, PLUGINNAME, buff, settingStatus[i] ? 1 : 0);
+ }
+
+ _tcsncpy_s(settingFilterSender, SIZEOF(settingFilterSender), TEXT(""), SIZEOF(settingFilterSender));
+ for(i=0; i<SendDlgItemMessage(hwndDlg, IDC_FILTER_SENDER, CB_GETCOUNT, (WPARAM)0, (LONG)0); i++){
+ TCHAR text[512] = TEXT("");
+ SendDlgItemMessage(hwndDlg,IDC_FILTER_SENDER ,CB_GETLBTEXT,(WPARAM)i,(LONG) (LPSTR)text);
+ _tcscat_s(settingFilterSender, SIZEOF(settingFilterSender), text);
+ _tcscat_s(settingFilterSender, SIZEOF(settingFilterSender), TEXT(";"));
+ }
+ db_set_ts(NULL, PLUGINNAME, "LNFilterSender", settingFilterSender);
+
+ _tcsncpy_s(settingFilterSubject, SIZEOF(settingFilterSubject), TEXT(""),SIZEOF(settingFilterSubject));
+ for(i=0; i<SendDlgItemMessage(hwndDlg, IDC_FILTER_SUBJECT, CB_GETCOUNT, (WPARAM)0, (LONG)0); i++){
+ TCHAR text[512] = TEXT("");
+ SendDlgItemMessage(hwndDlg,IDC_FILTER_SUBJECT ,CB_GETLBTEXT,(WPARAM)i,(LONG) (LPSTR)text);
+ _tcscat_s(settingFilterSubject, SIZEOF(settingFilterSubject), text);
+ _tcscat_s(settingFilterSubject, SIZEOF(settingFilterSubject), TEXT(";"));
+ }
+ db_set_ts(NULL, PLUGINNAME, "LNFilterSubject", settingFilterSubject);
+
+ _tcsncpy_s(settingFilterTo, SIZEOF(settingFilterTo), TEXT(""),SIZEOF(settingFilterTo));
+ for(i=0; i<SendDlgItemMessage(hwndDlg, IDC_FILTER_TO, CB_GETCOUNT, (WPARAM)0, (LONG)0); i++){
+ TCHAR text[512] = TEXT("");
+ SendDlgItemMessage(hwndDlg,IDC_FILTER_TO ,CB_GETLBTEXT,(WPARAM)i,(LONG) (LPSTR)text);
+ _tcscat_s(settingFilterTo, SIZEOF(settingFilterTo), text);
+ _tcscat_s(settingFilterTo, SIZEOF(settingFilterTo), TEXT(";"));
+ }
+ db_set_ts(NULL, PLUGINNAME, "LNFilterTo", settingFilterTo);
+
+ }
+
+
+ return TRUE;
+ break;
+ }
+ //KillTimer(hTimerWnd,TID);
+ //if(settingInterval!=0)
+ // SetTimer(hTimerWnd, TID, settingInterval*60000, (TIMERPROC)atTime);
+
+ break;
+ } //case 0
+ } //id from
+
+ if (GetDlgItem(hwndDlg, IDC_STATUS) == ((LPNMHDR) lParam)->hwndFrom){
+ switch (((LPNMHDR) lParam)->code)
+ {
+ case LVN_ITEMCHANGED:
+ {
+ NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam;
+ if((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK){
+ SendMessage( GetParent(hwndDlg), PSM_CHANGED, 0, 0 );
+ }
+ break;
+
+ }
+ break;
+ }
+ }
+ break; //switch(msg)
+
+
+ }
+ return FALSE;
+}
+
+
+//options page on miranda called
+int LotusNotifyOptInit(WPARAM wParam,LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp;
+ ZeroMemory(&odp,sizeof(odp));
+ odp.cbSize = sizeof(odp);
+ odp.hInstance = hInst;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_DIALOG);
+ odp.ptszTitle = _A2T(PLUGINNAME);
+ odp.ptszGroup = TranslateT("Plugins");
+ odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
+ odp.pfnDlgProc = (DLGPROC)DlgProcLotusNotifyOpts; //callback function name
+ Options_AddPage(wParam, &odp); //add page to options menu pages
+ return 0;
+}
+
+
+//gives protocol avainable statuses
+INT_PTR GetCaps(WPARAM wParam, LPARAM lParam)
+{
+ if(wParam == PFLAGNUM_1)
+ return 0;
+ if(wParam == PFLAGNUM_2)
+ return PF2_ONLINE; // add the possible statuses here.
+ if(wParam == PFLAGNUM_3)
+ return 0;
+ return 0;
+}
+
+
+//gives name to protocol module
+INT_PTR GetName(WPARAM wParam, LPARAM lParam)
+{
+ strncpy((char*)lParam, PLUGINNAME, wParam);
+ return 0;
+}
+
+
+//gives icon for proto module
+INT_PTR TMLoadIcon(WPARAM wParam, LPARAM lParam)
+{
+ UINT id;
+
+ switch(wParam & 0xFFFF) {
+ case PLI_ONLINE:
+ case PLI_PROTOCOL: id=IDI_ICON1; break; // IDI_TM is the main icon for the protocol
+ case PLI_OFFLINE: id=IDI_ICON2; break;
+ default: return 0;
+ }
+ return (int)LoadImage(hInst, MAKEINTRESOURCE(id), IMAGE_ICON, GetSystemMetrics(wParam&PLIF_SMALL?SM_CXSMICON:SM_CXICON), GetSystemMetrics(wParam&PLIF_SMALL?SM_CYSMICON:SM_CYICON), 0);
+}
+
+
+INT_PTR SetStatus(WPARAM wParam, LPARAM lParam)
+{
+
+ if (wParam == ID_STATUS_OFFLINE){
+
+ // the status has been changed to online (maybe run some more code)
+ LNEnableMenuItem(hMenuHandle, FALSE);
+ diffstat = 0;
+
+ } else if (wParam == ID_STATUS_ONLINE){
+
+ diffstat = 0;
+ //LNEnableMenuItem(hMenuHandle ,TRUE);
+ //NotifyEventHooks(hCheckEvent,wParam,lParam);
+ // the status has been changed to offline (maybe run some more code)
+ if (currentStatus != ID_STATUS_ONLINE){
+ if(startuperror){
+ int cnt;
+ for(cnt=0; cnt<=4; cnt++)
+ if(startuperror >> cnt & 1)
+ ErMsgT(TranslateTS(startuperrors[cnt]));
+ return 1;
+ }
+
+ if(check() == 0){
+ if(settingInterval != 0)
+ SetTimer(hTimerWnd, TID, settingInterval * 60000, (TIMERPROC)atTime);
+ LNEnableMenuItem(hMenuHandle, TRUE);
+ } else {
+ ProtoBroadcastAck(PLUGINNAME, NULL, ACKTYPE_STATUS, ACKRESULT_FAILED, (HANDLE)currentStatus, wParam);
+ return -1;
+ }
+ }
+ } else {
+
+ int retv = 0;
+ if(settingStatus[wParam - ID_STATUS_ONLINE])
+ retv = SetStatus(ID_STATUS_OFFLINE, lParam);
+ else
+ retv = SetStatus(ID_STATUS_ONLINE, lParam);
+ //LNEnableMenuItem(hMenuHandle ,TRUE);
+ diffstat = wParam;
+ return retv;
+ // the status has been changed to unknown (maybe run some more code)
+
+ }
+
+ //broadcast the message
+ if(currentStatus != wParam)
+ ProtoBroadcastAck(PLUGINNAME,NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)currentStatus, wParam);
+ currentStatus = wParam;
+
+ return 0;
+}
+
+
+void checkEnvPath(TCHAR *path)
+{
+
+ TCHAR *cur;
+ TCHAR nowy[2048]={0};
+ TCHAR *found;
+ int len;
+
+ log_p(L"checkEnvPath: [%s]", path);
+
+ _tcslwr(path);
+ cur = _tgetenv(_T("PATH"));
+ _tcslwr(cur);
+ found = _tcsstr(cur,path);
+ len = (int)_tcslen(path);
+ if(found != NULL && (found[len] == ';' || found[len] == 0 || (found[len] == '\\' && (found[len+1] == ';' || found[len+1] == 0)))) {
+ return;
+ }
+
+ assert(_tcslen(path) + _tcslen(cur) + 1 < SIZEOF(nowy));
+ _tcsncpy_s(nowy, _countof(nowy), _T("PATH="), SIZEOF(nowy));
+ _tcscat_s(nowy, _countof(nowy), cur);
+ if(cur[_tcslen(cur)-1]!=';')
+ _tcscat_s(nowy, _countof(nowy), _T(";"));
+ _tcscat_s(nowy, _countof(nowy), path);
+ _tcscat_s(nowy, _countof(nowy), _T(";"));
+
+ _tputenv(nowy);
+
+}
+
+
+//GetStatus
+INT_PTR GetStatus(WPARAM wParam, LPARAM lParam)
+{
+ return currentStatus;
+ if (diffstat)
+ return diffstat;
+ else
+ return currentStatus ;
+}
+
+
+//called after all plugins loaded.
+//all lotus staff will be called, that will not hang miranda on startup
+static int modulesloaded(WPARAM wParam, LPARAM lParam)
+{
+ int cnt;
+ TCHAR path[255] = {0};
+
+ log(L"Modules loaded, lets start LN...");
+
+ GetLotusPath(path, sizeof(path));
+ checkEnvPath(path);
+ _tcscat_s(path, _countof(path), _T("nnotes.dll"));
+ assert(_tcslen(path)>0);
+
+ log_p(L"Loading dll: %s", path);
+
+ hLotusDll = LoadLibrary(path);
+ assert(hLotusDll);
+ if(hLotusDll != NULL) {
+
+ log(L"Loading LN Functions");
+
+ if(!HookLotusFunctions()) {
+ FreeLibrary(hLotusDll);
+ startuperror += 1;
+ } else {
+
+ log(L"Initializing Lotus");
+
+ if((NotesInitExtended1) (__argc, __argv)){
+
+ //initialize lotus //TODO: Lotus can terminate miranda process here with msgbox "Shared Memory from a previous Notes/Domino run has been detected, this process will exit now"
+ startuperror += 4;
+ running = TRUE;
+ LNEnableMenuItem(hMenuHandle, !running);//disable menu cause lotus is not initialized
+
+ } else {
+
+ log(L"Checking Notes Ini File");
+ if (!checkNotesIniFile(FALSE)) {
+ startuperror += 16;
+ }
+ }
+ }
+
+ } else {
+ startuperror += 2;
+ }
+
+ assert(startuperror==0);
+ for(cnt=0; cnt<=4; cnt++)
+ {
+ if(startuperror >> cnt & 1)
+ ErMsgT(TranslateTS(startuperrors[cnt]));
+ }
+
+ return 0;
+}
+
+
+//function hooks before unload
+static int preshutdown(WPARAM wParam,LPARAM lParam)
+{
+ Plugin_Terminated = true;
+ deleteElements();
+ if(hLotusDll){
+ (NotesTerm1)();
+ FreeLibrary(hLotusDll);
+ }
+ return 0;
+}
+
+
+extern "C" int __declspec(dllexport) Load(void)
+{
+
+ Plugin_Terminated = false;
+ InitializeCriticalSection(&checkthreadCS);
+
+ //if(pluginLink)//strange, but this function is called by Lotus API Extension Manager (instead of MainEntryPoint) probably always with parameter poiter =1
+ if(bMirandaCall){
+ STATUS rc;
+ rc = EMRegister1 (EM_GETPASSWORD, EM_REG_BEFORE | EM_REG_AFTER, EMCallBack, 0, &hLotusRegister); //Extension Manager must know that we are here
+ if(rc){
+ //Extension magager don't know who we are :(
+ startuperror+=8;
+ // Get the info from the .ini file
+ }
+ //log_p(L"Load: Registered Ext. Mngr. res=%d", rc);
+ return rc;
+ }
+ bMirandaCall=TRUE;
+
+
+ init_pluginname();
+ logRegister();
+ log_p(L"Load: Entering LotusNotify.dll Load() bMirandaCall=%d PLUGINNAME=[%S]", bMirandaCall, PLUGINNAME);
+
+
+ if(!(hCheckEvent = CreateHookableEvent("LotusNotify/Check"))) //check if there is another copy of plugin running
+ {
+ second = TRUE;
+ }
+
+ hCheckHook = HookEvent("LotusNotify/Check", eventCheck); //hook function to menu click event
+
+ if(!second) //if its first plugin instance
+ {
+ //function that will be called on menu click
+ hMenuService = CreateServiceFunction("LotusNotify/MenuCommand", PluginMenuCommand);
+
+ CLISTMENUITEM mi = { sizeof(mi) };
+ mi.position = -0x7FFFFFFF; //on top menu position
+ mi.flags = CMIF_TCHAR;
+ mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
+ mi.ptszName = TranslateT("&Check Lotus");
+ mi.pszService = "LotusNotify/MenuCommand"; //service name thet listning for menu call
+ hMenuHandle = Menu_AddMainMenuItem(&mi); //create menu pos.
+
+ LNEnableMenuItem(hMenuHandle ,FALSE);
+ }
+
+ //create protocol
+ PROTOCOLDESCRIPTOR pd = {PROTOCOLDESCRIPTOR_V3_SIZE};
+ pd.szName = PLUGINNAME;
+ pd.type = PROTOTYPE_PROTOCOL;
+ CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd);
+
+ //set all contacts to offline ///TODO: are that contacts exists ?
+ for(HANDLE hContact = db_find_first(PLUGINNAME); hContact; hContact = db_find_next(hContact, PLUGINNAME)){
+ db_set_w(hContact, PLUGINNAME, "status", ID_STATUS_OFFLINE);
+ }
+
+ char service[100] = {""};
+ _snprintf_s(service,_countof(service), sizeof(service), "%s%s", PLUGINNAME, PS_GETCAPS);
+ CreateServiceFunction(service, GetCaps);
+ _snprintf_s(service,_countof(service), sizeof(service), "%s%s", PLUGINNAME, PS_GETNAME);
+ CreateServiceFunction(service, GetName);
+ _snprintf_s(service,_countof(service), sizeof(service), "%s%s", PLUGINNAME, PS_LOADICON);
+ CreateServiceFunction(service, TMLoadIcon);
+ _snprintf_s(service,_countof(service), sizeof(service), "%s%s", PLUGINNAME, PS_SETSTATUS);
+ CreateServiceFunction(service, SetStatus);
+ _snprintf_s(service,_countof(service), sizeof(service), "%s%s", PLUGINNAME, PS_GETSTATUS);
+ CreateServiceFunction(service, GetStatus);
+
+ LoadSettings(); //read from db to variables
+
+ SkinAddNewSound("LotusNotify", Translate("LotusNotify: New Lotus document detected"), NULL);
+
+ hOptInit = HookEvent(ME_OPT_INITIALISE, LotusNotifyOptInit); //register service to hook option call
+ assert(hOptInit);
+ hHookModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, modulesloaded); //hook event that all plugins are loaded
+ assert(hHookModulesLoaded);
+ hHookPreShutdown = HookEvent(ME_SYSTEM_PRESHUTDOWN, preshutdown);
+ assert(hHookPreShutdown);
+
+ log(L"Load: ok");
+ return 0;
+}
+
+
+extern "C" int __declspec(dllexport) Unload()
+{
+
+ log(L"Unload: start");
+ Plugin_Terminated = true;
+ EnterCriticalSection(&checkthreadCS);
+ LeaveCriticalSection(&checkthreadCS);
+ DeleteCriticalSection(&checkthreadCS);
+
+ if (hMenuService) DestroyServiceFunction(hMenuService);
+ if (hCheckEvent) DestroyHookableEvent(hCheckEvent);
+ if (hOptInit) UnhookEvent(hOptInit);
+ if (hCheckHook) UnhookEvent(hCheckHook);
+ if (hHookModulesLoaded) UnhookEvent(hHookModulesLoaded);
+ if (hHookPreShutdown) UnhookEvent(hHookPreShutdown);
+
+ log(L"Unload: ok");
+ logUnregister();
+
+ return 0;
+}
+
+
+extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+#ifdef WIN64
+ MessageBox(NULL
+ , (LPCWSTR)L"LotusNotify.dll can not work with 64bit Miranda. (Lotus client is 32bit only)"
+ , (LPCWSTR)L"LotusNotify"
+ , MB_OK | MB_ICONWARNING );
+ return NULL;
+#else
+ pluginInfo.cbSize=sizeof(PLUGININFOEX);
+ return &pluginInfo;
+#endif
+}
+
+
+extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_LOTUSNOTIFY, MIID_PROTOCOL, MIID_LAST};
+
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
+{
+
+ switch (dwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ /* Save the instance handle */
+ Plugin_Terminated = false;
+ hInst = hinstDLL;
+ break;
+ case DLL_PROCESS_DETACH:
+ /* Deregister extension manager callbacks */
+ Plugin_Terminated = true;
+ ExtClear();
+ break;
+ }
+ return TRUE;
+}
+
+
diff --git a/plugins/LotusNotify/src/LotusNotify.h b/plugins/LotusNotify/src/LotusNotify.h
new file mode 100644
index 0000000000..daa9c417b4
--- /dev/null
+++ b/plugins/LotusNotify/src/LotusNotify.h
@@ -0,0 +1,32 @@
+
+struct HISTORIA
+{
+ DWORD noteID;
+ BOOL clicked;
+ BOOL again;
+ struct HISTORIA *next;
+ struct POPUPSQUEUE *pq;
+};
+
+struct POPUPSQUEUE
+{
+ HWND hWnd;
+ struct POPUPSQUEUE *next;
+};
+
+#if !defined(MIID_LOTUSNOTIFY)
+ #define MIID_LOTUSNOTIFY {0x127faa08, 0x54d0, 0x4f99, { 0x8a, 0x50, 0x6b, 0x5f, 0xd8, 0x92, 0x42, 0xec } }
+#endif
+// {127FAA08-54D0-4f99-8A50-6B5FD89242EC}
+
+//structure contines only LN msg id to send to popup
+typedef struct {
+ DWORD id;
+ char strNote[4*16];
+} POPUPATT;
+
+__declspec(dllexport) STATUS LNPUBLIC MainEntryPoint (void);
+
+void ErMsgT(TCHAR* msg);
+
+void checkthread(void*);
diff --git a/plugins/LotusNotify/src/cnotesapi/include/bsafeerr.h b/plugins/LotusNotify/src/cnotesapi/include/bsafeerr.h
new file mode 100644
index 0000000000..12471a3e9e
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/bsafeerr.h
@@ -0,0 +1,931 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+#ifndef BSAFE_ERR_DEFS
+#define BSAFE_ERR_DEFS
+
+
+/* BSAFE (Security package) Error Code Definitions */
+
+#define ERR_BSAFE_PSW_PROMPT (PKG_BSAFE+0)
+#ifdef OS400
+ errortext(ERR_BSAFE_PSW_PROMPT, "Enter password (press the F3 key to abort): ")
+#else
+ errortext(ERR_BSAFE_PSW_PROMPT, "Enter password (press the Esc key to abort): ")
+#endif
+#define ERR_BSAFE_FALSE (PKG_BSAFE+1)
+ internaltext(ERR_BSAFE_FALSE, "Do not suspend operation")
+#define ERR_BSAFE_ALLOCATE (PKG_BSAFE+2)
+ internaltext(ERR_BSAFE_ALLOCATE, "Error allocating security block")
+#define ERR_BSAFE_FREE (PKG_BSAFE+3)
+ internaltext(ERR_BSAFE_FREE, "Error freeing security block")
+#define ERR_BSAFE_ENTRY (PKG_BSAFE+4)
+ internaltext(ERR_BSAFE_ENTRY, "Error initializing security block")
+#define ERR_BSAFE_EXIT (PKG_BSAFE+5)
+ internaltext(ERR_BSAFE_EXIT, "Error cleaning up security block")
+#define ERR_BSAFE_PAUSE (PKG_BSAFE+6)
+ internaltext(ERR_BSAFE_PAUSE, "Security operation temporarily suspended")
+#define ERR_BSAFE_BADKEY (PKG_BSAFE+7)
+ errortext(ERR_BSAFE_BADKEY, "The encrypted data has been modified or the wrong key was used to decrypt it")
+#define ERR_BSAFE_BADCTX (PKG_BSAFE+8)
+ errortext(ERR_BSAFE_BADCTX, "Bad Security Context information")
+#define ERR_BSAFE_BADOPCODE (PKG_BSAFE+9)
+ errortext(ERR_BSAFE_BADOPCODE, "Illegal Security function code")
+#define ERR_BSAFE_BADCHECKSUM (PKG_BSAFE+10)
+ errortext(ERR_BSAFE_BADCHECKSUM, "The encrypted data has been modified or the wrong key was used to decrypt it")
+#define ERR_BSAFE_BADDATA (PKG_BSAFE+11)
+ errortext(ERR_BSAFE_BADDATA, "The encrypted data has been modified or the wrong key was used to decrypt it")
+
+#define ERR_BSAFE_BUG_1 (PKG_BSAFE+12)
+ errortext(ERR_BSAFE_BUG_1, "BSAFE package software error #1")
+#define ERR_BSAFE_POOLFULL (PKG_BSAFE+13)
+ errortext(ERR_BSAFE_POOLFULL, "Insufficient memory - BSAFE pool is full")
+
+#define ERR_BSAFE_CACHEFULL (PKG_BSAFE+14)
+ errortext(ERR_BSAFE_CACHEFULL, "Insufficient memory - BSAFE Name lookup cache is full")
+
+#define ERR_BSAFE_TOOSMALL (PKG_BSAFE+15)
+ errortext(ERR_BSAFE_TOOSMALL, "Buffer used to receive cryptographic output was too small")
+#define ERR_BSAFE_BAD_ATTRIBUTES (PKG_BSAFE+16)
+ errortext(ERR_BSAFE_BAD_ATTRIBUTES, "Inconsistent name attributes")
+#define ERR_BSAFE_MDLENGTH (PKG_BSAFE+17)
+ errortext(ERR_BSAFE_MDLENGTH, "Bad Message Digest length")
+#define ERR_BSAFE_NOT_ALLOWED (PKG_BSAFE+18)
+ errortext(ERR_BSAFE_NOT_ALLOWED, "Attempted encryption operation is not supported by this version of Notes.")
+#define ERR_BSAFE_ILLEGAL_IDFILE (PKG_BSAFE+19)
+ errortext(ERR_BSAFE_ILLEGAL_IDFILE, "The specified ID file may only be used inside of North America.")
+#define ERR_BSAFE_BAD_PI_VERSION (PKG_BSAFE+20)
+ errortext(ERR_BSAFE_BAD_PI_VERSION, "The public key or certificate version stored in the Address Book is not supported.")
+#define ERR_BSAFE_BAD_PI_CHECKSUM (PKG_BSAFE+21)
+ errortext(ERR_BSAFE_BAD_PI_CHECKSUM, "The public key or certificate stored in the Address Book has been corrupted.")
+#define ERR_BSAFE_MISSING_PI (PKG_BSAFE+22)
+ errortext(ERR_BSAFE_MISSING_PI, "There is no certificate in the Address Book.")
+#define ERR_BSAFE_TABLE_MUST_BE_HI (PKG_BSAFE+23)
+ errortext(ERR_BSAFE_TABLE_MUST_BE_HI, "The supplied certificate table does not contain any hierarchical certificates")
+#define ERR_BSAFE_NO_COMMON_CERT (PKG_BSAFE+24)
+ errortext(ERR_BSAFE_NO_COMMON_CERT, "No certificates in common")
+#define ERR_BSAFE_CERTTABLE_VERSION (PKG_BSAFE+25)
+ errortext(ERR_BSAFE_CERTTABLE_VERSION, "Unrecognized certificate table version")
+#define ERR_BSAFE_ILLUSE_GENID (PKG_BSAFE+26)
+ errortext(ERR_BSAFE_ILLUSE_GENID, "Illegal use of an ID generator file")
+#define ERR_BSAFE_NOT_GENID (PKG_BSAFE+27)
+ errortext(ERR_BSAFE_NOT_GENID, "Specified file is not an ID generator file")
+#define ERR_BSAFE_NOSUCH_PRVKEY (PKG_BSAFE+28)
+ errortext(ERR_BSAFE_NOSUCH_PRVKEY, "Specified private key does not exist")
+#define ERR_BSAFE_NOSUCH_ESCROW (PKG_BSAFE+29)
+ errortext(ERR_BSAFE_NOSUCH_ESCROW, "This version of the software does not know the key of a required escrow authority")
+#define ERR_BSAFE_NETFILE (PKG_BSAFE+30)
+ errortext(ERR_BSAFE_NETFILE, "WARNING: Network-based ID files should be password protected!")
+#define ERR_BSAFE_BAD_IDFILE_VERSION (PKG_BSAFE+31)
+ errortext(ERR_BSAFE_BAD_IDFILE_VERSION, "Unsupported ID file version.")
+#define ERR_BSAFE_NOSUCH_PUBKEY (PKG_BSAFE+32)
+ errortext(ERR_BSAFE_NOSUCH_PUBKEY, "Specified public key does not exist")
+#define ERR_BSAFE_PROC_NOT_INITED (PKG_BSAFE+33)
+ errortext(ERR_BSAFE_PROC_NOT_INITED, "Process has not initialized with the security package")
+#define ERR_BSAFE_SUBPROCESS (PKG_BSAFE+34)
+ errortext(ERR_BSAFE_SUBPROCESS, "A sub-process cannot change to a new ID file or prompt for passwords.")
+#define ERR_BSAFE_NOMEMORY (PKG_BSAFE+35)
+ errortext(ERR_BSAFE_NOMEMORY, "Insufficient memory for attempted security operation.")
+#define ERR_BSAFE_ILLFUNC (PKG_BSAFE+36)
+ debugtext(ERR_BSAFE_ILLFUNC, "Unknown security function code.")
+#define ERR_BSAFE_NULLPARAM (PKG_BSAFE+37)
+ debugtext(ERR_BSAFE_NULLPARAM, "Illegal null parameter passed to security function.")
+#define ERR_BSAFE_INVALID_XCERT (PKG_BSAFE+38)
+ errortext(ERR_BSAFE_INVALID_XCERT, "Invalid Cross Certificate was found for %a. This could be a possible attack, please notify your administrator. Select 'Yes' to keep the current existing Cross Certificate")
+#define ERR_BSAFE_ILLUSE_SAFECOPY (PKG_BSAFE+39)
+ errortext(ERR_BSAFE_ILLUSE_SAFECOPY, "The ID file is a safe copy and cannot be used for that purpose.")
+#define ERR_BSAFE_USER_ABORT (PKG_BSAFE+40)
+ errortext(ERR_BSAFE_USER_ABORT, "The prompt for password was aborted by user")
+#define ERR_BSAFE_ID_PROTECTED (PKG_BSAFE+41)
+ errortext(ERR_BSAFE_ID_PROTECTED, "Cannot access or create the ID file")
+#define ERR_BSAFE_ID_CREATE (PKG_BSAFE+42)
+ errortext(ERR_BSAFE_ID_CREATE, "ID file cannot be created")
+
+#define ERR_BSAFE_ID_TRUNC (PKG_BSAFE+43)
+ errortext(ERR_BSAFE_ID_TRUNC, "The specified ID file has been corrupted, or is not an ID file")
+#define ERR_BSAFE_CORRUPTIDFILE ERR_BSAFE_ID_TRUNC
+
+#define ERR_BSAFE_ID_INVFILENAME (PKG_BSAFE+44)
+ errortext(ERR_BSAFE_ID_INVFILENAME, "Illegal ID file name: too long or uses invalid syntax")
+#define ERR_BSAFE_ID_WRITETRUNC (PKG_BSAFE+45)
+ errortext(ERR_BSAFE_ID_WRITETRUNC, "Cannot write to ID file; either it is READ-ONLY or the disk is out of space")
+#define ERR_BSAFE_ID_INVDRIVE (PKG_BSAFE+46)
+ errortext(ERR_BSAFE_ID_INVDRIVE, "Invalid drive specified for ID file")
+#define ERR_BSAFE_NON_EXISTENT (PKG_BSAFE+47)
+ errortext(ERR_BSAFE_NON_EXISTENT, "The requested item does not exist")
+#define ERR_BSAFE_NEK_NOT_FOUND (PKG_BSAFE+48)
+ errortext(ERR_BSAFE_NEK_NOT_FOUND, "You don't have any of the specified encryption keys")
+#define ERR_BSAFE_KEY_NOT_FOUND (PKG_BSAFE+49)
+ errortext(ERR_BSAFE_KEY_NOT_FOUND, "The cryptographic key was not found")
+#define ERR_BSAFE_KEY_INV_FORMAT (PKG_BSAFE+50)
+ errortext(ERR_BSAFE_KEY_INV_FORMAT, "The cryptographic key's format is invalid")
+#define ERR_BSAFE_NO_KEYS (PKG_BSAFE+51)
+ errortext(ERR_BSAFE_NO_KEYS, "Your ID file does not contain any encryption keys")
+#define ERR_BSAFE_UNKNOWN_CERTIFICATE (PKG_BSAFE+52)
+ errortext(ERR_BSAFE_UNKNOWN_CERTIFICATE,"Unrecognized or unsupported certificate type")
+#define ERR_BSAFE_UNKNOWN_IDFILE (PKG_BSAFE+53)
+ errortext(ERR_BSAFE_UNKNOWN_IDFILE, "Unrecognized or unsupported ID File type")
+#define ERR_BSAFE_UNKNOWN_DOCKEY (PKG_BSAFE+54)
+ errortext(ERR_BSAFE_UNKNOWN_DOCKEY, "Unrecognized or unsupported document encryption key type stored in the ID file")
+#define ERR_BSAFE_UNKNOWN_USERINFO (PKG_BSAFE+55)
+ errortext(ERR_BSAFE_UNKNOWN_USERINFO, "Unrecognized or unsupported user-information structure")
+#define ERR_BSAFE_UNKNOWN_ITEM (PKG_BSAFE+56)
+ debugtext(ERR_BSAFE_UNKNOWN_ITEM, "Internal error: unknown BSAFE-item code or version")
+#define ERR_BSAFE_INV_DNAME (PKG_BSAFE+57)
+ debugtext(ERR_BSAFE_INV_DNAME, "Invalid name syntax")
+
+/* Note: next error message name is misleading; the error was reused for
+* exceeding a 64K buffer length in a variety of cases.
+*/
+
+#define ERR_BSAFE_ODSCERT_TOOBIG (PKG_BSAFE+58)
+ errortext(ERR_BSAFE_ODSCERT_TOOBIG, "Certificate object requires more than 64K bytes")
+#define ERR_BSAFE_UNKNOWN_UDO (PKG_BSAFE+59)
+ errortext(ERR_BSAFE_UNKNOWN_UDO, "Unrecognized or unsupported user-descriptor object found in the ID file")
+#define ERR_BSAFE_FILE_NOT_OPENED (PKG_BSAFE+60)
+ errortext(ERR_BSAFE_FILE_NOT_OPENED, "You must first open the ID file before attempting that operation")
+
+#define ERR_BSAFE_CERTIFICATE_REVOKED (PKG_BSAFE + 61)
+ errortext (ERR_BSAFE_CERTIFICATE_REVOKED, "The certificate was revoked")
+#define ERR_BSAFE_CERT_VALIDITY (PKG_BSAFE + 62)
+ errortext (ERR_BSAFE_CERT_VALIDITY, "Certificate is expired or not yet valid")
+#define ERR_BSAFE_CRL_VALIDITY (PKG_BSAFE + 63)
+ errortext (ERR_BSAFE_CRL_VALIDITY, "The CRL is expired or not yet valid")
+#define ERR_BSAFE_CRL_NOT_FOUND (PKG_BSAFE + 64)
+ errortext (ERR_BSAFE_CRL_NOT_FOUND, "A CRL was required, but not found for the certificate")
+#define ERR_BSAFE_KEY_USAGE (PKG_BSAFE + 65)
+ errortext (ERR_BSAFE_KEY_USAGE, "The certificate or chain is invalid due to a key usage violation")
+#define ERR_BSAFE_BASIC_CONSTRAINTS (PKG_BSAFE + 66)
+ errortext (ERR_BSAFE_BASIC_CONSTRAINTS, "The certificate or chain is invalid due to a basic constraints violation")
+#define STR_BSAFE_IDC_SUBJECT (PKG_BSAFE+67)
+ stringtext(STR_BSAFE_IDC_SUBJECT, "%A has certified the ID belonging to %A. The certificate can be merged into your ID file by using the Actions menu 'Accept Certificate...' option.")
+#define ERR_BSAFE_SENDER_SIGNING_CERT_IS_EXPIRED (PKG_BSAFE+68)
+ errortext(ERR_BSAFE_SENDER_SIGNING_CERT_IS_EXPIRED, "Senders' signing certificate is expired")
+#define ERR_BSAFE_SENDER_SIGNING_CERT_HAS_SINCE_EXPIRED (PKG_BSAFE+69)
+ errortext(ERR_BSAFE_SENDER_SIGNING_CERT_HAS_SINCE_EXPIRED, "Senders' signing certificate has expired after this mail was signed")
+#define ERR_BSAFE_INVALID_XCERT_NO_ARG (PKG_BSAFE+70)
+ errortext(ERR_BSAFE_INVALID_XCERT_NO_ARG, "An invalid Cross Certificate was found. It may be a corrupted Cross Certificate, an attack or a new public key issued. Please notify administrator of the problem")
+#define ERR_BSAFE_CANT_CREATE_XCERT (PKG_BSAFE+71)
+ errortext(ERR_BSAFE_CANT_CREATE_XCERT, "The requested Cross Certificate will not be issued because the subject is already trusted.")
+#define ERR_BSAFE_WRONG_SUBJECT_KEY_IN_SIGNATURE (PKG_BSAFE+72)
+ errortext (ERR_BSAFE_WRONG_SUBJECT_KEY_IN_SIGNATURE, "The signer's public key found in the signature does not match the one stored in the directory")
+#define ERR_BSAFE_NO_VALID_PW (PKG_BSAFE+73)
+ errortext (ERR_BSAFE_NO_VALID_PW, "Password has not yet been validated")
+
+#define ERR_BSAFE_ILL_PW_ALG (PKG_BSAFE+74)
+ errortext (ERR_BSAFE_ILL_PW_ALG, "Unrecognized password object or algorithm")
+
+/* available PKG_BSAFE+75 */
+#define STR_BSAFE_SMIME_UNABLE_TO_DECODE_STREAM (PKG_BSAFE+76)
+ stringtext(STR_BSAFE_SMIME_UNABLE_TO_DECODE_STREAM, "Unable to decode S/MIME stream")
+#define ERR_BSAFE_IDFILE_LOCKED (PKG_BSAFE+77)
+ errortext(ERR_BSAFE_IDFILE_LOCKED, "The ID File is in use elsewhere and cannot be modified")
+#define ERR_BSAFE_NEK_EXISTS (PKG_BSAFE+78)
+ errortext(ERR_BSAFE_NEK_EXISTS, "Cannot add the encryption key to your ID file. A key with that name already exists.")
+#define ERR_BSAFE_KFM_INVREADOPT (PKG_BSAFE+79)
+ debugtext(ERR_BSAFE_KFM_INVREADOPT, "Software error: conflicting read ID File options")
+#define ERR_BSAFE_MERGE_NONCOPY (PKG_BSAFE+80)
+ errortext(ERR_BSAFE_MERGE_NONCOPY, "The certificate(s) have not been issued to you and cannot be merged into your ID file. They have been issued to")
+#define ERR_BSAFE_MERGE_NOPRVKEY (PKG_BSAFE+81)
+ errortext(ERR_BSAFE_MERGE_NOPRVKEY, "The Public Key cannot be accepted since there is no matching Private Key found in the ID file.")
+#define ERR_BSAFE_NONAMECHANGE (PKG_BSAFE+82)
+ errortext(ERR_BSAFE_NONAMECHANGE, "If you change the user name, this ID will lose all of its certificates. When the name change is complete, this ID will need to be certified. Do you want to continue?")
+#define ERR_BSAFE_NOMERGECERT (PKG_BSAFE+83)
+ errortext(ERR_BSAFE_NOMERGECERT, "There are no certificates to be merged into your ID file")
+#define ERR_BSAFE_INVUSERIDFILE (PKG_BSAFE+84)
+ errortext(ERR_BSAFE_INVUSERIDFILE, "Your ID file has been corrupted, or is not an ID file.")
+#define ERR_BSAFE_CORRUPTFILE (PKG_BSAFE+85)
+ errortext(ERR_BSAFE_CORRUPTFILE, "The specified ID file has been corrupted, or is not an ID file.")
+#define ERR_BSAFE_REQUIRES_NONFLATID (PKG_BSAFE+86)
+ errortext(ERR_BSAFE_REQUIRES_NONFLATID, "This request is not supported with the version of your ID file. An ID file containing a hierarchical name is required.")
+#define ERR_BSAFE_NO_CROSS_CERT (PKG_BSAFE+87)
+ errortext(ERR_BSAFE_NO_CROSS_CERT, "The Address Book does not contain a cross certificate capable of validating the public key.")
+#define ERR_BSAFE_INCOMPLETE_CERTTABLE (PKG_BSAFE+88)
+ errortext(ERR_BSAFE_INCOMPLETE_CERTTABLE, "The certificate table does not contain enough valid certificates to verify the public key of its owner.")
+#define ERR_BSAFE_ILLUSE_CERTIFIER (PKG_BSAFE+89)
+ errortext(ERR_BSAFE_ILLUSE_CERTIFIER, "Illegal use of a Certifier ID file")
+#define ERR_BSAFE_MUSTBE_CERTIFIER (PKG_BSAFE+90)
+ errortext(ERR_BSAFE_MUSTBE_CERTIFIER, "The ID file is not a Certifier ID file and cannot be used to issue certificates")
+#define ERR_BSAFE_WRITEPROTECTED (PKG_BSAFE+91)
+ errortext(ERR_BSAFE_WRITEPROTECTED, "The ID file is write protected")
+#define ERR_BSAFE_NOPSW_ON_SAFECOPY (PKG_BSAFE+92)
+ errortext(ERR_BSAFE_NOPSW_ON_SAFECOPY, "This is a safe-copy version of an ID file and cannot be password protected")
+#define ERR_BSAFE_YOU_MUST_BE_HI (PKG_BSAFE+93)
+ errortext(ERR_BSAFE_YOU_MUST_BE_HI, "The local system cannot complete the operation because it is not running with a hierarchical name")
+#define ERR_BSAFE_WRONG_SUBJECT_KEY (PKG_BSAFE+94)
+ errortext(ERR_BSAFE_WRONG_SUBJECT_KEY, "The subject's public key found in the certificate is not the one stored in our ID file for that entity.")
+#define ERR_BSAFE_ILL_CERTTABLE (PKG_BSAFE+95)
+ errortext(ERR_BSAFE_ILL_CERTTABLE, "The supplied certificate table used to validate the signer's public key is improperly formed")
+#define ERR_BSAFE_CERTIFIER_MUST_BE_HI (PKG_BSAFE+96)
+ errortext(ERR_BSAFE_CERTIFIER_MUST_BE_HI, "The certifier has not been assigned a hierarchical name")
+#define ERR_BSAFE_EXTERNAL_PASSWORD (PKG_BSAFE+97)
+ errortext(ERR_BSAFE_EXTERNAL_PASSWORD, "Password Externally Supplied")
+#define ERR_BSAFE_EXTERNAL_PWD_AND_DATA (PKG_BSAFE+98)
+ errortext(ERR_BSAFE_EXTERNAL_PWD_AND_DATA, "Password and Data Externally Supplied")
+#define ERR_BSAFE_FLAT_KEY_TOO_BIG (PKG_BSAFE+99)
+ errortext(ERR_BSAFE_FLAT_KEY_TOO_BIG, "RSA key size limit for a flat ID exceeded")
+#define ERR_BSAFE_CERTREQ_SUBMITTED (PKG_BSAFE+100)
+ errortext(ERR_BSAFE_CERTREQ_SUBMITTED, "A certificate request has been submitted")
+
+#define ERR_BSAFE_ID_EXTRA_UPDATED (PKG_BSAFE+101)
+ errortext(ERR_BSAFE_ID_EXTRA_UPDATED, "%s username and password were updated in the ID file.")
+
+#define ERR_BSAFE_ID_EXTRA_UPDATE_FAIL (PKG_BSAFE+102)
+ errortext(ERR_BSAFE_ID_EXTRA_UPDATE_FAIL, "%s username and password could not be updated in the ID file.")
+
+#define ERR_BSAFE_CANCELED (PKG_BSAFE+103)
+ errortext(ERR_BSAFE_CANCELED, "Operation canceled")
+
+#define ERR_BSAFE_ID_EXTRA_DELETED (PKG_BSAFE+104)
+ errortext(ERR_BSAFE_ID_EXTRA_DELETED, "%s username and password were cleared from the ID file.")
+
+#define ERR_BSAFE_ASSIGNED_TO_DIFF_LANG (PKG_BSAFE+105)
+ errortext(ERR_BSAFE_ASSIGNED_TO_DIFF_LANG, "That name has already been associated with another language specifier.")
+
+#define ERR_BSAFE_ID_EXTRA_DELETE_FAIL (PKG_BSAFE+106)
+ errortext(ERR_BSAFE_ID_EXTRA_DELETE_FAIL, "%s username and password could not be cleared from the ID file.")
+
+
+#define ERR_BSAFE_CERT_HAS_ALTNAME (PKG_BSAFE+108)
+ errortext(ERR_BSAFE_CERT_HAS_ALTNAME, "The operation cannot be completed because the certificate contains an alternate name")
+
+#define ERR_BSAFE_ID_EXTRA_TYPE (PKG_BSAFE+109)
+ errortext(ERR_BSAFE_ID_EXTRA_TYPE, "Domino Controller|DB2")
+/* available PKG_BSAFE + 110 */
+
+#define ERR_BSAFE_USA_KEY_ONLY (PKG_BSAFE+111)
+ errortext(ERR_BSAFE_USA_KEY_ONLY, "This key may only be stored in ID files with North American licenses")
+#define ERR_BSAFE_ID_READ_ONLY (PKG_BSAFE+112)
+ errortext(ERR_BSAFE_ID_READ_ONLY, "The ID file was not opened for write access")
+#define ERR_BSAFE_NO_PUBLIC_INFO (PKG_BSAFE+113)
+ errortext(ERR_BSAFE_NO_PUBLIC_INFO, "Your public key was not found in the Name and Address Book")
+#define ERR_BSAFE_TOOMANY_ORG_UNITS (PKG_BSAFE+114)
+ errortext(ERR_BSAFE_TOOMANY_ORG_UNITS, "You can create only as many as four Organizational Unit levels")
+#define ERR_BSAFE_MUSTBE_HIERARCHICAL (PKG_BSAFE+115)
+ errortext(ERR_BSAFE_MUSTBE_HIERARCHICAL, "This request is not supported for the specified ID file. An ID file containing a hierarchical name is required.")
+#define ERR_BSAFE_ID_DRIVE_NOT_READY (PKG_BSAFE+116)
+ errortext(ERR_BSAFE_ID_DRIVE_NOT_READY, "The disk drive specified for the ID file is not ready")
+#define ERR_BSAFE_ID_DISK (PKG_BSAFE+117)
+ errortext(ERR_BSAFE_ID_DISK, "Cannot update the ID file; insufficient disk space")
+#define ERR_BSAFE_ID_IOERROR (PKG_BSAFE+118)
+ errortext(ERR_BSAFE_ID_IOERROR, "I/O error experienced while accessing the ID file")
+#define ERR_BSAFE_PASSWORD_REQUIRED (PKG_BSAFE+119)
+ errortext(ERR_BSAFE_PASSWORD_REQUIRED, "A password is required for this ID file")
+#define ERR_BSAFE_BAD_AUTH_CODE (PKG_BSAFE+120)
+ errortext(ERR_BSAFE_BAD_AUTH_CODE, "The authentication code has failed the consistency check")
+#define ERR_BSAFE_ILL_AUTH_CODE_VERSION (PKG_BSAFE+121)
+ errortext(ERR_BSAFE_ILL_AUTH_CODE_VERSION, "The authentication code version number is not supported")
+#define ERR_BSAFE_NEWNAME_TOO_LONG (PKG_BSAFE+122)
+ errortext(ERR_BSAFE_NEWNAME_TOO_LONG, "Cannot create certificate, resultant subject name would be too long")
+#define ERR_BSAFE_CERT_NOT_ANCESTOR (PKG_BSAFE+123)
+ errortext(ERR_BSAFE_CERT_NOT_ANCESTOR, "The certifier is not an ancestor of the subject in the certificate.")
+#define ERR_BSAFE_ILL_ATFUNC (PKG_BSAFE+124)
+ errortext(ERR_BSAFE_ILL_ATFUNC, "Unrecognized or unsupported @CERTIFICATE code")
+#define ERR_BSAFE_CERTIFIER_NOT_IN_NAB (PKG_BSAFE+125)
+ errortext(ERR_BSAFE_CERTIFIER_NOT_IN_NAB, "A required certifier entry was not found in the Name and Address Book; consult the Notes Log for details on the specific entry")
+#define ERR_BSAFE_ILL_DISTINFO (PKG_BSAFE+126)
+ errortext(ERR_BSAFE_ILL_DISTINFO, "Unrecognized or unsupported Distinguished Name structure")
+#define ERR_BSAFE_INSUF_INPUT_ARGS (PKG_BSAFE+127)
+ errortext(ERR_BSAFE_INSUF_INPUT_ARGS, "Internal error: too few parameters passed in subroutine call")
+#define ERR_BSAFE_CERT_MISMATCH (PKG_BSAFE+128)
+ errortext(ERR_BSAFE_CERT_MISMATCH, "Either the certificates' issuers or the certificates' subjects don't match")
+#define ERR_BSAFE_ILLUSE_XCERT (PKG_BSAFE+129)
+ errortext(ERR_BSAFE_ILLUSE_XCERT, "A cross-certificate was illegally used as a substitute for an ordinary certificate")
+#define ERR_BSAFE_TOO_MANY_CERTS (PKG_BSAFE+130)
+ errortext(ERR_BSAFE_TOO_MANY_CERTS, "Certificate table could not be constructed because there are too many certificates")
+#define ERR_BSAFE_TOO_FEW_CERTS (PKG_BSAFE+131)
+ errortext(ERR_BSAFE_TOO_FEW_CERTS, "The supplied Certificate Table is missing a required certificate to complete the operation")
+#define ERR_BSAFE_ID_MUST_BE_HI (PKG_BSAFE+132)
+ errortext(ERR_BSAFE_ID_MUST_BE_HI, "This operation is only supported for ID file's containing hierarchical names")
+#define ERR_BSAFE_INV_KFHANDLE (PKG_BSAFE+133)
+ errortext(ERR_BSAFE_INV_KFHANDLE, "Invalid KFHANDLE")
+#define ERR_BSAFE_FILE_LOCKED (PKG_BSAFE+134)
+ errortext(ERR_BSAFE_FILE_LOCKED, "The ID file is locked by another process. Try again later")
+#define ERR_BSAFE_MUST_BE_SERVER (PKG_BSAFE+135)
+ errortext(ERR_BSAFE_MUST_BE_SERVER, "Only the server process is allowed to attempt that operation")
+#define ERR_BSAFE_INAPPROPRIATE_ORGUNIT (PKG_BSAFE+136)
+ errortext(ERR_BSAFE_INAPPROPRIATE_ORGUNIT, "Org Unit may only be supplied when upgrading flat to hierarchical")
+
+/* available PKG_BSAFE+137 */
+
+#define ERR_BSAFE_WRONG_SUBJECT_KEY_X (PKG_BSAFE+138)
+ errortext(ERR_BSAFE_WRONG_SUBJECT_KEY_X, "The subject's public key found in the cross certificate does not match the one found in the certificate table.")
+#define ERR_BSAFE_INVCERT_DATA (PKG_BSAFE+139)
+ errortext(ERR_BSAFE_INVCERT_DATA, "Error processing certificate created by %A for %A")
+#define ERR_BSAFE_INVCROSSCERT_SIG (PKG_BSAFE+140)
+ errortext(ERR_BSAFE_INVCROSSCERT_SIG, "The signature on the cross certificate was found to be invalid. Check the log file for details.")
+#define ERR_BSAFE_WRONG_CERT_SUBJECT (PKG_BSAFE+141)
+ errortext(ERR_BSAFE_WRONG_CERT_SUBJECT, "The certificate contains the wrong subject name")
+#define ERR_BSAFE_WRONG_CERT_ISSUER (PKG_BSAFE+142)
+ errortext(ERR_BSAFE_WRONG_CERT_ISSUER, "The certificate contains the wrong issuer name")
+
+#define STR_BSAFE_SECPANEL_TRUST_CONSTRAINT_PEOPLE (PKG_BSAFE+143)
+ stringtext(STR_BSAFE_SECPANEL_TRUST_CONSTRAINT_PEOPLE, "Mail encryption certificate not found|Usable for signing only (no encryption)|Usable for encryption only (no signing)|May not pass verification checks")
+#define IDX_STR_BSAFE_SECPANEL_CERT_NOTFOUND 1
+#define IDX_STR_BSAFE_SECPANEL_CERT_NOENCRYPTION 2
+#define IDX_STR_BSAFE_SECPANEL_CERT_ENCRYPTION 3
+#define IDX_STR_BSAFE_SECPANEL_CERT_NOTVERIFIED 4
+
+#define STR_BSAFE_SECPANEL_TRUST_CONSTRAINT (PKG_BSAFE+144)
+ stringtext(STR_BSAFE_SECPANEL_TRUST_CONSTRAINT, "<All Names>|<All Internet Names>|*%s|<All Flat Names>")
+#define IDX_STR_BSAFE_SECPANEL_TRUST_CONSTRAINT_ALL 1
+#define IDX_STR_BSAFE_SECPANEL_TRUST_CONSTRAINT_ALLINET 2
+#define IDX_STR_BSAFE_SECPANEL_TRUST_CONSTRAINT_STARSTR 3
+#define IDX_STR_BSAFE_SECPANEL_TRUST_CONSTRAINT_ALLFLAT 4
+
+#define ERR_BSAFE_INVCERT_SIG (PKG_BSAFE+145)
+ errortext(ERR_BSAFE_INVCERT_SIG, "The signature on the certificate was found to be invalid. Check the log file for details.")
+
+#define ERR_BSAFE_SECPANEL_NO_HOME_SERVER (PKG_BSAFE+146)
+ errortext(ERR_BSAFE_SECPANEL_NO_HOME_SERVER, "Your home server could not be contacted or is not configured.")
+
+#define ERR_BSAFE_WRONG_SUBJECT_KEY_SRV (PKG_BSAFE+147)
+ errortext(ERR_BSAFE_WRONG_SUBJECT_KEY_SRV, "The subject's public key found in the certificate is not the one stored in the server's ID file for that entity. Check the server's log file for details.")
+#define ERR_BSAFE_WRONG_SUBJECT_KEY_LOC (PKG_BSAFE+148)
+ errortext(ERR_BSAFE_WRONG_SUBJECT_KEY_LOC, "The subject's public key found in the certificate is not the one stored in our ID file for that entity. Check the local log file for details.")
+#define ERR_BSAFE_CERT_NOT_ANCESTOR_SRV (PKG_BSAFE+149)
+ errortext(ERR_BSAFE_CERT_NOT_ANCESTOR_SRV, "The certifier is not an ancestor of the subject in the certificate. Check the server's log file for details.")
+#define ERR_BSAFE_CERT_NOT_ANCESTOR_LOC (PKG_BSAFE+150)
+ errortext(ERR_BSAFE_CERT_NOT_ANCESTOR_LOC, "The certifier is not an ancestor of the subject in the certificate. Check the local log file for details.")
+#define ERR_BSAFE_ADDBOOK_CERT_ENTRY (PKG_BSAFE+151)
+ errortext(ERR_BSAFE_ADDBOOK_CERT_ENTRY, "Error locating a Domino Directory entry for certifier %s")
+
+
+/* (PKG_BSAFE ends at 151 */
+
+
+#define ERR_BSAFE2_ATTRIBUTE_UNKNOWN (PKG_BSAFE2+0)
+ errortext(ERR_BSAFE2_ATTRIBUTE_UNKNOWN, "Attribute type is unrecognized ")
+
+#define ERR_BSAFE2_UNABLE_TO_PARSE_CERT (PKG_BSAFE2+1)
+ errortext(ERR_BSAFE2_UNABLE_TO_PARSE_CERT, "Unable to parse certificate ")
+
+#define ERR_BSAFE2_BAD_RECOVERY_INFO (PKG_BSAFE2+2)
+ errortext(ERR_BSAFE2_BAD_RECOVERY_INFO, "Nonexistent or invalid recovery information")
+
+#define ERR_BSAFE2_KEY_USAGE_RESTRICTION (PKG_BSAFE2+3)
+ errortext(ERR_BSAFE2_KEY_USAGE_RESTRICTION, "A cross certificate will not be made due to key usage restrictions in the input certificate.")
+
+#define ERR_BSAFE_BIG_CERT_ELEMENT (PKG_BSAFE2+4)
+ errortext (ERR_BSAFE_BIG_CERT_ELEMENT, "Certificate element too large for processing.")
+#define ERR_BSAFE_NAMELIST_VERSION (PKG_BSAFE2+5)
+ errortext (ERR_BSAFE_NAMELIST_VERSION, "Unrecognized name list version.")
+#define ERR_BSAFE_NAMELIST_MALFORMED (PKG_BSAFE2+6)
+ errortext (ERR_BSAFE_NAMELIST_MALFORMED, "The name list is improperly formed and may have been corrupted.")
+#define ERR_BSAFE_NAMELIST_NOSUCH_INDEX (PKG_BSAFE2+7)
+ errortext (ERR_BSAFE_NAMELIST_NOSUCH_INDEX, "The requested name list element does not exist.")
+#define ERR_BSAFE_TOO_MANY_ALTNAMES (PKG_BSAFE2+8)
+ errortext (ERR_BSAFE_TOO_MANY_ALTNAMES, "Too many alternate names in the name list.")
+#define ERR_BSAFE_LANGTAG_EXISTS (PKG_BSAFE2+9)
+ errortext (ERR_BSAFE_LANGTAG_EXISTS, "A name with the specified language already exits.")
+#define ERR_BSAFE_LANGTAG_UNKNOWN (PKG_BSAFE2+10)
+ errortext (ERR_BSAFE_LANGTAG_UNKNOWN, "The specified language is unknown")
+#define ERR_BSAFE_NAME_MALFORMED (PKG_BSAFE2+11)
+ errortext (ERR_BSAFE_NAME_MALFORMED, "An improperly formed name was encountered")
+#define ERR_BSAFE_INV_CERT (PKG_BSAFE2+12)
+ errortext (ERR_BSAFE_INV_CERT, "Invalid certificate contents or format")
+#define ERR_ASN1_ILL_OID (PKG_BSAFE2+13)
+ errortext (ERR_ASN1_ILL_OID, "Illegal ASN.1 Object ID field")
+#define ERR_ASN1_ILL_DATATYPE (PKG_BSAFE2+14)
+ errortext (ERR_ASN1_ILL_DATATYPE, "Illegal or unexpected ASN.1 data type")
+#define ERR_ASN1_ILL_DATALENGTH (PKG_BSAFE2+15)
+ errortext (ERR_ASN1_ILL_DATALENGTH, "Illegal or unsupported ASN.1 data length")
+
+/* (PKG_BSAFE2: limited to 0-15 */
+/* TIPEM errors */
+
+#define ERR_BSAFE3_TE_UNKNOWN (PKG_BSAFE3+0)
+ errortext (ERR_BSAFE3_TE_UNKNOWN, "Unknown S/MIME error")
+#define ERR_BSAFE3_TE_ASN_SIGNATURE (PKG_BSAFE3+1)
+ errortext (ERR_BSAFE3_TE_ASN_SIGNATURE, "Invalid signature on certificate or CRL")
+#define ERR_BSAFE3_TE_ATTRIBUTES_OBJ (PKG_BSAFE3+2)
+ errortext (ERR_BSAFE3_TE_ATTRIBUTES_OBJ, "Invalid cryptographic attributes object")
+#define ERR_BSAFE3_TE_EOS (PKG_BSAFE3+3)
+ errortext (ERR_BSAFE3_TE_EOS, "End of cryptographic data stream")
+
+#define ERR_BSAFE4_TE_MEMORY_OBJ (PKG_BSAFE3+4)
+ errortext (ERR_BSAFE4_TE_MEMORY_OBJ, "Invalid cryptographic memory object")
+#define ERR_BSAFE4_TE_OVER_32K (PKG_BSAFE3+5)
+ errortext (ERR_BSAFE4_TE_OVER_32K, "Cryptographic data block is too big to be processed")
+#define ERR_BSAFE4_TE_PARAMETER (PKG_BSAFE3+6)
+ errortext (ERR_BSAFE4_TE_PARAMETER, "Invalid parameter passed to cryptographic function")
+#define ERR_BSAFE5_TE_VERSION (PKG_BSAFE3+7)
+ errortext (ERR_BSAFE5_TE_VERSION, "S/MIME version not supported")
+
+#define ERR_BSAFE5_ERROR (PKG_BSAFE3+8)
+ errortext (ERR_BSAFE5_ERROR, "Error -- ")
+#define ERR_BSAFE5_WARNING (PKG_BSAFE3+9)
+ errortext (ERR_BSAFE5_WARNING, "Warning -- ")
+#define ERR_BSAFE5_LOG (PKG_BSAFE3+10)
+ errortext(ERR_BSAFE5_LOG, "%s %s")
+#define ERR_BSAFE5_TE_UNTRUSTED_CERTS_CRLS (PKG_BSAFE3+11)
+ errortext (ERR_BSAFE5_TE_UNTRUSTED_CERTS_CRLS, "Cannot establish trust in a certificate or CRL.")
+
+#define ERR_NOCA_KEYMATCH (PKG_BSAFE3+12)
+ errortext (ERR_NOCA_KEYMATCH, "The certifier key in the certificate does not match the key stored in the directory.")
+#define ERR_ILL_RECERT_FCT (PKG_BSAFE3+13)
+ errortext (ERR_ILL_RECERT_FCT, "The requested rename or recertify function is unknown or unsupported.")
+#define ERR_NO_ANCESTOR_LANGTAG (PKG_BSAFE3+14)
+ errortext (ERR_NO_ANCESTOR_LANGTAG, "The certifier has not yet been assigned a name associated with the proposed language.")
+#define ERR_NO_INET_KEY (PKG_BSAFE3+15)
+ errortext (ERR_NO_INET_KEY, "This entry has not been assigned a public key suitable for use on the internet.")
+
+#define ERR_BSAFE_NAME_EXISTS (PKG_BSAFE3+16)
+ errortext (ERR_BSAFE_NAME_EXISTS, "This name already exists.")
+
+#define ERR_BSAFE_INVALID_BB (PKG_BSAFE3+17)
+ errortext (ERR_BSAFE_INVALID_BB, "You are not authorized to recover this ID file.")
+
+
+
+#define ERR_ASN1_INV_SYNTAX (PKG_BSAFE3+18)
+ errortext (ERR_ASN1_INV_SYNTAX, "Invalid ASN.1 syntax")
+#define ERR_BSAFE_INV_CRL (PKG_BSAFE3+19)
+ errortext (ERR_BSAFE_INV_CRL, "Invalid CRL contents or format")
+#define ERR_BSAFE_INV_EXTENSIONS_OBJ (PKG_BSAFE3+20)
+ errortext (ERR_BSAFE_INV_EXTENSIONS_OBJ, "Invalid certificate extensions object")
+#define ERR_BSAFE_INV_MSG_FORMAT (PKG_BSAFE3+21)
+ errortext (ERR_BSAFE_INV_MSG_FORMAT, "Cryptographic error: invalid message format")
+#define ERR_BSAFE_BAD_KEY_LENGTH (PKG_BSAFE3+22)
+ errortext (ERR_BSAFE_BAD_KEY_LENGTH, "Invalid cryptographic key length")
+#define ERR_BSAFE_BAD_SIGNATURE (PKG_BSAFE3+23)
+ errortext (ERR_BSAFE_BAD_SIGNATURE, "Could not verify cryptographic signature")
+#define ERR_BSAFE_BAD_RANDOM_STATE (PKG_BSAFE3+24)
+ errortext (ERR_BSAFE_BAD_RANDOM_STATE, "Bad random number generator state")
+#define ERR_BSAFE_CERTCRL_NOT_FOUND (PKG_BSAFE3+25)
+ errortext (ERR_BSAFE_CERTCRL_NOT_FOUND, "Certificate, private key or CRL was not found")
+#define ERR_BSAFE_MAKING_CERT_CHAIN (PKG_BSAFE3+26)
+ errortext (ERR_BSAFE_MAKING_CERT_CHAIN, "A certificate chain could not be constructed")
+#define ERR_BSAFE_CRYPTO_UPDATE_COUNT (PKG_BSAFE3+27)
+ errortext (ERR_BSAFE_CRYPTO_UPDATE_COUNT, "Cryptographic error: update operation called an inappropriate number of times")
+#define ERR_BSAFE_DATA_STREAM (PKG_BSAFE3+28)
+ errortext (ERR_BSAFE_DATA_STREAM, "Data streaming error encountered during cryptographic operation")
+#define ERR_BSAFE_CERT_EXT_EXISTS (PKG_BSAFE3+29)
+ errortext (ERR_BSAFE_CERT_EXT_EXISTS, "Certificate extension already exists")
+#define ERR_BSAFE_GENERIC_DATA (PKG_BSAFE3+30)
+ errortext (ERR_BSAFE_GENERIC_DATA, "Unknown data error occurred during cryptographic processing")
+#define ERR_BSAFE_HARDWARE (PKG_BSAFE3+31)
+ errortext (ERR_BSAFE_HARDWARE, "Cryptographic hardware error")
+
+/* (PKG_BSAFE3: Limited to 0-31 */
+
+
+#define ERR_BSAFE_UNSUPPORTED_CERTCRLSIG (PKG_BSAFE4+0)
+ errortext (ERR_BSAFE_UNSUPPORTED_CERTCRLSIG,"Unsupported certificate or CRL signature algorithm")
+#define ERR_BSAFE_UNSUPPORTED_CRYPTO_OP (PKG_BSAFE4+1)
+ errortext (ERR_BSAFE_UNSUPPORTED_CRYPTO_OP, "An unsupported cryptographic operation was requested")
+#define ERR_BSAFE_WEAK_KEY (PKG_BSAFE4+2)
+ errortext (ERR_BSAFE_WEAK_KEY, "The data supplied would generate a known weak cryptographic key")
+
+/* +3 thru +6 are available */
+
+#define ERR_BSAFE_INVALID_PASSWORD (PKG_BSAFE4+7)
+ errortext (ERR_BSAFE_INVALID_PASSWORD, "Password does not meet the requirement")
+#define ERR_BSAFE_INSERT_SMARTCARD (PKG_BSAFE4+8)
+ errortext (ERR_BSAFE_INSERT_SMARTCARD, "Please insert the smartcard")
+#define ERR_BSAFE_SC_PIN_INVALID (PKG_BSAFE4+9)
+ errortext (ERR_BSAFE_SC_PIN_INVALID, "Incorrect PIN")
+#define ERR_BSAFE_SC_RESET (PKG_BSAFE4+10)
+ errortext (ERR_BSAFE_SC_RESET, "A smartcard device error has occurred. Please eject and re-insert your smartcard.")
+#define ERR_BSAFE_SC_UNKNOWN (PKG_BSAFE4+11)
+ errortext (ERR_BSAFE_SC_UNKNOWN, "An unknown smartcard error has occurred.")
+#define ERR_BSAFE_SC_INVALID_CONFIG (PKG_BSAFE4+12)
+ errortext (ERR_BSAFE_SC_INVALID_CONFIG, "Incomplete or incorrect smartcard configuration.")
+#define ERR_BSAFE_SC_UNSUPPORTED_FUNC (PKG_BSAFE4+13)
+ errortext (ERR_BSAFE_SC_UNSUPPORTED_FUNC, "This feature is not supported by your smartcard.")
+#define ERR_BSAFE_SC_DEVICE_MEMORY (PKG_BSAFE4+14)
+ errortext (ERR_BSAFE_SC_DEVICE_MEMORY, "Insufficient free space on smartcard. Please contact your administrator.")
+#define ERR_BSAFE_SC_PIN_LOCKED (PKG_BSAFE4+15)
+ errortext (ERR_BSAFE_SC_PIN_LOCKED, "Your smartcard or cryptographic device is locked. Please contact your administrator.")
+#define ERR_BSAFE_RECOVERY_INFO_REMOVED (PKG_BSAFE4+16)
+ errortext (ERR_BSAFE_RECOVERY_INFO_REMOVED, "Recovery information has been removed")
+#define ERR_BSAFE_SC_NOT_RECOGNIZED (PKG_BSAFE4+17)
+ errortext (ERR_BSAFE_SC_NOT_RECOGNIZED, "This smartcard has not been initialized or is incompatible with your smartcard reader.")
+#define ERR_BSAFE_SC_KEY_CREATE (PKG_BSAFE4+18)
+ errortext (ERR_BSAFE_SC_KEY_CREATE, "This key could not be written to your smartcard.")
+#define ERR_SMIME_RECIPIENT_BAD_CERT (PKG_BSAFE4+19)
+ errortext (ERR_SMIME_RECIPIENT_BAD_CERT, " The certificate is not usable.")
+#define ERR_SMIME_RECIPIENT_CERT_CHAIN (PKG_BSAFE4+20)
+ errortext (ERR_SMIME_RECIPIENT_CERT_CHAIN, " The certificate chain is not trusted.")
+#define ERR_SMIME_RECIPIENT_ILLEGAL (PKG_BSAFE4+21)
+ errortext (ERR_SMIME_RECIPIENT_ILLEGAL, " You are not allowed to encrypt for this recipient.")
+#define ERR_SMIME_RECIPIENT_ADD_FAILURE (PKG_BSAFE4+22)
+ errortext (ERR_SMIME_RECIPIENT_ADD_FAILURE, " You cannot encrypt a message to this recipient.")
+#define ERR_SMIME_RECIPIENT_BAD_EMAIL (PKG_BSAFE4+23)
+ errortext (ERR_SMIME_RECIPIENT_BAD_EMAIL, " This recipient's email address was not found in the certificate.")
+#define ERR_SMIME_RECIPIENT_CERT_REVOKED (PKG_BSAFE4+24)
+ errortext (ERR_SMIME_RECIPIENT_CERT_REVOKED,"This recipient's certificate had been revoked.")
+#define ERR_SMIME_RECIPIENT_EMAIL_MISMATCH (PKG_BSAFE4+25)
+ errortext (ERR_SMIME_RECIPIENT_EMAIL_MISMATCH," This recipient's email address in the directory did not match what was found in the certificate.")
+#define ERR_SMIME_RECIPIENT_CERT_EXPIRED (PKG_BSAFE4+26)
+ errortext (ERR_SMIME_RECIPIENT_CERT_EXPIRED," This recipient's certificate is expired.")
+#define ERR_SMIME_SENDER_SIGNING_CERT_EXPIRED (PKG_BSAFE4+27)
+ errortext (ERR_SMIME_SENDER_SIGNING_CERT_EXPIRED," The certificate used to send signed mail is expired.")
+#define ERR_LTPA_TOKEN_SHOULD_RENEW (PKG_BSAFE4+28)
+ errortext (ERR_LTPA_TOKEN_SHOULD_RENEW, "Single Sign-On token should be renewed.")
+#define ERR_BSAFE_CERT_EXPIRES_SERVER (PKG_BSAFE4+29)
+ errortext(ERR_BSAFE_CERT_EXPIRES_SERVER, "WARNING: Server certificate issued to %s by %s will expire on %s. Contact your Domino administrator. %s")
+#define ERR_BSAFE_CERT_EXPIRED_SERVER (PKG_BSAFE4+30)
+ errortext(ERR_BSAFE_CERT_EXPIRED_SERVER, "WARNING: Server certificate issued to %s by %s expired on %s and can no longer be used. Contact your Domino administrator.")
+
+/* PKG_BSAFE4: Limited to 0-31 */
+
+
+#define ERR_BSAFE_RECOVERY_INFO_TOO_OLD (PKG_BSAFE5+0)
+ errortext (ERR_BSAFE_RECOVERY_INFO_TOO_OLD, "The recovery information was not accepted because it is the same or older than your current recovery information")
+#define ERR_BSAFE_NOT_LEAF_CERT (PKG_BSAFE5+1)
+ errortext (ERR_BSAFE_NOT_LEAF_CERT, "Only leaf certificates can be deleted from the ID file")
+#define ERR_BSAFE_NO_REPOSITORY_NAME (PKG_BSAFE5+2)
+ errortext (ERR_BSAFE_NO_REPOSITORY_NAME, "You must specify a name for the backup repository address")
+#define ERR_BSAFE_PKCS12_IMPORT_ADD_KEY (PKG_BSAFE5+3)
+ errortext(ERR_BSAFE_PKCS12_IMPORT_ADD_KEY, "Cannot add key from the import file.")
+#define ERR_BSAFE_PKCS12_IMPORT_ADD_CERT (PKG_BSAFE5+4)
+ errortext(ERR_BSAFE_PKCS12_IMPORT_ADD_CERT, "Cannot add certificate from the import file.")
+#define ERR_BSAFE_SC_NO_PASSWORD (PKG_BSAFE5+5)
+ errortext(ERR_BSAFE_SC_NO_PASSWORD, "The password for this ID file is not stored on a smartcard.")
+#define ERR_BSAFE_SC_NO_DLL_FOUND (PKG_BSAFE5+6)
+ errortext(ERR_BSAFE_SC_NO_DLL_FOUND, "The path or file selected for the smartcard driver is invalid.")
+#define ERR_BSAFE_ILL_CERTTAB_ITEM (PKG_BSAFE5+7)
+ errortext(ERR_BSAFE_ILL_CERTTAB_ITEM, "A certificate table item was unrecognized")
+#define ERR_BSAFE_CANT_MODIFY_ACTIVE_ID (PKG_BSAFE5+8)
+ errortext(ERR_BSAFE_CANT_MODIFY_ACTIVE_ID, "You cannot modify the active ID file")
+#define ERR_BSAFE_TOO_MANY_RO_CERTIFICATES (PKG_BSAFE5+9)
+ errortext(ERR_BSAFE_TOO_MANY_RO_CERTIFICATES, "The certificate table contains too many key rollover certificates")
+#define ERR_BSAFE_KEYGEN_WRONG_STATE (PKG_BSAFE5+10)
+ errortext(ERR_BSAFE_KEYGEN_WRONG_STATE, "Pending public keys are in the wrong state for the requested operation")
+#define ERR_BSAFE_ROLLOVER_TOO_MANY (PKG_BSAFE5+12)
+ errortext(ERR_BSAFE_ROLLOVER_TOO_MANY, "Too many key rollover certificates")
+#define ERR_BSAFE_RECOVERY_CERTIFIER_NOT_ANCESTOR (PKG_BSAFE5+13)
+ errortext (ERR_BSAFE_RECOVERY_CERTIFIER_NOT_ANCESTOR, "Recovery information is from a certifier that is not an ancestor of this user")
+
+#define ERR_BSAFE_ROLLOVER_UNKNOWN_TYPE (PKG_BSAFE5+15)
+ errortext(ERR_BSAFE_ROLLOVER_UNKNOWN_TYPE, "Unknown key rollover object type")
+
+/* PKG_BSAFE5: Available, limited to 0-15 */
+
+#define ERR_BSAFE_TE_UNTRUSTED_SIGNER (PKG_BSAFE6+0)
+ errortext (ERR_BSAFE_TE_UNTRUSTED_SIGNER, "The signer's certificate is not trusted.")
+#define ERR_BSAFE_INCOMPLETE_CERT_CHAIN (PKG_BSAFE6+1)
+ errortext (ERR_BSAFE_INCOMPLETE_CERT_CHAIN, "Cannot accept internet certificate because the certificate authority certificate is unavailable.")
+#define ERR_BSAFE_MISSING_PRIVATE_KEY (PKG_BSAFE6+2)
+ errortext (ERR_BSAFE_MISSING_PRIVATE_KEY, "Cannot accept internet certificate because the current ID file was not used to create the original request.")
+#define ERR_BSAFE_CERT_ALREADY_IN_ID_FILE (PKG_BSAFE6+3)
+ errortext (ERR_BSAFE_CERT_ALREADY_IN_ID_FILE, "Cannot accept internet certificate because the certificate is already in the ID file.")
+
+
+/* Note: Put here, because there was space, but these really belong
+* elsewhere
+*/
+
+/* LATER:
+* In some cases, copies of ERR_DESK codes moved here because they can
+* be returned by the SDK. Corresponding ERR_DESK codes should be eliminated
+*/
+
+#define ERR_BSAFE_ILL_IDCHAR (PKG_BSAFE6+4)
+ errortext(ERR_BSAFE_ILL_IDCHAR, "The only allowed characters for a person, server, or certifier name are letters, numbers, ampersand, apostrophe, hyphen, period, space, and underscore")
+#define ERR_BSAFE_ILL_DOMAIN (PKG_BSAFE6+5)
+ errortext(ERR_BSAFE_ILL_DOMAIN, "The only allowed characters for a domain name are letters, numbers, ampersand, apostrophe, hyphen, space, and underscore")
+#define ERR_BSAFE_NA_ENTRY_NOT_FOUND (PKG_BSAFE6+6)
+ stringtext(ERR_BSAFE_NA_ENTRY_NOT_FOUND, "The ID was certified but there was no corresponding entry in the Address Book to be updated")
+#define ERR_BSAFE_OLDNSF (PKG_BSAFE6+7)
+ errortext(ERR_BSAFE_OLDNSF, "Unable to perform this operation; options were selected that cannot be used with this older format Notes database.")
+#define ERR_BSAFE_INV_RECERT_FORM (PKG_BSAFE6+8)
+ errortext(ERR_BSAFE_INV_RECERT_FORM,"Cannot certify this entry because the form used to create it is not supported for this operation.")
+#define ERR_BSAFE_NOT_IMPLEMENTED (PKG_BSAFE6+9)
+ errortext(ERR_BSAFE_NOT_IMPLEMENTED,"Operation is not yet implemented")
+#define ERR_BSAFE_DUP_NAME (PKG_BSAFE6+10)
+ errortext(ERR_BSAFE_DUP_NAME, "Duplicate name found")
+#define ERR_BSAFE_ILL_CERTIFIER_NAME (PKG_BSAFE6+11)
+ errortext(ERR_BSAFE_ILL_CERTIFIER_NAME, "You specified an illegal certifier name")
+#define ERR_BSAFE_NO_INET_CERTS (PKG_BSAFE6+12)
+ errortext(ERR_BSAFE_NO_INET_CERTS, "Could not locate or process internet certificates for this ID.")
+#define ERR_BSAFE_PKCS12_IMPORT_BAD_FILE_READ (PKG_BSAFE6+13)
+ errortext(ERR_BSAFE_PKCS12_IMPORT_BAD_FILE_READ, "Import file could not be read. Check file permissions.")
+#define ERR_BSAFE_PKCS12_IMPORT_BAD_INFO (PKG_BSAFE6+14)
+ errortext(ERR_BSAFE_PKCS12_IMPORT_BAD_INFO, "Unsupported PKCS12 version or content. Check the import file.")
+#define ERR_BSAFE_PKCS12_IMPORT_BAD_UNKNOWN (PKG_BSAFE6+15)
+ errortext(ERR_BSAFE_PKCS12_IMPORT_BAD_UNKNOWN, "Cannot handle the import file. Check file name and file password.")
+
+/* PKG_BSAFE6: Available, limited to 0-15 */
+
+
+/*PKG_BSAFE_STR bsafe strings 0 - 127 */
+#define ERR_BSAFE_DISPLAY_IDFILE (PKG_BSAFE_STR)
+ stringtext(ERR_BSAFE_DISPLAY_IDFILE, "The ID file being used is: ")
+#define STR_BSAFE_RSA_PRIMARY (PKG_BSAFE_STR + 2)
+ stringtext(STR_BSAFE_RSA_PRIMARY, "Primary RSA")
+#define STR_BSAFE_RSA_SECONDARY (PKG_BSAFE_STR + 3)
+ stringtext(STR_BSAFE_RSA_SECONDARY, "Secondary RSA")
+#define STR_BSAFE_RC2 (PKG_BSAFE_STR + 4)
+ stringtext(STR_BSAFE_RC2, "RC2")
+#define STR_BSAFE_RC4 (PKG_BSAFE_STR + 5)
+ stringtext(STR_BSAFE_RC4, "RC4")
+#define STR_BSAFE_USA (PKG_BSAFE_STR + 6)
+ stringtext(STR_BSAFE_USA, "North American")
+#define STR_BSAFE_NONUSA (PKG_BSAFE_STR + 7)
+ stringtext(STR_BSAFE_NONUSA, "International")
+#define STR_BSAFE_SIGNED_MAIL (PKG_BSAFE_STR + 8)
+ stringtext(STR_BSAFE_SIGNED_MAIL, "Signed mail using %d bit %e key")
+#define STR_BSAFE_SEALED_DOC (PKG_BSAFE_STR + 9)
+ stringtext(STR_BSAFE_SEALED_DOC, "Encrypted document using %d/%d bit %e/%e keys")
+#define STR_BSAFE_CERTIFY (PKG_BSAFE_STR + 10)
+ stringtext(STR_BSAFE_CERTIFY, "Created certificate using %d bit %e key")
+#define STR_BSAFE_IDFILE_ENCRYPTED (PKG_BSAFE_STR + 11)
+ stringtext(STR_BSAFE_IDFILE_ENCRYPTED, "ID file is encrypted with %d bit %e key")
+#define STR_BSAFE_FORCED_AUTH (PKG_BSAFE_STR + 12)
+ stringtext(STR_BSAFE_FORCED_AUTH, "Authentication is being forced due to secure channel setting.")
+#define STR_BSAFE_CERT_EXPIRES (PKG_BSAFE_STR + 13)
+ stringtext(STR_BSAFE_CERT_EXPIRES, "WARNING: Your certificate issued to %s by %s will expire on %s. To request a new certificate, you should start User Security (see File - Security - User Security) and click Renew. %s")
+#define STR_BSAFE_CERT_EXPIRED (PKG_BSAFE_STR + 14)
+ stringtext(STR_BSAFE_CERT_EXPIRED, "WARNING: Your certificate issued to %s by %s expired on %s and can no longer be used. Contact your Domino administrator.")
+#define STR_BSAFE_INVALID (PKG_BSAFE_STR + 15)
+ stringtext(STR_BSAFE_INVALID, "Invalid")
+#define STR_BSAFE_UNKNOWN (PKG_BSAFE_STR + 16)
+ stringtext(STR_BSAFE_UNKNOWN, "Unknown")
+#define STR_BSAFE_CERTIFYING (PKG_BSAFE_STR + 17)
+ stringtext(STR_BSAFE_CERTIFYING, "Certifying %A")
+#define STR_BSAFE_CERTIFIED (PKG_BSAFE_STR + 18)
+ stringtext(STR_BSAFE_CERTIFIED, "%A successfully certified")
+#define STR_BSAFE_REPLACE_ANCESTRY (PKG_BSAFE_STR + 19)
+ stringtext(STR_BSAFE_REPLACE_ANCESTRY, "A certificate hierarchy has already been assigned to this ID. Do you wish to continue and replace it?")
+#define STR_BSAFE_UPGRADETOHI (PKG_BSAFE_STR + 20)
+ stringtext(STR_BSAFE_UPGRADETOHI, "The ID file will be upgraded to hierarchical format. Do you wish to continue?")
+#define STR_BSAFE_AUTHENTICATED (PKG_BSAFE_STR + 21)
+ stringtext(STR_BSAFE_AUTHENTICATED, "Authenticated: %d bit Ticket, %d bit %e session key, %e on RC4 escrow.")
+#define STR_BSAFE_HICERTIFIERID (PKG_BSAFE_STR + 22)
+ stringtext(STR_BSAFE_HICERTIFIERID, "Hierarchical Certifier")
+#define STR_BSAFE_UNKNOWNID (PKG_BSAFE_STR + 23)
+ stringtext(STR_BSAFE_UNKNOWNID, "Unknown ID type")
+#define STR_BSAFE_ID_FULL (PKG_BSAFE_STR + 24)
+ stringtext(STR_BSAFE_ID_FULL, "Notes")
+#define STR_BSAFE_ID_DESKTOP (PKG_BSAFE_STR + 25)
+ stringtext(STR_BSAFE_ID_DESKTOP, "Notes Desktop")
+
+/* Use OSLoadSubString to load substrings - english total length<80!
+*/
+#define STR_BSAFE_LIST_IDFILE (PKG_BSAFE_STR + 26)
+ stringtext(STR_BSAFE_LIST_IDFILE, "Non-Hierarchical ID|Hierarchical User or Server|Hierarchical Certifier")
+
+#define IDX_BSAFE_IDFILE_FLAT 1
+#define IDX_BSAFE_IDFILE_HIUSER 2
+#define IDX_BSAFE_IDFILE_HICA 3
+
+#define STR_BSAFE_LIST_MISCID (PKG_BSAFE_STR + 27)
+ stringtext(STR_BSAFE_LIST_MISCID, "Safe Copy|Unknown ID type|Internet Certifier| ")
+
+#define IDX_BSAFE_MISCID_SAFE 1
+#define IDX_BSAFE_MISCID_UNKNOWN 2
+#define IDX_BSAFE_MISCID_INETCA 3
+#define IDX_BSAFE_MISCID_BLANK 4
+
+#define STR_BSAFE_CROSS_CERTIFYING (PKG_BSAFE_STR + 28)
+ stringtext(STR_BSAFE_CROSS_CERTIFYING, "Cross certifying %A")
+#define STR_BSAFE_CROSS_CERTIFIED (PKG_BSAFE_STR + 29)
+ stringtext(STR_BSAFE_CROSS_CERTIFIED, "%A successfully cross certified")
+#define STR_BSAFE_MAX_IBULKDATAKEY (PKG_BSAFE_STR + 30)
+#ifdef FRANCE_ENGLISH
+ stringtext(STR_BSAFE_MAX_IBULKDATAKEY, "40")
+#else
+ stringtext(STR_BSAFE_MAX_IBULKDATAKEY, "64")
+#endif
+#define STR_BSAFE_DUP_NAMES_IN_DIRECTORY (PKG_BSAFE_STR + 31)
+ stringtext (STR_BSAFE_DUP_NAMES_IN_DIRECTORY, "%A and %A both already exist in the directory but in different entries")
+#define STR_BSAFE_SC_PIN_PROMPT (PKG_BSAFE_STR + 32)
+#ifdef OS400
+ stringtext(STR_BSAFE_SC_PIN_PROMPT, "Enter PIN (press the F3 key to abort): ")
+#else
+ stringtext(STR_BSAFE_SC_PIN_PROMPT, "Enter PIN (press the Esc key to abort): ")
+#endif
+#define STR_BSAFE_DISPLAY_SMARTCARD (PKG_BSAFE_STR + 33)
+ stringtext(STR_BSAFE_DISPLAY_SMARTCARD, "The smartcard being used is: ")
+
+/* available PKG_BSAFE_STR + 34 */
+
+#define STR_BSAFE_PRESS_ENTER (PKG_BSAFE_STR + 35)
+ stringtext(STR_BSAFE_PRESS_ENTER, "Press ENTER to continue")
+
+/* available PKG_BSAFE_STR + 36, 37 */
+
+/* Following are reserved for Password Policy */
+#define STR_BSAFE_PW_LEN_FAIL (PKG_BSAFE_STR + 38)
+ stringtext(STR_BSAFE_PW_LEN_FAIL, "Password does not meet length requirement.")
+#define STR_BSAFE_PW_QTY_FAIL (PKG_BSAFE_STR + 39)
+ stringtext(STR_BSAFE_PW_QTY_FAIL, "Password does not meet quality requirement.")
+#define STR_BSAFE_PW_ALPHA_FAIL (PKG_BSAFE_STR + 40)
+ stringtext(STR_BSAFE_PW_ALPHA_FAIL, "Password does not contain minimum required number of alpha characters.")
+#define STR_BSAFE_PW_NUM_FAIL (PKG_BSAFE_STR + 41)
+ stringtext(STR_BSAFE_PW_NUM_FAIL, "Password does not contain minimum required number of numeric characters.")
+#define STR_BSAFE_PW_PUNC_FAIL (PKG_BSAFE_STR + 42)
+ stringtext(STR_BSAFE_PW_PUNC_FAIL, "Password does not contain minimum required number of punctuation characters.")
+#define STR_BSAFE_PW_UPP_FAIL (PKG_BSAFE_STR + 43)
+ stringtext(STR_BSAFE_PW_UPP_FAIL, "Password does not contain minimum required number of upper case characters.")
+#define STR_BSAFE_PW_LOW_FAIL (PKG_BSAFE_STR + 44)
+ stringtext(STR_BSAFE_PW_LOW_FAIL, "Password does not contain minimum required number of lower case characters.")
+#define STR_BSAFE_PW_UNIQUE_FAIL (PKG_BSAFE_STR + 45)
+ stringtext(STR_BSAFE_PW_UNIQUE_FAIL, "Password does not contain enough number of unique characters.")
+#define STR_BSAFE_PW_REPEAT_FAIL (PKG_BSAFE_STR + 46)
+ stringtext(STR_BSAFE_PW_REPEAT_FAIL, "Password fails repeat characters check. There are too many of the same character.")
+#define STR_BSAFE_PW_START_FAIL (PKG_BSAFE_STR + 47)
+ stringtext(STR_BSAFE_PW_START_FAIL, "Password fails the check 'must not start with'.")
+#define STR_BSAFE_PW_END_FAIL (PKG_BSAFE_STR + 48)
+ stringtext(STR_BSAFE_PW_END_FAIL, "Password fails the check 'must not end with'.")
+#define STR_BSAFE_PW_CNNAME_FAIL (PKG_BSAFE_STR + 49)
+ stringtext(STR_BSAFE_PW_CNNAME_FAIL, "Password contains some aspect of the user name.")
+#define STR_BSAFE_PW_FIRST_CNG (PKG_BSAFE_STR + 50)
+ stringtext(STR_BSAFE_PW_FIRST_CNG, "User must change password on first use.")
+
+
+/* The following are currently used to log to DDM with better context during authentication
+*/
+
+#define STR_BSAFE_REMOTE_HOST (PKG_BSAFE_STR + 51)
+ stringtext(STR_BSAFE_REMOTE_HOST, "from host")
+
+#define STR_BSAFE_AUTH_FAILED_WITHNET (PKG_BSAFE_STR + 52)
+ stringtext(STR_BSAFE_AUTH_FAILED_WITHNET, "%a %e [%s] failed to authenticate")
+#define STR_BSAFE_AUTH_FAILED_NONET (PKG_BSAFE_STR + 53)
+ stringtext(STR_BSAFE_AUTH_FAILED_NONET, "%a failed to authenticate")
+
+#define STR_BSAFE_AUTH_PROBLEM_WITHNET (PKG_BSAFE_STR + 54)
+ stringtext(STR_BSAFE_AUTH_PROBLEM_WITHNET, "%a %e [%s] encountered non-fatal problem during authentication")
+#define STR_BSAFE_AUTH_PROBLEM_NONET (PKG_BSAFE_STR + 55)
+ stringtext(STR_BSAFE_AUTH_PROBLEM_NONET, "%a encountered non-fatal problem during authentication")
+
+ /* Id recovery string for better logging*/
+
+#define STR_BSAFE_BACKUP_ID_NAME_CHANGE (PKG_BSAFE_STR + 56)
+ stringtext (STR_BSAFE_BACKUP_ID_NAME_CHANGE, "ID containing name change for %A marked for backup")
+#define STR_BSAFE_BACKUP_ID_NEW_NEK (PKG_BSAFE_STR + 57)
+ stringtext (STR_BSAFE_BACKUP_ID_NEW_NEK, "ID containing new NEK for %A marked for backup")
+#define STR_BSAFE_BACKUP_ID_NEWKEY_CERTS (PKG_BSAFE_STR + 58)
+ stringtext (STR_BSAFE_BACKUP_ID_NEWKEY_CERTS, "ID containing certificates for new keys for %A marked for backup")
+#define STR_BSAFE_BACKUP_ID_NEW_RECOVERY_INFO (PKG_BSAFE_STR + 59)
+ stringtext (STR_BSAFE_BACKUP_ID_NEW_RECOVERY_INFO, "ID containing new recovery information for %A marked for backup")
+#define STR_BSAFE_RECOVERY_INFO_CREATION_DATE (PKG_BSAFE_STR + 60)
+ stringtext (STR_BSAFE_RECOVERY_INFO_CREATION_DATE, "Creation date of recovery info to be imported is %s")
+#define STR_BSAFE_RECOVERY_INFO_SIGNATURE_FAILURE (PKG_BSAFE_STR + 61)
+ stringtext (STR_BSAFE_RECOVERY_INFO_SIGNATURE_FAILURE, "Signature on recovery information failed to verify")
+#define STR_BSAFE_RECOVERY_OF_ID_FILE (PKG_BSAFE_STR + 62)
+ stringtext (STR_BSAFE_RECOVERY_OF_ID_FILE, "ID file for %A recovered successfully")
+#define STR_BSAFE_RECOVERY_OF_ID_FILE_FAIL (PKG_BSAFE_STR + 63)
+ stringtext (STR_BSAFE_RECOVERY_OF_ID_FILE_FAIL, "ID file for %A recovery failure")
+#define STR_BSAFE_XCERT_LOOKUP_ERROR (PKG_BSAFE_STR + 64)
+ stringtext (STR_BSAFE_XCERT_LOOKUP_ERROR, "Error during Directory lookup for cross certificates issued to %A or one of its ancestors")
+#define STR_BSAFE_RECOVERY_ID_INFO_CREATION_DATE (PKG_BSAFE_STR + 65)
+ stringtext (STR_BSAFE_RECOVERY_ID_INFO_CREATION_DATE, "Creation date of recovery info in ID file is %s")
+#define STR_BSAFE_RECOVERY_ID_INFO_UPDATED (PKG_BSAFE_STR + 66)
+ stringtext (STR_BSAFE_RECOVERY_ID_INFO_UPDATED, "New recovery info successfully updated in ID file for %A")
+#define STR_BSAFE_BACKUP_ON_DEMAND (PKG_BSAFE_STR+67)
+ stringtext (STR_BSAFE_BACKUP_ON_DEMAND, "Requested backup of ID file for %A")
+#define STR_BSAFE_RECOVERY_COOKIES_CREATION_FAILURE (PKG_BSAFE_STR+68)
+ stringtext (STR_BSAFE_RECOVERY_COOKIES_CREATION_FAILURE, "Recovery passwords generation failure")
+#define STR_BSAFE_RECOVERY_MULTI_PASSWORD_FAILURE (PKG_BSAFE_STR+69)
+ stringtext (STR_BSAFE_RECOVERY_MULTI_PASSWORD_FAILURE, "Unable to set multi recovery passwords on ID file")
+#define STR_BSAFE_RECOVERY_PASSWORD_EXTRA_FAILURE (PKG_BSAFE_STR+70)
+ stringtext (STR_BSAFE_RECOVERY_PASSWORD_EXTRA_FAILURE, "Unable to generate password recovery extra in ID file")
+#define STR_BSAFE_RECOVERY_KEYS_CREATION_FAILURE (PKG_BSAFE_STR+71)
+ stringtext (STR_BSAFE_RECOVERY_KEYS_CREATION_FAILURE, "Unable to create keys recovery extra in ID file")
+#define STR_BSAFE_RECOVERY_MAIL_BACKUP_FAIL (PKG_BSAFE_STR+72)
+ stringtext (STR_BSAFE_RECOVERY_MAIL_BACKUP_FAIL, "Failure to mail backup recovery ID file: ")
+#define STR_BSAFE_RECOVERY_MAIL_BACKUP_FAIL_NAMED (PKG_BSAFE_STR+73)
+ stringtext (STR_BSAFE_RECOVERY_MAIL_BACKUP_FAIL_NAMED, "Failure to mail backup recovery ID file for %s to %s")
+#define STR_BSAFE_BACKUP_ID_KEY_CHANGE (PKG_BSAFE_STR + 74)
+ stringtext (STR_BSAFE_BACKUP_ID_KEY_CHANGE, "ID containing new public keys for %A marked for backup")
+
+
+#define STR_BSAFE_AUTH_LOCPROB_ON_CLIENT (PKG_BSAFE_STR + 75)
+ stringtext(STR_BSAFE_AUTH_LOCPROB_ON_CLIENT, "Non-fatal problem encountered during authentication with server %A")
+#define STR_BSAFE_AUTH_LOCFAIL_ON_CLIENT (PKG_BSAFE_STR + 76)
+ stringtext(STR_BSAFE_AUTH_LOCFAIL_ON_CLIENT, "Failed to authenticate with server %A")
+#define STR_BSAFE_AUTH_REMPROB_ON_CLIENT (PKG_BSAFE_STR + 77)
+ stringtext(STR_BSAFE_AUTH_REMPROB_ON_CLIENT, "Server %A reported the following non-fatal problem during authentication")
+#define STR_BSAFE_AUTH_REMFAIL_ON_CLIENT (PKG_BSAFE_STR + 78)
+ stringtext(STR_BSAFE_AUTH_REMFAIL_ON_CLIENT, "Server %A reported the following problem causing authentication to fail")
+#define STR_BSAFE_EXTRA_DATA_FUNCTIONS (PKG_BSAFE_STR+79)
+ stringtext (STR_BSAFE_EXTRA_DATA_FUNCTIONS, "retrieval|deletion|update")
+#define IDX_EXTRA_FUNC_OFFSET 1
+
+#define STR_BSAFE_EXTRA_DATA_TYPES (PKG_BSAFE_STR+80)
+ stringtext (STR_BSAFE_EXTRA_DATA_TYPES, "DB2 user name|DB2 password|Server Controller user name|Server Controller password")
+#define IDX_EXTRA_TYPE_OFFSET 29
+
+#define STR_BSAFE_EXTRA_DATA_LOGSTRING (PKG_BSAFE_STR+81)
+ stringtext (STR_BSAFE_EXTRA_DATA_LOGSTRING, "%s %s by %a completed.|%s %s by %a failed.")
+#define IDX_EXTRA_LOG_PASSED 1
+#define IDX_EXTRA_LOG_FAILED 2
+
+#define STR_BSAFE_BACKUP_ON_REG_SBJ (PKG_BSAFE_STR+82)
+ stringtext (STR_BSAFE_BACKUP_ON_REG_SBJ, "Backup of newly registered ID file for %A")
+#define STR_BSAFE_BACKUP_ON_ACCEPT_SBJ (PKG_BSAFE_STR+83)
+ stringtext (STR_BSAFE_BACKUP_ON_ACCEPT_SBJ, "Backup of newly changed recovery information for %A")
+#define STR_BSAFE_BACKUP_ON_MODIFY_SBJ (PKG_BSAFE_STR+84)
+ stringtext (STR_BSAFE_BACKUP_ON_MODIFY_SBJ, "Backup of recent changes to ID file for %A")
+#define STR_BSAFE_NEW_REC_INFO_SBJ (PKG_BSAFE_STR+85)
+ stringtext (STR_BSAFE_NEW_REC_INFO_SBJ, "New ID file recovery information is attached. Please add it to your ID file by using the Actions menu %s option.")
+
+
+/*PKG_BSAFE_STR bsafe strings up to 127 */
+
+#define ERR_BSAFE3_TE_ALLOC ERR_BSAFE_NOMEMORY
+#define ERR_BSAFE3_TE_ATTRIBUTE_COUNT ERR_ASN1_INV_SYNTAX
+#define ERR_BSAFE3_TE_ATTRIBUTE_NOT_FOUND ERR_ASN1_INV_SYNTAX
+#define ERR_BSAFE3_TE_ATTRIBUTE_TAG ERR_ASN1_INV_SYNTAX
+#define ERR_BSAFE3_TE_ATTRIBUTE_TYPE ERR_BSAFE2_ATTRIBUTE_UNKNOWN
+#define ERR_BSAFE3_TE_ATTRIBUTE_VALUE ERR_ASN1_ILL_DATATYPE
+#define ERR_BSAFE3_TE_ATTRIBUTE_VALUE_LEN ERR_ASN1_ILL_DATALENGTH
+
+#define ERR_BSAFE3_TE_BEGIN_PEM ERR_BSAFE_INV_MSG_FORMAT
+#define ERR_BSAFE3_TE_BER_ENCODING ERR_ASN1_INV_SYNTAX
+
+#define ERR_BSAFE3_TE_CANCEL ERR_BSAFE_CANCELED
+#define ERR_BSAFE3_TE_CERT_ENCODING ERR_BSAFE_INV_CERT
+#define ERR_BSAFE3_TE_CERT_OBJ ERR_BSAFE_INV_CERT
+
+#define ERR_BSAFE3_TE_CO_SET ERR_BSAFE_BADCTX
+
+#define ERR_BSAFE3_TE_CRL_ENCODING ERR_BSAFE_INV_CRL
+#define ERR_BSAFE3_TE_CRL_OBJ ERR_BSAFE_INV_CRL
+
+#define ERR_BSAFE3_TE_DATA ERR_BSAFE_GENERIC_DATA
+#define ERR_BSAFE3_TE_DBASE ERR_BSAFE_BADCTX
+#define ERR_BSAFE3_TE_DEK_ALG_NOT_SUPPORTED ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE3_TE_DEK_ALG_UNKNOWN ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE3_TE_DIGEST_OBJ ERR_BSAFE_BADCTX
+#define ERR_BSAFE3_TE_ENHANCED_TEXT_STREAM ERR_BSAFE_DATA_STREAM
+
+#define ERR_BSAFE3_TE_EXPONENT_EVEN ERR_BSAFE_KEY_INV_FORMAT
+#define ERR_BSAFE3_TE_EXPONENT_LEN ERR_BSAFE_KEY_INV_FORMAT
+#define ERR_BSAFE3_TE_EXTENSIONS_OBJ ERR_BSAFE_INV_EXTENSIONS_OBJ
+#define ERR_BSAFE3_TE_EXTENSION_ALREADY_EXISTS ERR_BSAFE_CERT_EXT_EXISTS
+#define ERR_BSAFE3_TE_HARDWARE ERR_BSAFE_HARDWARE
+#define ERR_BSAFE3_TE_HEADER ERR_BSAFE_INV_MSG_FORMAT
+#define ERR_BSAFE3_TE_INDEX ERR_BSAFE4_TE_PARAMETER
+
+#define ERR_BSAFE4_TE_CERT_CHAIN ERR_BSAFE_MAKING_CERT_CHAIN
+#define ERR_BSAFE4_TE_INPUT_LEN ERR_BSAFE_GENERIC_DATA
+#define ERR_BSAFE4_TE_INPUT_STREAM ERR_BSAFE_DATA_STREAM
+
+#define ERR_BSAFE4_TE_IO ERR_BSAFE_DATA_STREAM
+#define ERR_BSAFE4_TE_LIST_OBJ ERR_BSAFE_BADCTX
+#define ERR_BSAFE4_TE_ME_SET ERR_BSAFE_BADCTX
+#define ERR_BSAFE4_TE_MESSAGE_SIGNATURE ERR_BSAFE_BAD_SIGNATURE
+#define ERR_BSAFE4_TE_MIC_ALG_NOT_SUPPORTED ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE4_TE_MIC_ALG_UNKNOWN ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE4_TE_MODULUS_LEN ERR_BSAFE_BAD_KEY_LENGTH
+#define ERR_BSAFE4_TE_NAME_OBJ ERR_BSAFE_BADCTX
+#define ERR_BSAFE4_TE_NEED_RANDOM ERR_BSAFE_BAD_RANDOM_STATE
+#define ERR_BSAFE4_TE_NOT_FOUND ERR_BSAFE_CERTCRL_NOT_FOUND
+#define ERR_BSAFE4_TE_NOT_ME (PKG_NSF+101) /* ERR_NOT_SEALED_FOR_YOU nsferr.h */
+#define ERR_BSAFE4_TE_NOT_SUPPORTED ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE4_TE_OUTPUT_LEN ERR_BSAFE_TOOSMALL
+#define ERR_BSAFE4_TE_OUTPUT_STREAM ERR_BSAFE_DATA_STREAM
+
+#define ERR_BSAFE4_TE_PASSWORD (PKG_SECURE+8) /* ERR_SECURE_BADPASSWORD secerr.h */
+#define ERR_BSAFE4_TE_PBE_ALG_NOT_SUPPORTED ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE4_TE_PBE_ALG_UNKNOWN ERR_BSAFE_UNSUPPORTED_CRYPTO_OP
+#define ERR_BSAFE4_TE_PKCS_INPUT_STREAM ERR_BSAFE_DATA_STREAM
+#define ERR_BSAFE4_TE_PKCS_OUTPUT_STREAM ERR_BSAFE_DATA_STREAM
+#define ERR_BSAFE4_TE_PKCS_STREAM ERR_BSAFE_DATA_STREAM
+
+#define ERR_BSAFE4_TE_PRIVATE_KEY ERR_BSAFE_KEY_INV_FORMAT
+#define ERR_BSAFE4_TE_PROCESS ERR_BSAFE4_TE_PARAMETER
+#define ERR_BSAFE4_TE_PROTECTED_DATA ERR_BSAFE_BADDATA
+#define ERR_BSAFE4_TE_PUBLIC_KEY ERR_BSAFE_KEY_INV_FORMAT
+#define ERR_BSAFE4_TE_RANDOM_OBJ ERR_BSAFE_BAD_RANDOM_STATE
+#define ERR_BSAFE4_TE_SIGNATURE_ALG_NOT_SUPPORTED ERR_BSAFE_UNSUPPORTED_CERTCRLSIG
+#define ERR_BSAFE5_TE_SIGNATURE_ALG_UNKNOWN ERR_BSAFE_UNSUPPORTED_CERTCRLSIG
+
+#define ERR_BSAFE5_TE_TEXT_ENCODING ERR_BSAFE_INV_MSG_FORMAT
+#define ERR_BSAFE5_TE_TEXT_STREAM ERR_BSAFE_DATA_STREAM
+#define ERR_BSAFE5_TE_TOKEN ERR_BSAFE4_TE_PARAMETER
+#define ERR_BSAFE5_TE_VALIDITY (PKG_SECURE+28) /* ERR_SECURE_EXPIRED_CERT secerr.h */
+#define ERR_BSAFE5_TE_YOU_SET ERR_BSAFE_BADCTX
+
+#define ERR_CERT_MALFORMED ERR_BSAFE_INV_CERT
+#define ERR_KEYRING_MUSTBE_CA ERR_BSAFE_MUSTBE_CERTIFIER
+
+
+#endif
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/extmgr.h b/plugins/LotusNotify/src/cnotesapi/include/extmgr.h
new file mode 100644
index 0000000000..0d772a4be4
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/extmgr.h
@@ -0,0 +1,492 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1995, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+/* Extension Manager for Notes */
+
+#ifndef EXMGR_DEFS
+#define EXMGR_DEFS
+
+#ifndef NSF_DATA_DEFS
+#include "nsfdata.h" /* We need DBHANDLE */
+#endif
+
+#ifndef NIF_DEFS
+#include "nif.h" /* We need HCOLLECTION */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Extension identifier */
+
+typedef WORD EID;
+
+/* handle passed back to identify registration */
+
+typedef DWORD HEMREGISTRATION;
+
+/* extension record; this data structure is passed to the callback routine */
+
+typedef struct
+ {
+ EID EId; /* identifier */
+ WORD NotificationType; /* EM_BEFORE or EM_AFTER */
+ STATUS Status; /* core error code */
+ VARARG_PTR Ap; /* ptr to args */
+ } EMRECORD;
+
+/* the callback; takes one argument */
+
+typedef STATUS (LNCALLBACKPTR EMHANDLER)(EMRECORD far *);
+
+/* Constants used in NotificationType */
+
+#define EM_BEFORE 0
+#define EM_AFTER 1
+
+/* Flags which can be passed to EMRegister */
+
+#define EM_REG_BEFORE 0x0001
+#define EM_REG_AFTER 0x0002
+
+/* prototypes */
+
+STATUS LNPUBLIC EMRegister(EID EmID, DWORD Flags, EMHANDLER Proc, WORD RecursionID, HEMREGISTRATION far *rethRegistration);
+STATUS LNPUBLIC EMDeregister(HEMREGISTRATION hRegistration);
+STATUS LNPUBLIC EMCreateRecursionID(WORD far *retRecursionID);
+
+
+#define EM_NSFDBCLOSESESSION 1
+#define EM_NSFDBCLOSE 2
+#define EM_NSFDBCREATE 3
+#define EM_NSFDBDELETE 4
+#define EM_NSFNOTEOPEN 5
+#define EM_NSFNOTECLOSE 6
+#define EM_NSFNOTECREATE 7
+#define EM_NSFNOTEDELETE 8
+#define EM_NSFNOTEOPENBYUNID 10
+#define EM_FTGETLASTINDEXTIME 11
+#define EM_FTINDEX 12
+#define EM_FTSEARCH 13
+#define EM_NIFFINDBYKEY 14
+#define EM_NIFFINDBYNAME 15
+#define EM_NIFOPENNOTE 17
+#define EM_NIFREADENTRIES 18
+#define EM_NIFUPDATECOLLECTION 20
+#define EM_NSFDBALLOCOBJECT 22
+#define EM_NSFDBCOMPACT 23
+#define EM_NSFDBDELETENOTES 24
+#define EM_NSFDBFREEOBJECT 25
+#define EM_NSFDBGETMODIFIEDNOTETABLE 26
+#define EM_NSFDBGETNOTEINFO 29
+#define EM_NSFDBGETNOTEINFOBYUNID 30
+#define EM_NSFDBGETOBJECTSIZE 31
+#define EM_NSFDBGETSPECIALNOTEID 32
+#define EM_NSFDBINFOGET 33
+#define EM_NSFDBINFOSET 34
+#define EM_NSFDBLOCATEBYREPLICAID 35
+#define EM_NSFDBMODIFIEDTIME 36
+#define EM_NSFDBREADOBJECT 37
+#define EM_NSFDBREALLOCOBJECT 39
+#define EM_NSFDBREPLICAINFOGET 40
+#define EM_NSFDBREPLICAINFOSET 41
+#define EM_NSFDBSPACEUSAGE 42
+#define EM_NSFDBSTAMPNOTES 43
+#define EM_NSFDBWRITEOBJECT 45
+#define EM_NSFNOTEUPDATE 47
+#define EM_NIFOPENCOLLECTION 50
+#define EM_NIFCLOSECOLLECTION 51
+#define EM_NSFDBGETBUILDVERSION 52
+#define EM_NSFDBRENAME 54
+#define EM_NSFDBITEMDEFTABLE 56
+#define EM_NSFDBREOPEN 59
+#define EM_NSFDBOPENEXTENDED 63
+#define EM_NSFNOTEOPENEXTENDED 64
+#define EM_TERMINATENSF 69
+#define EM_NSFNOTEDECRYPT 70
+#define EM_GETPASSWORD 73
+#define EM_SETPASSWORD 74
+#define EM_NSFCONFLICTHANDLER 75
+#define EM_MAILSENDNOTE 83
+#define EM_CLEARPASSWORD 90
+#define EM_NSFNOTEUPDATEXTENDED 102
+#define EM_SCHFREETIMESEARCH 105
+#define EM_SCHRETRIEVE 106
+#define EM_SCHSRVRETRIEVE 107
+#define EM_NSFDBCOMPACTEXTENDED 121
+#define EM_ADMINPPROCESSREQUEST 124
+#define EM_NIFGETCOLLECTIONDATA 126
+#define EM_NSFDBCOPYNOTE 127
+#define EM_NSFNOTECOPY 128
+#define EM_NSFNOTEATTACHFILE 129
+#define EM_NSFNOTEDETACHFILE 130
+#define EM_NSFNOTEEXTRACTFILE 131
+#define EM_NSFNOTEATTACHOLE2OBJECT 132
+#define EM_NSFNOTEDELETEOLE2OBJECT 133
+#define EM_NSFNOTEEXTRACTOLE2OBJECT 134
+#define EM_NSGETSERVERLIST 135
+#define EM_NSFDBCOPY 136
+#define EM_NSFDBCREATEANDCOPY 137
+#define EM_NSFDBCOPYACL 138
+#define EM_NSFDBCOPYTEMPLATEACL 139
+#define EM_NSFDBCREATEACLFROMTEMPLATE 140
+#define EM_NSFDBREADACL 141
+#define EM_NSFDBSTOREACL 142
+#define EM_NSFDBFILTER 143
+#define EM_FTDELETEINDEX 144
+#define EM_NSFNOTEGETINFO 145
+#define EM_NSFNOTESETINFO 146
+#define EM_NSFNOTECOMPUTEWITHFORM 147
+#define EM_NIFFINDDESIGNNOTE 148
+#define EM_NIFFINDPRIVATEDESIGNNOTE 149
+#define EM_NIFGETLASTMODIFIEDTIME 150
+#define EM_FTSEARCHEXT 160
+#define EM_NAMELOOKUP 161
+#define EM_NSFNOTEUPDATEMAILBOX 164
+#define EM_NIFFINDDESIGNNOTEEXT 167
+#define EM_AGENTOPEN 170
+#define EM_AGENTRUN 171
+#define EM_AGENTCLOSE 172
+#define EM_AGENTISENABLED 173
+#define EM_AGENTCREATERUNCONTEXT 175
+#define EM_AGENTDESTROYRUNCONTEXT 176
+#define EM_AGENTSETDOCUMENTCONTEXT 177
+#define EM_AGENTSETTIMEEXECUTIONLIMIT 178
+#define EM_AGENTQUERYSTDOUTBUFFER 179
+#define EM_AGENTREDIRECTSTDOUT 180
+#define EM_SECAUTHENTICATION 184
+#define EM_NAMELOOKUP2 185
+#define EM_NSFDBHASPROFILENOTECHANGED 198
+#define EM_NSFMARKREAD 208
+#define EM_NSFADDTOFOLDER 209
+#define EM_NSFDBSPACEUSAGESCALED 210 /* V6 */
+#define EM_NSFDBGETMAJMINVERSION 222 /* V5.09 */
+#define EM_ROUTERJOURNALMESSAGE 223 /* V6 */
+
+/* V6 SMTP hooks */
+#define EM_SMTPCONNECT 224
+#define EM_SMTPCOMMAND 225
+#define EM_SMTPMESSAGEACCEPT 226
+#define EM_SMTPDISCONNECT 227
+#define EM_NSFARCHIVECOPYNOTES 228
+#define EM_NSFARCHIVEDELETENOTES 229
+#define EM_NSFNOTEEXTRACTWITHCALLBACK 235
+#define EM_NSFDBSTAMPNOTESMULTIITEM 239
+#define EM_MEDIARECOVERY_NOTE 244
+
+/* These functions are not actually defined (thus their declarations are only
+ in comments) but illustrate the arguments for the corresponding extension
+ manager callouts.
+
+ EM_ROUTERJOURNALMESSAGE occurs when the router has received a message that has been
+ marked to be journalled.
+
+ STATUS LNPUBLIC JournalMessage(DBHANDLE hMailBoxHandle,
+ NOTEID NoteID);
+
+ EM_SETPASSWORD occurs when an ID file password is being set, either by
+ a user or by administrator action.
+
+ STATUS LNPUBLIC SetPassword (
+ DWORD MaxPwdLen, Longest password you may supply
+ DWORD far *retLength, Return the length of the password
+ char far *retPassword, Return the password here
+
+ char far *FileName, The name of the ID file
+ char far *OwnerName, The name of the owner of the ID file
+
+ DWORD DataLen, The old length of the extra ID info
+ BYTE far *Data, The old value of the extra ID info
+
+ DWORD MaxNewData, The max amount of extra ID info you may supply
+ DWORD far *retNewDataLen, Return the length of the new ID info
+ BYTE far *retNewData); Return the new ID info
+
+ EM_GETPASSWORD occurs when a user is about to be prompted for a password
+ to decrypt and ID file.
+
+ STATUS LNPUBLIC GetPassword (
+ DWORD MaxPwdLen, Longest password you may supply
+ DWORD far *retLength, Return the length of the password here
+ char far *retPassword, Return the password here
+
+ char far *FileName, The name of the ID file
+ char far *OwnerName, The name of the owner of the ID file
+
+ DWORD DataLen, The length of the extra ID info
+ BYTE far *Data); The extra ID info
+
+ EM_CLEARPASSWORD occurs when a password is to be "cleared" either due to
+ a timeout or because the user has pressed F5.
+
+ STATUS LNPUBLIC ClearPassword ();
+
+
+ STATUS LNPUBLIC ConflictHandler (
+ HANDLE hDb, Database Handle
+ HANDLE hOldNote, Original Note Handle
+ HANDLE hNewNote, New Note Handle
+ DWORD *pAction); Conflict Action to take
+
+ *pAction returns:
+ CONFLICT_ACTION_MERGE - Have Notes try to merge
+ CONFLICT_ACTION_HANDLE - User handled the conflict
+ (zero) - Proceed with Conflict in normal manner
+
+
+ EM_ADMINPPROCESSREQUEST occurs prior to and after the Administration Process has
+ processed a request on a server.
+
+ STATUS LNPUBLIC ProcessRequest (
+ NOTEHANDLE nhRequest, The handle of the Admin Request note
+ NOTEHANDLE nhResponse); The handle of the Admin Log note
+
+
+ EM_TERMINATENSF occurs when NSF service terminates for the process.
+
+ void LNPUBLIC TerminateNSF (void *unused_params);
+
+
+ EM_NSFNOTEUPDATEMAILBOX occurs when a NSFNoteUpdate is performed on
+ any and all mailbox databases (e.g. mail.box). This is true even if
+ multiple mailboxes are enabled in the server configuration document.
+ The arguments are identical to those used for EM_NSFNOTEUPDATE.
+
+
+ EM_NIFOPENNOTE opens a note by index position and optionally navigates.
+ It is used by the Notes Editor.
+
+ STATUS LNPUBLIC NIFOpenNote (
+ HCOLLECTION hCollection,
+ COLLECTIONPOSITION far *IndexPos,
+ WORD Navigator,
+ WORD FallbackNavigator,
+ NOTEID NoteID,
+ DWORD OpenFlags,
+ INDEXSPECIALINFO far *retIndexInfo,
+ HANDLE far *rethNote);
+
+
+ EM_NSFNOTEOPENEXTENDED is a Notes internal, extended form of NSFNoteOpen.
+
+ STATUS LNPUBLIC NSFNoteOpenExtended (
+ DBHANDLE hDB,
+ NOTEID NoteID,
+ DWORD flags,
+ DWORD SinceSeqNum,
+ BYTE *pKey,
+ HANDLE *rtn);
+
+
+ EM_MAILSENDNOTE is called when the Mailer sends an open note to recipients
+ listed in the note's header items.
+
+ STATUS LNPUBLIC MailSendNote (
+ HANDLE hNote,
+ void *internalViewDesc,
+ WORD Flags,
+ BOOL *Modified,
+ void *SendNoteCtx);
+
+
+ EM_NSFMARKREAD is called when a note is opened by the Notes client and marked READ.
+ Note that this does not include other mechanisms that could result in a note being
+ marked read, such as being read by the client on another replica.
+
+ STATUS LNPUBLIC NSFMarkRead(
+ DBHANDLE hDB, - Handle of database containing note being marked
+ HANDLE hNote, - Handle to note being marked read
+ NOTEID NoteID); - NoteID of the note being marked read
+
+
+ EM_NSFADDTOFOLDER is called when a note is being added or removed
+ from a folder. The IsAddOperation flag should be checked to determine
+ if this note is being added or removed from the folder.
+
+ STATUS LNPUBLIC NSFAddToFolder(
+ DBHANDLE hViewDB, - Handle of database containing folder
+ DBHANDLE hDataDB, - Handle of database containing notes being added to folder
+ NOTEID FolderNoteID, - NoteID of the folder note
+ NOTEID NoteID, - NoteID of the note being added to (removed from) the folder
+ UNID *NoteUNID, - UNID of the note being added to (removed from) the folder
+ BOOL IsAddOperation, - TRUE if note being added to the folder, FALSE if note being removed
+ TIMEDATE *RevisionTime); - Time of original folder addition (OPTIONAL - may be NULL)
+
+ EM_SMTPCONNECT is called when an inbound SMTP connection has been detected.
+
+ The Extension Manager EM_BEFORE notification type for the EM_SMTPCONNECT event occurs when an
+ inbound SMTP connection has been detected and prior to the execution of the internal Domino SMTP
+ restriction controls. Callback routine can implement their own anti-relay checks and bypass
+ Domino related checks through the use of PossibleRelay BOOL and return status of value NOERROR.
+ Return STATUS other than ERR_EM_CONTINUE or NOERROR sets AccessDenied flag which causes subsequent
+ commands to be rejected.
+
+ The Extension Manager EM_AFTER notification type for the EM_SMTPCONNECT event occurs after the SMTP
+ listener task has accepted the connection but prior to sending the SMTP greeting to the connecting host.
+
+ STATUS LNPUBLIC SMTPConnect(
+ DWORD SessionID, - Unique session identifier
+ char *RemoteIP, - NULL terminated string containing IP address of connecting host
+ char *RemoteHost, - NULL terminated string containing host name of connecting host if reverse DNS
+ lookup was successful. If lookup was unsuccessful, the string length will be zero.
+ BOOL &PossibleRelay, - Indicator whether connecting host should be treated as possible relay or not
+ char *Greeting, - Greeting that will be returned to the connecting host
+ - Greeting is NULL during EM_BEFORE notification
+ DWORD MaxGreetingLength); - Size of buffer allocated to modify Greeting
+
+ EM_SMTPCOMMAND is called whenever a SMTP command has been received by the SMTP task.
+
+ The Extension Manager EM_BEFORE notification type for the EM_SMTPCOMMAND event occurs whenever a SMTP
+ command has been received by the SMTP listener task but prior to the parsing of the command.
+
+ Domino allocates a buffer that can be used by callback routines for the EM_BEFORE notification to modify
+ the command and thus change internal Domino processing. NOERROR return status indicates to skip parsing
+ and execution of command. The default reply when STATUS is NOERROR is "250 OK". Return STATUS values
+ other than ERR_EM_CONTINUE and NOERROR from the EM_BEFORE notification results in the command being
+ rejected. A default error message will be generated by the Domino SMTP server, which can be modified by
+ the callback routine for the EM_AFTER notification. STATUS of ERR_EM_CONTINUE will continue normal Domino
+ processing.
+
+ SMTP response to the command entered can be modified during the callback routine of EM_AFTER notification.
+ Care must be taken not to change the reply code from success to failure or vice-versa as this will cause
+ the sender-SMTP and receiver-SMTP servers to be out of synch. Domino supplies a buffer that can
+ be used by the callback routine to change the SMTP response.
+
+ STATUS LNPUBLIC SMTPCommand(
+ DWORD SessionID, - Unique session identifier
+ char *Command, - NULL terminated string containing SMTP command and arguments received
+ DWORD MaxCommandLength, - Size of buffer allocated to modify Command
+ char *SMTPReply, - SMTP response that will be returned to the connecting host
+ - SMTPReply is NULL during EM_BEFORE notification
+ DWORD SMTPReplyLength); - Size of buffer allocated to modify SMTPReply
+
+ EM_SMTPMESSAGEACCEPT is called following the receipt of "end of mail data indicator", a line containing a single
+ period, and itemization of the MIME stream into an in-memory note.
+
+ Following the receipt of the "end of mail data indicator", the resulting stream is itemized to an
+ in-memory note. The Extension Manager EM_BEFORE notification type for the EM_SMTPMESSAGEACCEPT event
+ occurs following itemization but prior to adding the note to the mailbox. If the callback routine
+ returns STATUS of NOERROR, the Domino SMTP server will stop further processing of the message. By default
+ a success response is generated by core Domino code when NOERROR STATUS has been returned. It is also
+ possible for the callback routine to intercept the message and deposit to database where scans can be
+ performed. The Callback routine can make changes to the note in the EM_BEFORE event but should not
+ attempt to close the note as this is done by the core code.
+
+ The Extension Manager EM_AFTER notification type for the EM_SMTPMESSAGEACCEPT event occurs after the SMTP
+ listener task attempted to submit the message to the mailbox but prior to sending a reply. The Callback
+ routines for the EM_AFTER notification can change the reply returned to the connecting host however, care
+ must be taken not to change the reply code from success to error or vice-versa as this would cause the
+ sender-SMTP and receiver-SMTP servers to be out of synch.
+
+ STATUS LNPUBLIC SMTPMessageAccept(
+ DWORD SessionID, - Unique session identifier
+ NOTEHANDLE Note, - Note containing the itemized message
+ char *SMTPReply, - SMTP Response that will be returned to the connecting host
+ - SMTPReply is NULL during EM_BEFORE notification
+ DWORD SMTPReplyLength); - Size of buffer allocated to modify SMTPReply
+
+ EM_SMTPDISCONNECT is called when a SMTP connection is being torn down. This includes normal and abnormal disconnects,
+ such as when the QUIT command is issued or when a session times out.
+
+ STATUS LNPUBLIC SMTPDisconnect(
+ DWORD SessionID); - Unique session identifier
+
+
+ The following 2 archive calls are NOT defined
+
+ EM_NSFARCHIVEDELETENOTES is called after documents have been selected and copied to
+ the destination db if desired. It is time for archiving to delete the archived notes
+ that qualify from the source database
+
+ STATUS LNPUBLIC NSFArchiveDeleteNotes(
+ DBHANDLE hDB, - handle of the source db where notes will be deleted from
+ HANDLE hTempIDTable, - handle of the id table containing the notes ids to be deleted
+ DWORD dwFlags ); - none at this time
+
+
+ EM_NSFARCHIVECOPYNOTES is called after documents have been selected for archiving and
+ copies them from the source db to the specified destination db
+
+ STATUS LNPUBLIC NSFArchiveCopyNotes(
+ DBHANDLE hSrcDB, - dbhandle of the source db
+ DBHANDLE hDestDB, - dbhandle of the destination db
+ HANDLE hIdTable, - handle to the id table containing the note ids to be copied to the dest
+ DWORD dwFlags, - none at this time
+ TIMEDATE *ptdSrcMod, - pointer to a timedate for last modified time of source db
+ REPLFILESTATS *pStats); - pointer to a REPLFILESTATS strcuture containing the stats of the copy
+
+
+ The following functions ARE defined, but their extension manager callouts
+ have slightly different signatures than the standard mechanism because of
+ the fact that the function returns something other than STATUS. The
+ extension manager callout has an added argument which allows the callout
+ to write the return value of the API routine. For purposes of the callout,
+ it is as if the function signatures were as follows.
+
+ STATUS LNPUBLIC AgentIsEnabled(HAGENT hAgent, BOOL *return_value);
+
+ EM_SECAUTHENTICATION is called on the server after the Notes Authentication
+ succeeds but before the session is opened.
+
+ STATUS LNPUBLIC Authentication (WORD wEvent
+ ,SESSIONID SessionId
+ ,char far * pRemoteName
+ ,DWORD dwFlags
+ ,WORD wNetProtocol
+ ,char far * NetAddress
+ ,void far * vpNull
+ )
+
+
+
+ This function is called every time a note is encountered during database media recovery. The database being recovered can
+ not be changed in any way but the note can be, for example, copied off to a different database. This can be used, for example,
+ for salavaging the content of notes which are going to be deleted at a later point in the media recovery process.
+
+ STATUS LNPUBLIC NSFDbMediaRecoveryNote(DBHANDLE hDB, HANDLE hNote, BOOL IsInsert, BOOL IsUpdate, BOOL IsDelete)
+
+*/
+/* Authentication Extension Manager flags
+*/
+#define fAuthRoleServer ((DWORD) 0x00000001)
+#define fAuthRolePassthruServer ((DWORD) 0x00000002)
+#define fAuthClientViaPassthruServer ((DWORD) 0x00000004)
+
+/* Authentication Extension Manager events
+*/
+#define AUTHEM_StartAuthentication ((WORD) 0x0000)
+#define AUTHEM_Poll ((WORD) 0x0001)
+#define AUTHEM_Identify ((WORD) 0x0002)
+#define AUTHEM_Terminate ((WORD) 0x0003)
+
+#define MAXAUTHEMNAMELENGTH 1024
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* EXMGR_DEFS */
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/global.h b/plugins/LotusNotify/src/cnotesapi/include/global.h
new file mode 100644
index 0000000000..ab29c19b25
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/global.h
@@ -0,0 +1,1242 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+/* Global Definitions */
+
+#ifndef GLOBAL_DEFS
+#define GLOBAL_DEFS
+
+/* Define the specific operating system products we run on:
+* Currently defined as:
+*
+* - OS2_1x = IBM OS/2 16-bit V1.x (NOW DESUPPORTED)
+* - OS2_2x = IBM OS/2 32-bit V2.x
+* - NT = Microsoft NT operating system.
+* - DOSW16 = Microsoft (DOS-based) Windows/16 V3.x (and NOT UNIX-based Win16)
+* - MAC_68K = Apple Macintosh on Motorola 680x0 processors
+* - MAC_POWERPC = Apple Macintosh on PowerMac 60x processors
+* - SUN = Sun OS (Solaris 1.0) Unix
+* - SOLARIS = Sun Solaris 2.0 Unix
+* - SOLX86 = Sun Solaris 2.x Unix on Intel processors
+* - OS400 = i5/OS for IBM iSeries
+* - AIX = IBM AIX Unix
+* - OS390 = IBM OS/390
+* - HPUX = HP-UX
+* - ODT = SCO OpenDeskTop
+* - UNIXWARE = Novell UnixWare
+* - OSF = Digital Unix
+* - NLM = Novell Netware Loadable Module
+*
+* Define the operating system API (may be used on multiple operating systems)
+*
+* - W = Microsoft Windows API
+* - W16 = Microsoft 16-bit Windows API
+* - W32 = Microsoft 32-bit Windows API
+* - MIRAGE = Uses UNIX Mirage product which emulates Windows/16 API
+* - UNIX = UNIX API (common to all UNIX platforms)
+* - OS2 = OS/2 Base Kernel Services API (either V1.x or V2.x)
+* - PM = OS/2 Presentation Manager API (either V1.x or V2.x)
+* - DOS = DOS INT21 API
+* - MAC = Macintosh Toolbox API
+*
+* Define OS architecture
+*
+* - "PREEMPTIVE" - OS supports preemptive multitasking
+* - "SEMAPHORES" - OS supports semaphores protecting critical regions,
+* as opposed to simply using Yields as critical
+* region protection mechanism
+* - "SEGMENTATION" - Memory addresses stay same across reallocations
+* - "THREADS" - OS supported "threads" of execution that implicitly
+* share DS, allocated data and code.
+* - "SINGLE_INSTANCE_DLL_DS" - DS in DLLs is shared system-wide
+* (as opposed to each process having its own copy)
+* - "LOCAL" - Addressing of "Local" memory (NEAR or FAR)
+* - "NOGUI" - OS has no graphical interface (e.g., NLM or VMS)
+* - "ENABLE_TRANSACTIONS" - OS supports Transaction Tracking
+* - "UNICODE" - OS API requires UNICODE strings, not single-byte strings
+*
+* Define the ways our executables are linked together:
+*
+* - "LINKED_WITH_STATIC_DRIVERS"
+* The network,database,ix drivers are statically linked
+* into the base executables (either single executable or
+* single shared library), and are NOT dynamically loaded
+* into memory when configured by the user.
+* If not defined, then the drivers are dynamically loaded
+* into memory when needed via OSLoadLibrary.
+* This symbol is tested to determine whether to load
+* the library or simply call the statically linked driver
+* directly.
+* - "LINKED_UI_TOGETHER"
+* The user interface portion of the client product (nem,
+* desk, view, edit) are statically linked into a single
+* executable, rather than in separate shared library DLLs.
+* This symbol is tested if the various subprograms need
+* to share copies of variables such as "gi" rather than
+* each having their own copy of the same variable of the
+* same name (which would be necessary if each subprogram
+* is in its own DLL).
+* - "LINKED_EVERYTHING_TOGETHER"
+* The user interface portion is statically linked with
+* the back end portion into a gigantic single executable.
+* Used on platforms where import/export shared libraries
+* do not exist.
+* - "RUNTIME_LOAD_LIBRARY_SUPPORTED"
+* TRUE if OSLoadLibrary supports the ability to dynamically
+* load a library at runtime, and return its main entry point.
+* If FALSE, OSLoadLibrary will at least support connecting
+* to statically linked pseudo-libraries within our own
+* executable, but not to customer-written addin DLLs.
+*
+* Define the byte ordering scheme:
+*
+* - "BIG_ENDIAN_ORDER" - Bytes are ordered MSB to LSB (e.g. 68000)
+* - "LITTLE_ENDIAN_ORDER" - Bytes are ordered LSB to MSB (e.g. 8086, VAX)
+*
+* Define the machine limitations:
+*
+* - ODS_NEEDED = Machine cannot support byte-aligned references
+* and requires struct padding and aligned read/reads
+* - REQUIRED_ALIGNMENT = Alignment required by processor to store largest data type to avoid a bus trap (usually DWORD)
+* - NATURAL_ALIGNMENT = Natural compiler alignment of the largest data type (usually a pointer)
+* - MEMALLOC_ALIGNMENT = Memory Allocation alignment: same as NATURAL_ALIGNMENT except for OS400 with 64 bit pointers
+* - COMPILER_DWORD_ALIGNMENT = Compiler's alignment of a DWORD within a struct
+* - COMPILER_NUMBER_ALIGNMENT = Compiler's alignment of NUMBER (usually a double)
+* This is the alignment the compiler will use for the "Alignment_do_not_use"
+* field of the ALIGNED_NUMBER union.
+*
+* Define the type/capabilities of the compiler we are using.
+* Currently defined as:
+*
+* - "MSC" = Microsoft C
+* - "GCC" = Gnu C
+* - "SYMANTEC_C" = Symantec C/C++ running under MPW on the Mac. (No longer supported in V5)
+* - "MWERKS_C" = Metrowerks C/C++ running under MPW on the Mac.
+* - "MR_C" = Apple MrC running under MPW on the Mac. (obsolete)
+* - "PPC_C" = PPC C on the Mac or PowerMac. (obsolete)
+* - "IBM_C" = IBM Cset/2 on OS2 2.0
+* - "WATCOM_C" = WATCOM C/386 in any env, such as OS/2 2 or Netware
+* - "SUN_C" = Sun native C compiler
+* - "HP_C" = HP native C compiler
+* - "XLC_C" = IBM AIX native C compiler (obsolete)
+* - "OS390_C" = IBM MVS/ESA C/C++ compiler
+* - "UW_C" = UnixWare native C compiler
+* - "ZORTECH_CPP" = Zortech C++ compiler for OS/2
+* - "ILEC400" = OS/400 ILE C cross-compiler for AIX
+*
+* Define the configuration's official name, used in the undocumented
+* @Platform function for some our templates such as NAMES.NSF.
+*
+* - PLATFORM_NAME
+*
+* Define some datatypes which are considered standard by all modules:
+*
+* BYTE = unsigned 8 bit integer
+* SBYTE = signed 8 bit integer
+* WORD = unsigned 16 bit integer
+* SWORD = signed 16 bit integer
+* DWORD = unsigned 32 bit integer
+* LONG = signed 32 bit integer
+* BOOLBYTE= boolean value which occupies exactly 1 byte
+* STATUS = Notes-specific 16-bit error code and string resource identifier
+* NUMBER = A platform-independent IEEE-64 floating point number
+* char = A byte which is part of a LMBCS character string
+*
+* BOOL = boolean value (used in arguments, arbitrary size)
+* (DO NOT USE IN ON-DISK STRUCTURES - MACHINE DEPENDENT SIZE)
+* FLAG = boolean value, ONLY used in bit fields in structs (arbitrary size)
+* (DO NOT USE IN ON-DISK STRUCTURES - MACHINE DEPENDENT POSITION)
+* short = signed integer at least 8 bits wide
+* (DO NOT USE IN ON-DISK STRUCTURES - MACHINE DEPENDENT SIZE)
+* int = signed integer at least 16 bits wide
+* (DO NOT USE IN ON-DISK STRUCTURES - MACHINE DEPENDENT SIZE)
+* long = signed integer at least 32 bits wide
+* (DO NOT USE IN ON-DISK STRUCTURES - MACHINE DEPENDENT SIZE)
+* NCHAR = A platform-specific character (1 or 2 bytes depending if UNICODE is enabled)
+* (DO NOT USE IN ON-DISK STRUCTURES - MACHINE DEPENDENT SIZE)
+*/
+
+#if defined(DOSW16) || defined(DOS)
+ #ifdef _MSC_VER
+ #define MSC
+ #endif
+ #define LITTLE_ENDIAN_ORDER
+ #if defined(W) || defined(W16) || defined(DOSW16)
+ #ifndef W16
+ #define W16
+ #endif
+ #ifndef W
+ #define W
+ #endif
+ #ifndef DOSW16
+ #define DOSW16
+ #endif
+ #define SEGMENTATION
+ #define SEMAPHORES
+ #define SEMSPIN
+ #define PLATFORM_NAME "Windows/16"
+ #else
+ #define PLATFORM_NAME "MS-DOS"
+ #define NOGUI
+ #endif
+ #ifndef DOS
+ #define DOS
+ #endif
+ #define SINGLE_INSTANCE_DLL_DS
+ #define ODS_NEEDED FALSE
+ #define COMPILER_INT_SIZE 2
+ #define REQUIRED_ALIGNMENT 1
+ #define COMPILER_DWORD_ALIGNMENT 1
+ #define COMPILER_NUMBER_ALIGNMENT 1
+ #define VIM_USE_MSWIN
+#elif defined(OS400) /* This should appear before the OS2 test below, because that section tests for __IBMCPP__,
+ which our C++ compiler also generates */
+ #define PLATFORM_NAME "OS/400"
+ #ifndef UNIX
+ #define UNIX
+ #endif
+ #ifndef W32
+ #define W32 /* Compile for Windows 32 API - its emulated */
+ #endif
+ #ifndef W
+ #define W /* Compile for Windows 32 API - its emulated */
+ #endif
+ #if !defined(MIRAGE) && !defined(INTERNOTES)
+ #define MIRAGE
+ #endif
+ #ifndef HANDLE_IS_32BITS
+ #define HANDLE_IS_32BITS
+ #endif
+ #define BIG_ENDIAN_ORDER
+ #define PREEMPTIVE
+ #define SEMAPHORES
+ #define SEMALLOC
+ #define ODS_NEEDED TRUE
+ #define COMPILER_INT_SIZE 4
+ #ifdef OS400_64 /* OS400 with 64 bit pointers */
+ #define REQUIRED_ALIGNMENT 8
+ #define NATURAL_ALIGNMENT 8
+ #define MEMALLOC_ALIGNMENT 16 /* some pointers will still be 128 bits */
+ #else /* OS400 with 128 bit pointers */
+ #define REQUIRED_ALIGNMENT 16
+ #define NATURAL_ALIGNMENT 16
+ #endif
+ #define PTRISNOT32BIT
+ #define COMPILER_DWORD_ALIGNMENT 4
+ #define COMPILER_NUMBER_ALIGNMENT 8
+ #define VIM_USE_UNIX
+ #define THREADS
+ #ifndef NOGUI
+ #define NOGUI
+ #endif
+ #if defined(__ILEC400__) || defined(__AIXxiCC__) || defined(__AIXxxlC400__)
+ #define ILEC400
+ #endif
+#elif defined(OS2) || defined(OS2_2x) || defined(PM)
+ #ifndef OS2
+ #define OS2
+ #endif
+ #ifndef OS2_2x
+ #define OS2_2x
+ #endif
+ #ifndef PM
+ #define PM
+ #endif
+ #if defined(__IBMC__) || defined(__IBMCPP__)
+ #define IBM_C
+ #endif
+ #ifdef __WATCOMC__
+ #define WATCOM_C
+ #endif
+ #define PLATFORM_NAME "OS/2v2"
+ #define LITTLE_ENDIAN_ORDER
+ #define PREEMPTIVE
+ #define SEMAPHORES
+ #define SEMALLOC
+ #define THREADS
+ #define ODS_NEEDED FALSE
+ #define COMPILER_INT_SIZE 4
+ #define REQUIRED_ALIGNMENT 1
+ #define COMPILER_DWORD_ALIGNMENT 1
+ #define COMPILER_NUMBER_ALIGNMENT 1
+ #define VIM_USE_OS2_32
+#elif defined(OS2_1x)
+ #ifndef OS2
+ #define OS2
+ #endif
+ #ifndef OS2_1x
+ #define OS2_1x
+ #endif
+ #ifndef PM
+ #define PM
+ #endif
+ #define PLATFORM_NAME "OS/2v1"
+ #ifdef __ZTC__
+ #define ZORTECH_CPP
+ #endif
+ #define MSC
+ #define LITTLE_ENDIAN_ORDER
+ #define PREEMPTIVE
+ #define SEMAPHORES
+ #define SEGMENTATION
+ #define THREADS
+ #define ODS_NEEDED FALSE
+ #define COMPILER_INT_SIZE 2
+ #define REQUIRED_ALIGNMENT 1
+ #define COMPILER_DWORD_ALIGNMENT 1
+ #define COMPILER_NUMBER_ALIGNMENT 1
+ #define VIM_USE_OS2_16
+#elif defined(NT) || (defined(W32) && !defined(UNIX))
+ #ifndef W32
+ #define W32
+ #endif
+ #ifndef W
+ #define W
+ #endif
+ #ifndef NT
+ #define NT
+ #endif
+ #define PLATFORM_NAME "Windows/32"
+ #ifdef _MSC_VER
+ #define MSC
+ #endif
+ #if defined(__IBMC__) || defined(__IBMCPP__)
+ #define IBM_C
+ #endif
+ #define THREADS
+ #define LITTLE_ENDIAN_ORDER
+ #define PREEMPTIVE
+ #define SEMAPHORES
+ #define SEMALLOC
+ #ifdef _X86_
+ #define ODS_NEEDED FALSE
+ /* Suppress "used #pragma pack to change alignment" */
+ #pragma warning(disable:4103)
+ /* Note: If you change the packing, you must also change inc\globpack.h */
+ #pragma pack(1)
+ #define REQUIRED_ALIGNMENT 1
+ #define COMPILER_DWORD_ALIGNMENT 1
+ #define COMPILER_NUMBER_ALIGNMENT 1
+ #else
+ #define ODS_NEEDED TRUE
+ #define REQUIRED_ALIGNMENT 4
+ #define COMPILER_DWORD_ALIGNMENT 4
+ #define COMPILER_NUMBER_ALIGNMENT 4
+ #endif
+ #define COMPILER_INT_SIZE 4
+ #define VIM_USE_MSWIN_NT
+ #define OLEW32
+ /* Enable some OLE definitions which are only available for NT 4.0 and
+ above. The programmer must be careful not to use them on other
+ Win32 platforms.
+ */
+#ifndef _WIN32_WINNT
+ #define _WIN32_WINNT 0x0400
+#endif
+#elif defined(MAC) || defined(applec) || defined(__PPCC__) || defined(__MWERKS__) || defined(__SC__) || defined(__MRC__) || defined(THINK_C)
+ #ifndef MAC
+ #define MAC
+ #endif
+ /* We have dropped support for System 6. Turning on this switch causes
+ Apple's headers to explicitly generate inline traps into the MacOS
+ rather than statically linking glue code into our executable. This
+ does 2 things: A) reduces size of our app slightly, and B) makes it
+ possible for Apple to fix a bug in the code (since the code resides
+ in the MacOS itself rather than statically linked into our app). */
+ #ifndef SystemSevenOrLater
+ #define SystemSevenOrLater TRUE
+ #endif
+ #if defined(__MWERKS__) /* Metrowerks MPW compiler */
+ #ifdef __powerc
+ #ifndef MAC_POWERPC
+ #define MAC_POWERPC
+ #endif
+ #else
+ #ifndef MAC_68K
+ #define MAC_68K
+ #endif
+ #endif
+ #ifndef MWERKS_C
+ #define MWERKS_C
+ #endif
+ #elif defined(__PPCC__) /* Apple "Macintosh on RISC" PPC cross-dev MPW compiler */
+ #ifndef MAC_POWERPC
+ #define MAC_POWERPC
+ #endif
+ #ifndef PPC_C
+ #define PPC_C
+ #endif
+ #elif defined(__xlc) || defined(__xlC) /* IBM "XLC" PPC native AIX-based compiler */
+ #ifndef MAC_POWERPC
+ #define MAC_POWERPC
+ #endif
+ #ifndef XLC_C
+ #define XLC_C
+ #endif
+ #elif defined(_MSC_VER) /* Microsoft Visual C++ 2.0 cross-dev compiler */
+ #ifndef MAC_68K
+ #define MAC_68K
+ #endif
+ #ifndef MSC
+ #define MSC
+ #endif
+ #elif defined(__MRC__) /* Apple/Symantec MrC MPW compiler */
+ #ifndef MAC_POWERPC
+ #define MAC_POWERPC
+ #endif
+ #ifndef MR_C
+ #define MR_C
+ #endif
+ #elif defined(applec) /* 68K MPW compiler */
+ #if defined(__SC__)
+ #ifndef MAC_68K
+ #define MAC_68K
+ #endif
+ #ifndef SYMANTEC_C
+ #define SYMANTEC_C
+ #endif
+ #endif
+ #elif defined(__GNUC__) /* gcc compiler on Mac OS X */
+ #ifndef MAC_POWERPC
+ #define MAC_POWERPC
+ #endif
+ #elif !defined(THINK_C)
+ #error Unknown Mac development environment
+ #endif
+ #define PLATFORM_NAME "Macintosh"
+ #define BIG_ENDIAN_ORDER
+ #define THREADS
+ #define SEMAPHORES
+ #define SEMSPIN
+ #define ODS_NEEDED TRUE
+ #define COMPILER_INT_SIZE 4
+ #if defined(MAC_POWERPC) && defined(XLC_C) /* All other compilers use "-align mac68k" (2 byte alignment) */
+ #define REQUIRED_ALIGNMENT 1 /* PowerPC supports odd-byte addressing if truly required */
+ #define COMPILER_DWORD_ALIGNMENT 4 /* Compiler will pad DWORDs to DWORD boundary if possible */
+ #define COMPILER_NUMBER_ALIGNMENT 4
+ #else
+ #define REQUIRED_ALIGNMENT 1 /* 68020 or later CPUs only (not 68000) */
+ #define COMPILER_DWORD_ALIGNMENT 2 /* Compiler will pad DWORDs to WORD boundary, because any further alignment is unnecessary */
+ #define COMPILER_NUMBER_ALIGNMENT 2
+ #endif
+ #define VIM_USE_MAC
+ /* Tdanalzye is a rudimentary parser, that is failing to correctly parse this long #if #elif statements.
+ * It is re-processing the UNIX section after it has already processed the OS400 section and incorrectly
+ * using a COMPILER_NUMBER_ALIGNMENT of 4. So for now, add a redundant !OS400, until tdanalzye is fixed.
+ */
+#elif defined(UNIX) && !defined(OS400)
+ #ifndef W32
+ #define W32 /* Compile for Windows 32 API - its emulated */
+ #endif
+ #ifndef W
+ #define W /* Compile for Windows 16 API - its emulated */
+ #endif
+ #if !defined(MIRAGE) && !defined(INTERNOTES)
+ #define MIRAGE
+ #endif
+ #define PLATFORM_NAME "UNIX"
+ #if defined(AIX)
+ #define XLC_C
+ #elif defined(SUN) || defined(SOLARIS)
+ #define SUN_C
+ #elif defined(HPUX)
+ #define HP_C
+ #elif defined(OS390)
+ #define OS390_C
+ #elif defined(UNIXWARE)
+ #define UW_C
+ #elif defined(__osf__)
+ #if !defined(OSF)
+ #define OSF
+ #endif
+ #define DEC_C
+ #elif defined(LINUX)
+ #define GCC
+ #endif
+ #if (defined(ODT) || defined(SOLX86) || defined(UNIXWARE) || defined(OSF) || defined(LINUX)) && !defined(ZLINUX)
+ #define LITTLE_ENDIAN_ORDER
+ #else
+ #define BIG_ENDIAN_ORDER
+ #endif
+ #define PREEMPTIVE
+ #define SEMAPHORES
+ #define SEMALLOC
+ /* All UNIX type platforms except Solaris,HPUX, and AIX are 32 bit handle platforms */
+ /* This needs to be here so that it is also included in the SDK */
+ #if !(defined(SOLARIS) || defined(HPUX) || defined(SOLX86) || defined(AIX))
+ #ifndef HANDLE_IS_32BITS
+ #define HANDLE_IS_32BITS
+ #endif
+ #endif
+ #if (defined(SOLARIS) || defined(AIX) || defined (HPUX) || defined(OS390) || defined(LINUX)) && !defined(DISABLE_THREADS)
+ #define THREADS
+ #endif
+ /* ODS needed, even for ODT (on x86 machines), because X includes
+ don't support having the compiler set for tight packing (-Zp1),
+ that is, they assume padding. With padding enabled, we must use
+ ODS even when theoretically unncessary. Perhaps the X headers
+ can be kludged to explicitly pad so that this is unnecessary. */
+ #if defined(ODT_LATER)
+ #define COMPILER_INT_SIZE 4
+ #define REQUIRED_ALIGNMENT 1
+ #define COMPILER_DWORD_ALIGNMENT 2
+ #define COMPILER_NUMBER_ALIGNMENT 2
+ #else
+ #define ODS_NEEDED TRUE
+ #define COMPILER_INT_SIZE 4
+ #if defined(OSF)
+ #define REQUIRED_ALIGNMENT 8
+ #else
+ #define REQUIRED_ALIGNMENT 4
+ #endif
+ #define COMPILER_DWORD_ALIGNMENT 4
+ #if defined(SOLARIS) || defined(HPUX) || defined(OS390) || defined(ZLINUX)
+ #define COMPILER_NUMBER_ALIGNMENT 8
+ #else
+ #define COMPILER_NUMBER_ALIGNMENT 4
+ #endif
+ #endif
+ #define VIM_USE_UNIX
+
+#elif defined(NLM)
+ #ifdef __WATCOMC__
+ #define WATCOM_C
+ #endif
+ #ifdef _MSC_VER
+ #define MSC
+ #endif
+ #define PLATFORM_NAME "NetWare"
+ #define LITTLE_ENDIAN_ORDER
+ #define SEMAPHORES
+ #define SEMALLOC
+ #define THREADS
+ #define SINGLE_INSTANCE_DLL_DS
+ #define ODS_NEEDED FALSE
+ #define COMPILER_INT_SIZE 4
+ #define REQUIRED_ALIGNMENT 1
+ #define COMPILER_DWORD_ALIGNMENT 1
+ #define COMPILER_NUMBER_ALIGNMENT 1
+ #define NOGUI
+ #define ENABLE_TRANSACTIONS
+ #define VIM_USE_NLM
+#else
+ #error Must specify type of OS ("DOS", "OS2", etc) on C command line!
+#endif
+#if (defined(SOLARIS) || defined(AIX)) && defined(Enable_New_SpinLocks)
+ #define USE_COND_SLEEP_ON_SPINLOCK 1
+#endif
+
+
+/* Nullify the certain compiler keywords if not supported by compiler */
+
+#if !defined(MSC) || defined(NT) || defined(MAC)
+
+ #if !defined(MAC) /* On Mac, "pascal" (lowercase) is a reserved word */
+ #ifdef pascal
+ #undef pascal
+ #endif
+
+ #if defined(_MSC_VER) && _MSC_VER >= 800
+ #define pascal __stdcall
+ #else
+ #define pascal
+ #endif
+ #endif /* !defined(MAC) */
+
+ #if defined(MAC)
+ #define PASCAL
+ #endif
+
+ #ifndef PASCAL
+ #define PASCAL
+ #endif
+
+ #ifdef cdecl
+ #undef cdecl
+ #endif
+
+ #define cdecl
+
+ #if !defined(MWERKS_C) /* In MWERKS_C, "far" is a reserved word, and cannot appear in an #ifdef expression */
+ #ifdef far
+ #undef far
+ #endif
+ #endif
+
+ #define far
+
+ #ifndef FAR
+ #define FAR
+ #endif
+
+ #ifdef near
+ #undef near
+ #endif
+
+ #define near
+
+ #ifndef NEAR
+ #define NEAR
+ #endif
+
+ #ifdef huge
+ #undef huge
+ #endif
+
+ #define huge
+
+#endif /* !defined(MSC) || defined(NT) || defined(MAC) */
+
+/* Nullify C keywords that are not supported by some compilers */
+
+#if defined(GCC)
+#if !defined(LINUX) /* These two are already handled with latest GCC headers on LINUX */
+ #define volatile
+ #define signed
+ #define const
+#endif
+#elif defined(HP_C) && defined(__cplusplus)
+ #define signed
+#elif defined(SUN_C) && defined(__cplusplus)
+ #define signed
+#endif
+
+/* Remove certain definitions if the Netware header files have defined
+ them previously, potentially in conflict with OUR definitions */
+
+#ifdef NLM
+ #undef BYTE
+ #undef WORD
+ #undef LONG
+#endif
+
+
+
+
+/* Handle loading of os2def.h up-front, since everyone needs it. */
+
+#ifdef OS2
+ #ifndef APIENTRY
+ #include "os2def.h"
+ #include "bsedos.h"
+ #endif
+#endif
+
+/* Same goes for NT include files */
+
+#ifdef NT
+ #ifndef _WINDEF_
+ #ifndef RC_INVOKED
+ /* Save packing around inclusion of Microsoft headers, just to
+ protect ourselves against their failure to restore packing
+ if they change it. This may not be needed anymore... */
+ #pragma pack(push, WinIncludes)
+ /* Set packing to be 4, to temporarily workaround a bug in wincon.h
+ where Microsoft incorrectly assumes natural packing instead of
+ setting it explicitly. */
+ #pragma pack()
+ #endif
+
+ #undef PASCAL
+ #undef FAR
+ #undef NEAR
+
+ /* Windows.h defines WINVER, but we seldom include windows.h
+ when using other windows headers.
+ */
+ #ifndef WINVER
+ #define WINVER 0x0500
+ #endif
+
+ /* Determine the processor type as required by the following Windows
+ includes */
+
+ #if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_MIPS_) && !defined(_X86_) && defined(_M_IX86)
+ #define _X86_
+ #endif
+
+ #if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_MRX000)
+ #define _MIPS_
+ #endif
+
+ #if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_ALPHA)
+ #define _ALPHA_
+ #endif
+
+ #if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_PPC)
+ #define _PPC_
+ #endif
+
+ #include <stdarg.h>
+ #define NOMINMAX
+ #include <windef.h>
+ #undef NOMINMAX
+ #include <winbase.h>
+ #include <WinVer.h>
+
+ #ifndef RC_INVOKED
+ #pragma pack(pop, WinIncludes)
+ #endif
+ #endif
+#endif
+
+
+#if defined(MAC)
+#if defined(MAC_OSX)
+ #include <Carbon/Carbon.h>
+#else
+ #include <MacTypes.h> /* Needed for basic "Handle", "Point", "Rect" typedefs */
+ #include <MacMemory.h> /* Needed for BlockMove() define */
+#endif
+#endif
+
+
+/* Determine what has been included BEFORE this module */
+
+#if defined(_INC_WINDOWS) /* WIN16 */ || defined(_WINDEF_) /* WIN32 */
+ #define WINDOWS_INCLUDED
+#endif
+
+#ifdef SEVERITY_NOERROR
+ #define OS2DEF_INCLUDED
+#endif
+
+
+
+/* Define datatypes which are also defined by other include files */
+
+#ifndef FAR
+ #define FAR far
+#endif
+#ifndef NEAR
+ #define NEAR near
+#endif
+#ifndef PASCAL
+ #define PASCAL pascal
+#endif
+
+#if !defined(OS2DEF_INCLUDED) && !defined(WINDOWS_INCLUDED)
+ #define VOID void
+ typedef unsigned char BYTE;
+ #if defined(LONGIS64BIT)
+ typedef int LONG;
+ #else
+ typedef long LONG;
+ #endif
+
+ #if defined(UNIX)
+ typedef int BOOL;
+ #elif defined(OS2_2x)
+ typedef unsigned long BOOL;
+ #elif defined(OS2_1x)
+ typedef unsigned short BOOL;
+ #elif defined(DOSW16)
+ typedef int BOOL;
+ #else
+ typedef short BOOL;
+ #endif
+ #define LOBYTE(w) ((BYTE)w)
+ #define HIBYTE(w) (((WORD)w >> 8) & 0xff)
+#endif
+
+#ifndef OS2DEF_INCLUDED
+ #ifndef _WINDEF_ /* USHORT, ULONG and UCHAR are already defined in windef.h */
+ typedef unsigned short int USHORT;
+ #if defined(LONGIS64BIT)
+ typedef unsigned int ULONG;
+ #else
+ typedef unsigned long ULONG;
+ #endif
+ typedef unsigned char UCHAR;
+ #endif /* _WINDEF_ */
+ #ifndef WINDOWS_INCLUDED /* This is also defined in windows.h */
+ typedef unsigned int UINT;
+ #endif
+#endif
+
+
+/* Define datatype which is used to represent a "resource file" */
+
+#ifndef HMODULE
+#if !defined(OS2) /* OS2 already defines this */
+ #define HMODULE HANDLE
+#endif
+#endif
+
+#if !defined(WINDOWS_INCLUDED)
+
+/* These symbols/typedefs ARE COPIED from WINDOWS.H, and are the
+ ONLY symbols that should be defined in this section! (This
+ is a help for modules that can't afford to include windows.h
+ and want to use a few of these helpful definitions. */
+
+ typedef unsigned short WORD; /* WORD = unsigned 16 bit integer */
+ #if defined(LONGIS64BIT)
+ typedef unsigned int DWORD; /* DWORD = unsigned 32 bit integer */
+ #else
+ typedef unsigned long DWORD;
+ #endif
+/* Windows defines a HANDLE as unsigned int, but the Mac needs it to be
+ unsigned short. In C, both are equivalent, but C++ is pickier */
+
+#if defined(DOSW16)
+ typedef unsigned int HANDLE; /* really a short, but compiler is picky */
+#elif defined(HANDLE_IS_32BITS)
+ typedef unsigned int HANDLE; /* 32-bit HANDLEs */
+#else
+ typedef unsigned short HANDLE;
+#endif
+
+
+ #define LOWORD(l) ((WORD)(DWORD)(l))
+ #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xffff))
+
+#else /* if WINDOWS_INCLUDED */
+
+ /* TEMPORARY: Fix a bug in the standard Windows LOWORD macro (see
+ also a copy of it above), which produces a C compiler warning
+ regarding loss of segment portion of a pointer. */
+
+ #undef LOWORD
+ #define LOWORD(l) ((WORD)(DWORD)(l))
+
+#endif
+
+
+
+
+/* Define our Notes-specific global data types */
+
+#define FLAG unsigned /* FLAG = 1-bit boolean value */
+ /* (Unsized, use ONLY in bitfields!) */
+#define BOOLBYTE BYTE /* BOOLBYTE = boolean used in DS */
+#define UBYTE BYTE /* UBYTE = unsigned 8 bit integer */
+#define SBYTE signed char /* SBYTE = signed 8 bit integer */
+#define SWORD signed short /* SWORD = signed 16 bit integer */
+
+typedef DWORD MEMHANDLE; /* MEMHANDLE = Handle returned by OSMemoryAllocate */
+#define NULLMEMHANDLE (MEMHANDLE) 0
+
+typedef WORD STATUS; /* STATUS = Status code (ERR_xxx) */
+ /* High byte is subsystem; */
+ /* Low byte is status code */
+typedef DWORD FONTID; /* Font identifier - see FONTID.H */
+
+typedef struct {
+ WORD width;
+ WORD height;
+} RECTSIZE;
+
+
+//commented for LotusNotify Miranga NG plugin beacouse of conflicts with miranda headers (struct LIST at m_system_cpp.h)
+///* List structure */
+//typedef struct {
+// USHORT ListEntries; /* list entries following */
+// /* now come the list entries */
+//} LIST;
+
+/* Range structure */
+
+typedef struct {
+ USHORT ListEntries; /* list entries following */
+ USHORT RangeEntries; /* range entries following */
+ /* now come the list entries */
+ /* now come the range entries */
+} RANGE;
+
+
+/* Basic time/date structure --
+ The following 2 structures are ONLY intended to be interpreted using
+ the "Time" package (see misc.h) conversion routines. These structures
+ are "bit-encoded", and cannot be parsed/interpreted easily. */
+
+typedef struct tagTIMEDATE {
+ DWORD Innards[2];
+} TIMEDATE;
+
+typedef struct { /* a timedate range entry */
+ TIMEDATE Lower;
+ TIMEDATE Upper;
+} TIMEDATE_PAIR;
+
+#ifndef OS2_2x /* OS2 2.x already defines this itself */
+#if defined(LONGIS64BIT)
+typedef long QWORD;
+#else
+//wsx22 change - commented typedef
+//http://social.msdn.microsoft.com/Forums/en/vcmfcatl/thread/ba3ce55a-dc91-4917-8bd6-c326595b4594
+//typedef struct {DWORD Dwords[2];} QWORD;
+#endif
+#endif
+
+/* Basic floating-point number structure --
+ This structure is EXACTLY the same format as a 64-bit IEEE floating
+ point number, usually defined in most C compilers as "double". */
+
+
+typedef double NUMBER; /* NSF floating type (IEEE 64-bit) */
+typedef NUMBER ALIGNED_NUMBER;
+#if defined(DOS) || defined(OS2) || defined(MAC) /* This doesn't work for NT, which has its own FLOAT */
+#define FLOAT NUMBER /* for pre-V3 backward compatibility ONLY */
+#define FLOAT_PAIR NUMBER_PAIR /* for pre-V3 backward compatibility ONLY */
+#endif /* DOS or OS2 */
+
+
+typedef struct { /* a float range entry */
+ NUMBER Lower;
+ NUMBER Upper;
+} NUMBER_PAIR;
+
+typedef NUMBER_PAIR ALIGNED_NUMBER_PAIR;
+
+/* This is the structure that defines a license number. Do not attempt
+ to interpret this structure too exactly, since it may change in future
+ releases. For now, simply treat the entire strucure as a unique ID. */
+
+typedef struct {
+ BYTE ID[5]; /* license number */
+ BYTE Product; /* product code, mfgr-specific */
+ BYTE Check[2]; /* validity check field, mfgr-specific */
+} LICENSEID;
+
+typedef WORD BLOCK; /* pool block handle */
+
+/* Define symbols for boolean true/false */
+
+#ifndef TRUE
+ #define FALSE 0
+ #define TRUE !FALSE
+#endif
+
+
+/* Define the NULL symbol (ignoring previous ones so that it is always a simple "0"). */
+
+#ifdef NULL
+#undef NULL
+#endif
+#define NULL 0
+
+/* Define the Notes calling convention macros. */
+
+#if !defined(OS2)
+
+#define LNPUBLIC FAR PASCAL /* Routines called from outside
+ a subsystem (includes routines
+ in the published API). */
+#define LNCALLBACK FAR PASCAL /* Routines specified as callbacks
+ within Notes or an API program */
+#if defined(OS390) && defined(__XPLINK__)
+#define LNCALLBACKPTR LNCALLBACK FAR * __callback /* Macro for defining a pointer to
+ a callback routine. __callback added
+ for XPLINK DLL to nonXPLINK DLL calls */
+#else
+#define LNCALLBACKPTR LNCALLBACK FAR * /* Macro for defining a pointer to
+ a callback routine */
+#endif /* OS390 */
+#define LNVARARGS FAR cdecl /* Routines with a variable number
+ of arguments */
+#else
+
+/* OS/2 requires separate macros because the ordering of function
+ modifiers for function pointer is different. This prevents us
+ from inserting _System in a uniform place (e.g. a replacemet
+ for PASCAL). See the comments above for their use.*/
+
+#define LNPUBLIC _System
+#define LNCALLBACK _System
+#define LNCALLBACKPTR * _System
+#define LNVARARGS _System
+#endif
+
+/* Define some obsolete macros that used to be used for OS/2 32-bit
+ programs that used the 16-bit Notes API. These macros are now
+ obsolete, but are here to help in backward compatibility for
+ these older programs. */
+
+#define NOTESMAIN LNPUBLIC
+#define NOTESAPI LNPUBLIC
+#define NOTESAPICDECL LNVARARGS
+#define NOTESCALLBACK LNCALLBACK
+#define NOTESCALLBACKPTR LNCALLBACKPTR
+#define NOTESPTR FAR *
+#define NOTESBOOL BOOL
+
+#ifdef NULLHANDLE
+#undef NULLHANDLE /* Override any existing defn (e.g. OS2 2.0) */
+#endif
+#define NULLHANDLE 0
+
+/* Define some miscellaneous constants */
+
+#ifndef MAXDWORD
+#define MAXDWORD ((DWORD) 0xffffffff)
+#endif
+#ifndef MAXWORD
+#define MAXWORD ((WORD) 0xffff)
+#endif
+#ifndef MAXBYTE
+#define MAXBYTE ((BYTE) 0xff)
+#endif
+
+#ifndef MAXINT
+#define MAXINT ((int) (((unsigned int) -1) >> 1))
+#endif
+
+#ifndef MININT
+#define MININT ((int) (~(unsigned int) MAXINT))
+#endif
+
+#ifndef BITS_PER_BYTE
+#define BITS_PER_BYTE 8
+#endif
+
+
+/* Define a platform-independent method of obtaining the address of
+ the "..." variable arguments in a "cdecl" "..." routine.
+
+ void far cdecl SampleRoutine(char *String, WORD LastNamedArgument, ...)
+ {
+ DWORD temp1;
+ WORD temp2;
+ VARARG_PTR ap;
+
+ VARARG_START(ap,LastNamedArgument); * Start out just past last named argument
+ temp1 = VARARG_GET(ap,DWORD); * Get next DWORD into temp1 and advance
+ temp2 = VARARG_PEEK(ap,WORD); * Peek at next WORD, but no advance
+ temp2 = VARARG_GET(ap,WORD); * Get next WORD into temp2 and advance
+ ...
+ }
+*/
+#define VARARG_ROUND_UP(n,unit) ((((n) + (unit) - 1) / (unit)) * (unit))
+
+#if defined(OSF) || (defined(NT) && defined(_ALPHA_)) || defined(LINUX) || defined(SOLARIS)
+#include <stdarg.h>
+#define VARARG_PTR va_list
+#elif defined(OS400)
+#include <stdarg.h>
+typedef struct
+ {
+ char* vaold;
+ char* vanew;
+ } VARARG_PTR;
+#else
+typedef char * VARARG_PTR;
+#endif
+
+/*
+ The C++ 3.0.1 compiler on X86 has a bug. The __builtin_va_arg_incr
+ doesn't work with short data type.
+ It works fine with 'cc'. So use the definition under 'LITTLE_ENDIAN_ORDER'
+*/
+#if defined(SOLARIS) && !defined(SOLX86)
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ ((_AP) = (char *) &__builtin_va_alist)
+#elif defined(SUN) && defined(GCC)
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ (__builtin_saveregs(), \
+ (_AP) = (char *) &(_LASTNAMEDARG) + sizeof(_LASTNAMEDARG))
+#elif defined(HPUX)
+#ifdef __GNUC__
+
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ (_AP = __builtin_saveregs())
+#else
+#ifdef __cplusplus
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ (_AP) = (char *) &(_LASTNAMEDARG);
+
+#else
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ (__builtin_va_start(_AP,&_LASTNAMEDARG), \
+ (_AP) = (char *) &(_LASTNAMEDARG))
+#endif
+#endif
+#elif defined(OSF) || defined(LINUX) || (defined(NT) && defined(_ALPHA_))
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ (va_start(_AP,_LASTNAMEDARG))
+#elif defined(OS400)
+#define VARARG_START(_AP, _LASTNAMEDARG) \
+ ( (_AP).vanew = ((char *) &(_LASTNAMEDARG)) + sizeof(_LASTNAMEDARG) )
+
+#elif defined(LITTLE_ENDIAN_ORDER) || defined(XLC_C)
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ ((_AP) = (char *) &(_LASTNAMEDARG) + VARARG_ROUND_UP(sizeof(_LASTNAMEDARG),sizeof(int)))
+#else /* BIG_ENDIAN_ORDER */
+#define VARARG_START(_AP,_LASTNAMEDARG) \
+ ((_AP) = (char *) &(_LASTNAMEDARG) + sizeof(_LASTNAMEDARG))
+#endif
+
+
+#if defined(SOLARIS) && !defined(SOLX86)
+#define VARARG_GET(_AP,_TYPE) \
+ ((_TYPE *)__builtin_va_arg_incr((_TYPE *)_AP))[0]
+#elif defined(HPUX)
+#define TYPE_MASK(_TYPE) (sizeof(_TYPE) > 4 ? 0xFFFFFFF8 : 0xFFFFFFFC)
+#define VARARG_GET(_AP,_TYPE) \
+ ((_AP) = (VARARG_PTR)((long)((_AP) - sizeof(int)) \
+ & TYPE_MASK(_TYPE)) , \
+ *(_TYPE *)((_AP) + ((8 - sizeof(_TYPE)) % 4)))
+#elif defined(GCC3)
+/* GCC3 doesn't allow variable arguments shorter than 4 bytes. If any argument is less than
+ 4 bytes and is passed through the parameter list (...), it will be converted to 4 bytes */
+#define VARARG_GET(_AP,_TYPE) \
+ ((sizeof(_TYPE) < sizeof(DWORD)) ? ((_TYPE) va_arg(_AP,DWORD)) : (va_arg(_AP,_TYPE)))
+
+#elif defined(OSF) || defined(LINUX) || (defined(NT) && defined(_ALPHA_))
+#define VARARG_GET(_AP,_TYPE) \
+ (va_arg(_AP,_TYPE))
+#elif defined(OS400)
+#define __VARARG_GET(_AP, _TYPE) \
+ ( (_AP).vaold = __bndup((_AP).vanew, _TYPE),\
+ (_AP).vanew = (_AP).vaold + sizeof(_TYPE), \
+ *(_TYPE *)((_AP).vaold ) )
+/* The C++ compiler will complain about the conversion of DWORD to a struct datatype. */
+/* e.g. typedef struct { WORD foo; WORD bar} FOOBAR VARARG_GET(ap, FOOBAR); So eliminate */
+/* this unnecessary cast. */
+#ifdef __cplusplus
+ #define __VARARG_GET1(_AP, _TYPE) \
+ ( (_AP).vaold = __bndup((_AP).vanew, DWORD),\
+ (_AP).vanew = (_AP).vaold + sizeof(DWORD), \
+ *(_TYPE *)((_AP).vaold + (sizeof(DWORD)- sizeof(_TYPE))) )
+#else
+ #define __VARARG_GET1(_AP, _TYPE) __VARARG_GET(_AP, DWORD)
+#endif
+
+#define VARARG_GET(_AP,_TYPE) \
+ (sizeof(_TYPE) < sizeof(DWORD) ? (_TYPE) __VARARG_GET1(_AP,_TYPE) : __VARARG_GET(_AP,_TYPE))
+#elif defined(LITTLE_ENDIAN_ORDER)
+#define VARARG_GET(_AP,_TYPE) \
+ ((_AP) += VARARG_ROUND_UP(sizeof(_TYPE),sizeof(int)), \
+ *(_TYPE *)((_AP) - VARARG_ROUND_UP(sizeof(_TYPE),sizeof(int))))
+#else /* BIG_ENDIAN_ORDER */
+#define VARARG_GET(_AP,_TYPE) \
+ ((_AP) += VARARG_ROUND_UP(sizeof(_TYPE),sizeof(int)), \
+ *(_TYPE *)((_AP) - sizeof(_TYPE)))
+#endif
+
+#if defined(HPUX)
+#define VARARG_PEEK(_AP,_TYPE) (*(_TYPE *)((VARARG_PTR)((long)((_AP) \
+ - sizeof(_TYPE)) & TYPE_MASK(_TYPE)) \
+ + ((8 - sizeof(_TYPE)) % 4)))
+#elif defined(NT) && defined(_ALPHA_)
+/* Just like va_arg from stdargs.h, but without the increment of _AP.offset */
+#define VARARG_PEEK(_AP,_TYPE) \
+ (*(_TYPE *)((_AP).a0 + (_AP).offset + (((int)sizeof(_TYPE) + 7) & -8)- \
+ ((__builtin_isfloat(_TYPE) && (_AP).offset <= (6 * 8)) ? \
+ (6 * 8) + 8 : ((int)sizeof(_TYPE) + 7) & -8)))
+#elif defined(OSF)
+
+/* Just like va_arg from stdargs.h, but without the increment of _AP.offset */
+#define VARARG_PEEK(_AP,_TYPE) \
+ (*(_TYPE *)((_AP)._a0 + (_AP)._offset + (((int)sizeof(_TYPE) + 7) & -8)- \
+ ((__builtin_isfloat(_TYPE) && (_AP)._offset <= (6 * 8)) ? \
+ (6 * 8) + 8 : ((int)sizeof(_TYPE) + 7) & -8)))
+
+#elif defined(OS400)
+/* Just like VARARG_GET, but without the increment of _AP.vanew */
+#define VARARG_PEEK(_AP,_TYPE) \
+ (sizeof(_TYPE) < sizeof(DWORD) ? (_TYPE)(*(DWORD *)__bndup((_AP).vanew,DWORD)) : (*(_TYPE *)(__bndup((_AP).vanew,_TYPE))))
+#elif defined(LITTLE_ENDIAN_ORDER)
+#define VARARG_PEEK(_AP,_TYPE) (*(_TYPE *)(_AP))
+#else /* BIG_ENDIAN_ORDER */
+#if defined(MAC)
+#define VARARG_PEEK(_AP,_TYPE) (*(_TYPE *)((_AP) + VARARG_ROUND_UP(sizeof(_TYPE),sizeof(int)) - sizeof(_TYPE)))
+#else
+#ifndef ZLINUX
+#define VARARG_PEEK(_AP,_TYPE) (*(_TYPE *)((CHAR*)(_AP) + VARARG_ROUND_UP(sizeof(_TYPE),sizeof(int)) - sizeof(_TYPE)))
+#endif
+#endif
+#endif
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ Platforms that strictly comply to the C standard do not allow passing of
+ variable argument lists by reference using '&' and '*' operators because
+ the standard states that you may get undetermined results. However, you
+ are allowed to pass a variable argument list without these operators. On
+ zLinux, whenever you pass a variable argument list the contents will always
+ be modified upon returning from the function passing it in as a parameter
+ (assuming some function below accesses the list). For these types of
+ platforms, define the following macros to just pass the list without using
+ the '&' operator. All platforms can still use a variable argument list
+ as a pointer by simply using the VARARG_PTR_P type.
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+#if defined(ZLINUX)
+typedef VARARG_PTR VARARG_PTR_P;
+#define VARARG_ADDR(_AAP) _AAP
+#define VARARG_DEREF(_AAP) _AAP
+#define VARARG_COPY __va_copy
+#else
+typedef VARARG_PTR * VARARG_PTR_P;
+#define VARARG_ADDR(_AAP) &_AAP
+#define VARARG_DEREF(_AAP) *_AAP
+#define VARARG_COPY(dest, src) (dest)=(src)
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Define entry point used by all "SDK" utility programs */
+
+STATUS LNPUBLIC NotesMain (int argc, char far *argv[]);
+
+/* Define routines indirectly (or directly) used by "SDK" utility programs */
+
+STATUS LNPUBLIC NotesInitIni (char far *pConfigFileName);
+STATUS LNPUBLIC NotesInit (void);
+STATUS LNPUBLIC NotesInitExtended (int argc, char far * far *argv);
+void LNPUBLIC NotesTerm (void);
+void LNPUBLIC NotesInitModule (HMODULE far *rethModule, HMODULE far *rethInstance, HMODULE far *rethPrevInstance);
+#ifdef NLM
+typedef void EXPORTED_LIBRARY_PROC(void);
+STATUS LNPUBLIC NotesLibraryMain (int argc, char far * far *argv, EXPORTED_LIBRARY_PROC initproc);
+#endif /* NLM */
+STATUS LNPUBLIC NotesInitThread (void);
+void LNPUBLIC NotesTermThread (void);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* OBSOLETE symbol (used to be used to force bootstrap to be pulled in.
+ Now replaced by explicitly linking with notes0.obj and notesai0.obj). */
+
+#define NotesSDKMainModule
+
+/* Define error code packages */
+
+#include "globerr.h"
+#if defined(NT)
+#define ADMIN_PLATFORM /* Defined for Admin Client platforms */
+#endif
+#if defined (NT) && defined(_X86_)
+#define OLE_HTMLOBJ_PLATFORM
+#endif
+
+
+/* end of global definitions */
+
+#endif /* GLOBAL_DEFS */
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/globerr.h b/plugins/LotusNotify/src/cnotesapi/include/globerr.h
new file mode 100644
index 0000000000..a33d7b1a4f
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/globerr.h
@@ -0,0 +1,443 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef GLOBAL_ERROR_DEFS
+#define GLOBAL_ERROR_DEFS
+
+/* Define error code packages */
+
+
+#ifdef NOERROR
+#undef NOERROR
+#endif
+#define NOERROR 0
+
+#define PKG_MAIN 0x0000 /* Codes are limited to 0-63 */
+#define PKG_CCONSOLE 0x0040 /* Codes are limited to 0-31 */
+#define PKG_MAILMISC3 0x0060 /* Mailmisc3 codes starting from 0-31 */
+#define PKG_MINDER 0x0080 /* Minder limit to 0 - 95 */
+#define PKG_SERVER3 0x00E0 /* Codes are limited to 1 - 31 */
+#define PKG_OS 0x0100
+#define PKG_NSF 0x0200
+#define PKG_NIF 0x0300 /* NIF codes are limited to 0 - 127 */
+#define PKG_NSF2 0x0380 /* More NSF codes - limited to 0-127*/
+#define PKG_MISC 0x0400 /* Codes are limited to 0 - 191 */
+#define PKG_SERVER2 0x04C0 /* Codes are limited to 0 - 47 */
+#define PKG_THUNK 0x04F0 /* Codes are limited to 0 - 15 */
+#define PKG_FORMULA 0x0500 /* FORMULA codes are limited to 0-127 */
+#define PKG_NSF8 0x0580 /* AVAILABLE limit to 0 - 127 */
+#define PKG_ODS 0x0600 /* ODS codes, limited to 0-47 */
+#define PKG_LSXUI4 0x0630 /* LotusScript Front-end classes, 0 - 47 */
+#define PKG_AGENTS2 0x0660 /* for agents, limited to 0-31 */
+#define PKG_SCHUI 0x0680 /* Schedule UI codes are limited to 0 - 31 */
+#define PKG_BERT 0x06A0 /* BERT codes are limited to 0 - 31 */
+#define PKG_PLUGINS 0x06C0 /* plugin codes are limited to 0 - 15 */
+
+#define PKG_IMAIL 0x06D0 /* IMAIL Client 0 - 47 */
+
+#define PKG_PKIX 0x0700 /* codes 0 - 95 New CA/PKIX error codes - in pkcs12 dir */
+#define PKG_GT 0x0760 /* GraphTrends error codes 0 - 31 */
+#define PKG_NIF2 0x0780 /* Second nif error package 0-127 */
+#define PKG_CLIENT 0x0800 /* Client codes limited to 0 - 47 */
+#define PKG_LSXUI3 0x0830 /* more LSXUI ERROR codes limited to 0 - 15 */
+#define PKG_APC 0x0840 /* APC codes limited to 0 - 31 */
+#define PKG_DBMISC2 0x0860 /* DBMISC2 codes limited to 0 - 15 */
+#define PKG_TASK_LOADER 0x0870 /* Task Loader package */
+#define PKG_MAILMISC4 0x0880 /* Mail Misc limit to 0 - 127 */
+#define PKG_SERVER 0x0900
+#define PKG_NETWORK 0x0A00 /* If you split this range, fix IS_PKG_NETWORK below */
+#define PKG_WMISC_ERR 0x0B00 /* Codes are limited to 0 - 63 */
+#define PKG_ACTION 0x0B80 /* Codes are limited to 0 - 63 */
+#define PKG_ACTIONPANE 0x0BC0 /* Codes are limited to 0 - 63 */
+#define PKG_EDIT_ERR 0x0C00
+#define PKG_VIEW_ERR 0x0D00
+#define PKG_MAIL 0x0E00 /* MAIL errors are limited to 0-63 */
+#define PKG_BSAFE3 0x0E40 /* Limited to 0-31 */
+#define PKG_BSAFE4 0x0E60 /* Limited to 0-31 */
+#define PKG_CONV 0x0E80 /* CONV errors are limited to 0 - 31 */
+#define PKG_NSF4 0x0EA0 /* NSF4 errors are limited to 0 - 31 */
+#define PKG_FRAMDES 0x0EC0 /* Frame design errors limited to 0 - 31 */
+#define PKG_NETWORK3 0x0EE0 /* AVAILABLE codes are limited to 0 - 31 */
+#define PKG_FT 0x0F00 /* FT errors are limited to 0 - 63 */
+#define PKG_BSAFE5 0x0F40 /* Limited to 0-15 */
+#define PKG_DBMISC 0x0F50 /* 0 - 47 */
+#define PKG_NETWORK2 0x0F80 /* 0 - 127, if this changes, fix IS_PKG_NETWORK below */
+#define PKG_DEBUG 0x1000 /* Debug strings, like for DDE, limited to 0 - 79 */
+#define PKG_SSL 0x1040 /* SSL errors 0 - 15 */
+#define PKG_SERVER4 0x1050 /* SERVER4, limited to 0 - 15 */
+#define PKG_BOOKMARK 0x1060 /* BOOKMARK, limited to 0 - 15 */
+#define PKG_NSF5 0x1070 /* NSF5, limited to 0 - 15 */
+#define PKG_NEM_ERR 0x1080 /* NEM, limited to 0 - 127 */
+#define PKG_ROUTER 0x1100 /* Errors returned by ROUTERL, 0 - 79 */
+#define PKG_MAILMAN 0x1150 /* Errors returned by MAILMAN, 0 - 95 */
+#define PKG_LSBE 0x11b0 /* LSXBE errors, 0 - 47 */
+#define PKG_LSDO 0x11e0 /* LSDOE errors, 0 - 15 */
+#define PKG_LSXDB2 0x11f0 /* LSXDB2 errors, 0 - 15 */
+#define PKG_REG2 0x1200 /* REG2 errors, 0 - 127 */
+#define PKG_LSIDE 0x1280 /* ide specific errors 0 - 95 */
+#define PKG_HTML 0x12D0 /* html parser errors, 0 - 31 */
+#define PKG_SERVER5 0x12F0 /* PKG_SERVER5 limit to 0 - 15 */
+#define PKG_LOG 0x1300
+#define PKG_NSF3 0x1380 /* More NSF codes - limited to 0-127*/
+#define PKG_XPC 0x1400
+#define PKG_EVENT 0x1500 /* Event codes starting from 0-47 */
+#define PKG_FIDE 0x1530 /* Event codes starting from 0-31 */
+#define PKG_NETWORK4 0x1550 /* Limited to 0 - 15, if this changes, fix IS_PKG_NETWORK below */
+#define PKG_MAILMISC2 0x1560 /* Mailmisc2 codes starting from 0-31 */
+#define PKG_BCASE 0x1580 /* Briefcase codes are limited to 0 - 95 */
+#define PKG_SECURE2 0x15E0 /* Secure2 limit to 0 - 15 */
+#define PKG_BSAFE6 0x15F0 /* Bsafe codes are limited to 0 - 15 */
+#define PKG_REPL 0x1600 /* Errors returned by REPLSUB library, limited to 0 - 199 */
+#define PKG_ADMIN_ERR2 0x16C8 /* PKG_ADMIN_ERR2 limited to 0 - 55 */
+#define PKG_BSAFE 0x1700 /* BSAFE codes are limited to 0 - 151 */
+#define PKG_SERVER7 0x1798 /* PKG_SERVER7 limit to 0 - 103 */
+#define PKG_DESK_ERR 0x1800
+#define PKG_SECURE 0x1900
+#define PKG_AGENT 0x1A00 /* AGENT codes are limited to 0-63 */
+#define PKG_CCONSOLE2 0x1A50 /* CCONSOLE2 codes are limited to 0-15 */
+#define PKG_PLAT_STAT_ERR 0x1A60 /* Platform Statistics error package */
+#define PKG_AGENT1 0x1A70 /* AGENT1 codes are limited to 0-15 */
+#define PKG_AGENTS3 0x1A80 /* AGENTS3 codes are limited to 0-47 */
+#define PKG_AGENT2 0x1AB0 /* AGENT2 codes are limited to 0-79 */
+#define PKG_XML 0x1B00 /* XML codes: limit to 0 - 255 */
+#define PKG_NETDRV 0x1C00 /* If this PKG space is split, fix IS_PKG_NETWORK below */
+#define PKG_IMPORT 0x1D00 /* Used for all imports - see IMPKG_xxx below */
+#define PKG_EXPORT 0x1E00 /* Used for all exports - see EXPKG_xxx below */
+#define PKG_LSXUI2 0x1F00 /* LSXUI2 Codes are limited to 0 - 63 */
+#define PKG_REG 0x2000
+
+/* Following 8 groups used for native OS error codes, mapped by OSMapError
+ and translated by OSLoadString. These give better feedback in certain
+ cases, but should NEVER be interpreted if STS_REMOTE bit is set,
+ indicating that another OS on server might have generated the error! */
+
+#define PKG_NATIVE_FIRST 0x2100
+#define PKG_NATIVE_LAST 0x28FF
+
+#ifdef OS2
+#define PKG_OS2_BASE 0x2100 /* + status - 0x0000 (BSEERR base) */
+#define PKG_OS2_BASE2 0x2200 /* (BSEERR continued) */
+#define PKG_OS2_LANMAN 0x2300 /* + status - 0x0834=2100 (LANMAN base) */
+#define PKG_OS2_LANMAN2 0x2400 /* (LANMAN continued) */
+#define PKG_OS2_PMWIN 0x2500 /* + status - 0x1000 (PMWIN base) */
+#define PKG_OS2_PMGPI 0x2600 /* + status - 0x2000 (PMGPI base) */
+#define PKG_OS2_PMGPI2 0x2700 /* (GPI continued) */
+#define PKG_OS2_PMSPL 0x2800 /* + status - 0x4000 (PMSPL base) */
+#endif
+
+#define PKG_NSE 0x2900 /* Network script engine */
+#define PKG_NSF6 0x29B0 /* NSF6, limited to 0 - 15 */
+#define PKG_PERFSTAT 0x29C0 /* PERFSTAT error codes 0-31 */
+#define PKG_MISC2 0x29E0 /* MISC2 limit to 0 - 31 */
+#define PKG_NETDRVLCL 0x2A00 /* Used for all Network Drivers, if PKG space is split, fix IS_PKG_NETWORK below */
+#define PKG_NTI 0x2B00 /* Used for NTI and its new Net drivers */
+
+#define PKG_VIEWMAP 0x2C00 /* for ViewMap */
+#define PKG_BSAFE2 0x2CF0 /* for BSAFE x509 routines */
+
+#define PKG_REPL2 0x2D00 /* for remote debug 0-127 */
+#define PKG_RDBGERR 0x2D80 /* for remote debug err messages 0-127 */
+
+#define PKG_AGENTS 0x2E00 /* for agents, limit to 0 - 127 */
+#define PKG_DESK_ERR2 0x2E80 /* more Desk limit to 0 - 127 */
+#define PKG_LSCRIPT 0x2F00 /* LotusScript Interface, limit 0-127 */
+#define PKG_LSXUI 0x2F80 /* LotusScript Front-end classes, 0-127 */
+#define PKG_DSGN 0x3000 /* Database design package, 0-63 */
+#define PKG_SERVER6 0x3040 /* PKG_SERVER6 error codes 0 - 63 */
+#define PKG_ADMIN_ERR 0x3080 /* Admin facility, 0 - 127 */
+#define PKG_DBD 0x3100 /* database driver error codes, 0 - 199 */
+#define PKG_COMPILER7 0x31B8 /* More COMPILER codes, limited to 0-15 */
+#define PKG_NEWS 0x31C8 /* News classes, 0 - 15 */
+#define PKG_IMAIL_EXT 0x31D8 /* IMail database extensions 0 - 23 */
+#define PKG_DAEMON 0x31F0 /* CDaemon codes, 0 - 15 */
+#define PKG_COMPILER8 0x3200 /* More COMPILER codes, limit to 0 - 255 */
+#define PKG_ADDIN 0x3300 /* For use by mail gateways, etc. */
+#define PKG_EDIT_ERR2 0x3400 /* need additional block for edit */
+#define PKG_LSCRIPT2 0x3500 /* Lotusscript interface, limit 0 - 127 */
+#define PKG_ADMIN_ERR3 0x3580 /* PKG_ADMIN_ERR3 limited to 0 - 55 */
+#define PKG_DSGN2 0x35C0 /* PKG_DSGN2 limit to 0 - 63 */
+#define PKG_GRMISC 0x3600 /* Graphics Library 0-31 */
+#define PKG_VIMSMI 0x3620 /* VIM and SMI block codes 0-10 */
+#define PKG_WEB 0x3640 /* InterNotes client extensions 0-191 */
+#define PKG_ADDIN2 0x3700 /* For extensions to PKG_ADDIN */
+#define PKG_NSF9 0x3800 /* NSF9, limited to 0 - 255 */
+#define PKG_DESK_ERR4 0x3900 /* DESK error, limit to 0 - 127 */
+#define PKG_ORB 0x3980 /* ORB, limit to 0 - 63 */
+#define PKG_LSXUI5 0x39C0 /* LSXUI5 Codes are limited to 0 - 63 */
+#define PKG_HTTP 0x3A00 /* Web Server. limit to 0 - 199 */
+#define PKG_POP3 0x3AC8 /* POP3. 0 - 19 */
+#define PKG_MAILMISC 0x3ADC /* Mailmisc. 0 - 3 */
+#define PKG_SMTP 0x3AE0 /* SMTP. 0 - 7 */
+#define PKG_POP3C 0x3AE8 /* POP3 CLIENT. 0-2 */
+#define PKG_SMTPC 0x3AEB /* SMTP. 0 - 6 */
+#define PKG_MAILMISC1 0x3AF2 /* MAILMISC. 0 - 13 */
+#define PKG_DB2NSF 0x3B00 /* DB2NSF stuff */
+#define PKG_SMARTI 0x3C00 /* To make smart icon res unique */
+#define PKG_TOOLBAR PKG_SMARTI /* R6 Reuse smarticon pkg for new toolbars */
+#define PKG_OLE_ERR 0x3D00 /* OLE error codes 0-63*/
+ /* Note, PKG_OLE_ERR+0-53 were used in V3 */
+#define PKG_MISC3 0x3D40 /* PKG_MISC3 codes are limited to 0-31 */
+#define PKG_NSF7 0x3D60 /* PKG_NSF7 codes are limited to 0-31 */
+#define PKG_NETWORK5 0x3D80 /* Limited to 0-31, if this area changes, fix IS_PKG_NETWORK below */
+#define PKG_DESK_ERR3 0x3DA0 /* PKG_DESK_ERR3 are limited to 0-63 */
+#define PKG_EVENT2 0x3DE0 /* Event codes starting from 0-31 */
+/* #define PKG_OLE_CMD 0x3E00 OLE Api Command Descriptions - OBSOLETE in V5 */
+ /* Note, PKG_OLE_CMD+0-56 were used in V3 */
+#define PKG_JAVAWRAP 0x3E00 /* javawrap error codes 0-63 */
+#define PKG_ASSISTANT_ERR 0x3E40 /* Assistant codes limit to 0 - 63 */
+#define PKG_JSWRAP 0x3E80 /* javascript wrap error codes 0-63 */
+#define PKG_PRINT_ERR 0x3EC0 /* client print error codes limit to 0 - 63 */
+#define PKG_EDIT_ERR3 0x3F00 /* More editor codes */
+/* 3F00 IS THE LAST PACKAGE THAT CAN BE DEFINED FOR ERROR CODES!
+ * (LOOK FOR HOLES ABOVE). THE RANGE 0x4000-0x7FFF CANNOT BE USED.
+ */
+
+
+#define PKG_CODES 255
+
+
+/* Define offsets within PKG_NETDRVLCL for local network drivers */
+
+/* On the Unix, since tcp is compiled into Notes, their strings must have
+ unique IDs. We define a separate package for all drivers which are optional
+ and each optional driver package will have its own offsets for first string
+ as defined below. There is some room for expansion, but people adding
+ strings should be aware of the extent of their allocated ID space, and
+ change it here if necessary, afterwards recompiling all dependent drivers.
+ Under Windows and PM, since each ixport is a separate DLL with separate DS
+ space, all offsets are set to 0.
+*/
+
+#if defined(UNIX) || defined(MAC)
+
+#define NETPKG_TCP 0 /* Leave at least 20 string offsets for TCP */
+#define NETPKG_ATALK 20 /* Leave 35 codes for AppleTalk */
+#define NETPKG_NWSPX 55
+
+#else
+#define NETPKG_TCP 0
+#define NETPKG_ATALK 0
+#define NETPKG_NWSPX 0
+#define NETPKG_NETBIOS 0
+#endif
+
+
+/* Define offsets within PKG_IMPORT and PKG_EXPORT for import/exports */
+
+/* On the Mac, since all ixports are compiled into Notes, their strings must have unique IDs.
+ We avoid using a separate PKG for each by defining the offset of each ixport's first string below.
+ There is some room for expansion, but people adding strings should be aware of the extent
+ of their allocated ID space, and change it here if necessary, afterwards recompiling all
+ dependent ixports!
+ Under Windows and PM, since each ixport is a separate DLL with separate DS space,
+ all offsets are set to 0.
+ Since TARGA, W4W and WMF are not to be ported to the Mac, we don't currently bother with
+ defining offsets for them.
+*/
+
+#if defined(MAC) || defined(UNIX) /* On Mac & UNIX, we need to subdivide */
+
+#define IMPKG_IFL 0
+#define IMPKG_IPCX 50
+#define IMPKG_IPIC 60
+#define IMPKG_IRTF 70
+#define IMPKG_ISTF 80
+#define IMPKG_ISTR 90
+#define IMPKG_ITAB 100
+#define IMPKG_ITEXT 135
+#define IMPKG_ITIFF 145
+#define IMPKG_IWKSE 160
+#define IMPKG_IWKSV 180
+#define IMPKG_ALL 212 /* 18 common strings shared by all Iris IX modules */
+#define IMPKG_IBMP 230
+#define IMPKG_IGIF 235
+#define IMPKG_IW4W 240
+#define IMPKG_ISTRNGS 250
+#define IMPKG_IJPEG 252
+
+#define EXPKG_XCGM 0
+#define EXPKG_XRTF 10
+#define EXPKG_XSTF 20
+#define EXPKG_XSTR 65
+#define EXPKG_XTAB 90
+#define EXPKG_XTEXT 100
+#define EXPKG_XTIFF 110
+#define EXPKG_XWKS 120
+#define EXPKG_ALL 130 /* 20 common strings shared by all Iris IX modules */
+#define EXPKG_XW4W 150
+#define EXPKG_XVCRD 170
+#define EXPKG_XVCRD3 180
+#define EXPKG_XCSV 200
+
+#else /* PC versions - On PC, we don't subdivide - each has own DLL! */
+
+#define IMPKG_IFL 0
+#define IMPKG_IPCX 0
+#define IMPKG_IPIC 0
+#define IMPKG_IRTF 0
+#define IMPKG_ISTF 0
+#define IMPKG_ISTR 0
+#define IMPKG_ITAB 0
+#define IMPKG_ITARGA 0
+#define IMPKG_ITEXT 0
+#define IMPKG_ITIFF 0
+#define IMPKG_IWKSE 0
+#define IMPKG_IWKSV 0
+#define IMPKG_IWMF 0
+#define IMPKG_IBMP 0
+#define IMPKG_IGIF 0
+#define IMPKG_IW4W 0
+#define IMPKG_ISTRNGS 0
+#define IMPKG_IJPEG 0
+#define IMPKG_ALL 32 /* 18 common strings shared by all Iris IX modules */
+ /* (Reserve 0-32 for IX-specific strings) */
+
+#define EXPKG_XCGM 0
+#define EXPKG_XCSV 0
+#define EXPKG_XRTF 0
+#define EXPKG_XSTF 0
+#define EXPKG_XSTR 0
+#define EXPKG_XTAB 0
+#define EXPKG_XTEXT 0
+#define EXPKG_XTIFF 0
+#define EXPKG_XVCRD 0
+#define EXPKG_XVCRD3 0
+#define EXPKG_XW4W 0
+#define EXPKG_XWKS 0
+#define EXPKG_ALL 50 /* 20 common strings shared by all Iris IX modules */
+ /* (Reserve 0-50 for IX-specific strings) */
+
+#endif
+
+
+
+/* Define error code status flags. The top two bits of the error code
+ are reserved for this purpose */
+
+#define STS_DISPLAYED ((STATUS) 0x8000) /* error has already been displayed */
+#define ERROR_DISPLAYED(x) ((x) & STS_DISPLAYED)
+
+#define STS_REMOTE ((STATUS) 0x4000) /* error came from remote machine */
+#define ERROR_REMOTE(x) ((x) & STS_REMOTE)
+
+#define RAWBLK(x) ((STATUS) ((x)&~(STS_DISPLAYED|STS_REMOTE)))
+#define NOBLK(x) ((STATUS) ((x)&(STS_DISPLAYED|STS_REMOTE)))
+
+#define ERR_MASK 0x3fff
+#define PKG_MASK 0x3f00
+#define ERRNUM_MASK 0x00ff
+
+#define STRING_MASK 0x8000
+
+#define IS_STRING(x) ((x)&STRING_MASK ? TRUE : FALSE) /* is this code a string code? */
+
+/* Remove the DISPLAYED bit - use when logging errors to avoid overlap with string IDs that now (R6+) include the STS_DISPLAYED bit */
+#define ND(x) ((STATUS) ((x) & ~STS_DISPLAYED))
+
+#define ERR(x) ((STATUS) ((x) & ERR_MASK)) /* Use when comparing errors to a constant - if (ERR(error) == ERR_QUIT) */
+#define ERRNUM(x) ((STATUS) ((x) & ERRNUM_MASK)) /* Just the error number, no flags or pkg code. Doesn't work with new PKG codes */
+
+#define PKG(x) ((STATUS) ((x) & PKG_MASK)) /* Get the package code for errors only - obsolete given new pkg codes */
+#define IS_PKG(x,pkg) ((BOOL)(((PKG_MASK | pkg) & x) == pkg)) /* Is error x in PKG pkg? */
+
+/* Define memory allocator hints, which re-use the top 2 bits of
+ the BLK_ codes so that we didn't have to add a new argument to
+ OSMemAlloc() */
+
+#define MEM_SHARE ((WORD) 0x8000) /* Object may be used by multiple processes */
+#define MEM_GROWABLE ((WORD) 0x4000) /* Object may be OSMemRealloc'ed LARGER */
+
+
+/* Define macros which are used when defining error codes to provide text
+ for each error message. The macro normally generates nothing when
+ compiled by the C compiler, but will be defined to generate text when
+ used in the resource (.RC) file. (See also prestr.h.) */
+
+/* "errortext" designates a user-displayed message (success, error, warning).
+ This are translated, and may be shown to a user. There should be
+ online help for most of these messages. */
+
+#define errortext(code,text)
+
+/* "helptext" designates the "Menu Help" messages displayed on the top
+ line of the screen when you drag across a menu item. There is usually
+ also further online help associated with each of these menu items. */
+
+#define helptext(helpid,code,text)
+
+/* "stringtext" designates translatable text fragments that need to be
+ translated, but are not shown to the user as a "message" (error,
+ warning or otherwise). There should be no online help for these. */
+
+#define stringtext(code,text)
+
+/* "apitext" designates API-only messages. This could be translated
+ (for foreign API programmers) but NEVER shown to a user. */
+
+#define apitext(code,text)
+
+/* "debugtext" designates DEBUG-only messages. This is not to be
+ translated and never shown to a user. */
+
+#define debugtext(code,text)
+
+/* "internaltext" designates STATUS codes used to indicate a condition
+ passed between 2 subsystems, but NEVER displayed to a user. The text
+ associated with "internaltext" is NOT EVEN STORED in the executables,
+ and thus, never translated or shown to a user. */
+
+#define internaltext(code,text)
+
+/* "blocktext" designates DEBUG-only descriptions of internal storage
+ allocation types. This is not to be translated and never shown to a user. */
+
+#define blocktext(code,text)
+
+/* "semtext" designates DEBUG-only descriptions of internal semaphore
+ types. This is not to be translated and never shown to a user. */
+
+#define semtext(code,text)
+
+/* "donottranslatetext" designates text which must not be translated.
+ This text may be included in a resource file in order to facilitate
+ configuration changes, such as a string which controls program behavior.
+ Or it may be included in order to clearly indicate that the developer
+ intends for the text to remain untranslated.
+*/
+
+#define donottranslatetext(code,text)
+
+/* "limitedasciitext" designates text which is constrained to a limited
+ subset of ASCII characters. One use of this macro is for strings used as
+ part of Internet protocols which do not allow for non-ascii text.
+ The exact limitations will vary with usage, but will usually be
+ restricted to 7-bit ascii, excluding '\0'. These strings MAY be
+ translated to other languages, but must keep within the limited ascii
+ characters allowed. For example, translation into French is permitted,
+ but no accented characters may be used.
+*/
+#define limitedasciitext(code,text)
+
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/misc.h b/plugins/LotusNotify/src/cnotesapi/include/misc.h
new file mode 100644
index 0000000000..3ccd8c478e
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/misc.h
@@ -0,0 +1,413 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5RWNHM, L-GHUS-5RWNFH */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+/* Miscellaneous Package Global Definitions */
+
+#ifndef MISC_DEFS
+#define MISC_DEFS
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/* Some useful constants */
+
+#define MAXALPHANUMBER 40
+#define MAXALPHATIMEDATE 80
+#define MAXALPHATIMEDATEPAIR (80 * 2 + 3)
+#define MAXSPRINTF 256
+#define MAXSOUNDEX (4+1) /* 4 chars plus null terminator */
+
+/* Flags for IntlTextCompare */
+
+#define INTL_ACCENT_SENSITIVE 0x00000001
+#define INTL_CASE_SENSITIVE 0x00000002
+
+
+/* time structure - NOTE: These fields MUST BE int's, NOT UNSIGNEDS! */
+
+typedef struct {
+ int year; /* 1-32767 */
+ int month; /* 1-12 */
+ int day; /* 1-31 */
+ int weekday; /* 1-7, Sunday is 1 */
+ int hour; /* 0-23 */
+ int minute; /* 0-59 */
+ int second; /* 0-59 */
+ int hundredth; /* 0-99 */
+ int dst; /* FALSE or TRUE */
+ int zone; /* -11 to +11 */
+ TIMEDATE GM;
+} TIME;
+
+/* Special encodings for TIMEDATE fields. Note that these are all in
+ HOST-SPECIFIC format, and must be used with TimeConstruct or
+ TimeExtractJulianDate or TimeExtractTicks! */
+
+#define ALLDAY 0xffffffffL /* put this in the TIME field */
+#define ANYDAY 0xffffffffL /* put this in the DATE field */
+#define TICKS_IN_DAY 8640000L /* 10msec ticks in a day */
+#define TICKS_IN_HOUR 360000L /* 10msec ticks in an hour */
+#define TICKS_IN_MINUTE 6000L /* 10msec ticks in a minute */
+#define TICKS_IN_SECOND 100L /* 10msec ticks in a second */
+#define SECS_IN_DAY 86400L /* seconds in a day */
+#define SECS_IN_WEEK 604800L /* seconds in a week */
+#define SECS_IN_MONTH 2592000L /* seconds in a month (30 days) */
+
+
+/* DTFlags values (do not change - these values are also stored on disk!) */
+
+#define DT_VALID 0x8000 /* Validity bit: If 1, use new DTFMT; if 0, use old TFMT */
+#define DT_4DIGITYEAR 0x0001 /* Require 4 digit year on INPUT (not output) */
+#define DT_ALPHAMONTH 0x0002 /* Require months be INPUT as letters, not digits (e.g. "jan", not 01) */
+#define DT_SHOWTIME 0x0004 /* Display time element on output */
+#define DT_SHOWDATE 0x0008 /* Display date element on output */
+#define DT_24HOUR 0x0040 /* Display time on output using 24 hour clock format */
+#define DT_STYLE_YMD 1 /* Date element order: Year, Month, Day, Day-of-week */
+#define DT_STYLE_MDY 2 /* Date element order: Day-of-week, Month, Day, Year */
+#define DT_STYLE_DMY 3 /* Date element order: Day-of-week, Day, Month, Year */
+#define DT_STYLE_MSK 0x000f0000 /* This is where we store the style value in DTFlags */
+#define DT_GET_STYLE(dwflag) ((dwflag & DT_STYLE_MSK) >> 0x10) /* Macro to retrieve the style value from DTFlags */
+#define DT_SET_STYLE(dwflag, style) (dwflag = ((dwflag & 0xfff0ffff) | (style << 0x10))) /* Macro to store the style value in DTFlags */
+
+/* DTFlags2 values (do not change - these values are also stored on disk!) */
+
+#define DT_USE_TFMT 0x0001 /* Use the 4.X format structure instead of this 5.X format structure */
+
+
+/* DTYearFmt values (do not change - these values are also stored on disk!) */
+
+#define DT_YFMT_YY 1 /* 2 digit year */
+#define DT_YFMT_YYYY 2 /* 4 digit year */
+/* The following DTYearFmt values are valid only for Imperial calendars */
+#define DT_YFMT_GE 3 /* Single letter (first letter ) of epoch name and 1 or 2 digit (no leading zeros) year */
+#define DT_YFMT_GEE 4 /* Single letter (first letter ) of epoch name and 2 digit (with leading zeros, if necessary) year */
+#define DT_YFMT_GGE 5
+#define DT_YFMT_GGEE 6 /* Abbreviated spelling and 2 digit (with leading zeros, if necessary) year */
+#define DT_YFMT_GGGE 7
+#define DT_YFMT_GGGEE 8 /* fully spelled out epoch name and 2 digit (with leading zeros, if necessary) year */
+
+/* DTDOWFmt values (Day-Of-Week) (do not change - these values are also stored on disk!) */
+
+#define DT_WFMT_WWW 1
+#define DT_WFMT_WWWW 2
+#define DT_WFMT_WWWP 3 /* 3 letter abbreviation inside parenthesis */
+#define DT_WFMT_WWWWP 4 /* Spelled out fully inside parenthesis */
+
+/* DTMonthFmt values (do not change - these values are also stored on disk!) */
+
+#define DT_MFMT_M 1
+#define DT_MFMT_MM 2
+#define DT_MFMT_MMM 3
+#define DT_MFMT_MMMM 4
+
+/* DTDayFmt values (do not change - these values are also stored on disk!) */
+
+#define DT_DFMT_D 1
+#define DT_DFMT_DD 2
+
+/* DTDShow values (controls what is shown on OUTPUT for date) */
+/* (do not change - these values are also stored on disk!) */
+
+#define DT_DSHOW_ALL 1
+#define DT_DSHOW_YM 2
+#define DT_DSHOW_WMD 3
+#define DT_DSHOW_W 4
+#define DT_DSHOW_M 5
+#define DT_DSHOW_MD 6
+#define DT_DSHOW_MDY 7
+#define DT_DSHOW_D 8
+#define DT_DSHOW_Y 9
+
+/* DTDSpecial bit values: Special handling of date OUTPUT */
+/* (do not change - these values are also stored on disk!) */
+
+#define DT_DSPEC_NONE 0 /* No special handling */
+#define DT_DSPEC_TODAY 0x0001 /* Use 'Today', 'Yesterday', 'Tomorrow', when possible */
+#define DT_DSPEC_Y4 0x0002 /* Always display year on OUTPUT as 4 digit year */
+#define DT_DSPEC_21Y4 0x0004 /* Output 2 digit year for this century; use 4 digit year for other century */
+#define DT_DSPEC_CURYR 0x0008 /* Display year when not the current year */
+
+/* DTTShow values (controls what to shown on OUTPUT for time) */
+/* (do not change - these values are also stored on disk!) */
+
+#define DT_TSHOW_H 1
+#define DT_TSHOW_HM 2
+#define DT_TSHOW_HMS 3
+#define DT_TSHOW_ALL 4
+
+/* Values for FTFMT "Preferences" field (do not change - these values are also stored on disk!) */
+
+#define NPREF_CLIENT 0 /* Get preferences from the client */
+#define NPREF_FIELD 1 /* Get preferences fromt the form or view */
+
+/* Date/Time formatting data */
+
+typedef struct {
+ BYTE Preferences; /* NPREF_xxx. Get preferences from the Client or from the Form/View? */
+ DWORD DTFlags;
+ DWORD DTFlags2; /* In case we need more room */
+ BYTE DTDOWFmt; /* Day-of-week format choice */
+ BYTE DTYearFmt; /* Year format choice */
+ BYTE DTMonthFmt; /* Month format choice */
+ BYTE DTDayFmt; /* Day format choice */
+ BYTE DTDShow; /* Date display choice */
+ BYTE DTTShow; /* Time display choice */
+ BYTE DTDSpecial; /* Date special display choice */
+ BYTE DTTZone; /* Time zone display choice */
+ char* DTDsep1; /* Date field separator string #1 */
+ char* DTDsep2; /* Date field separator string #2 */
+ char* DTDsep3; /* Date field separator string #3 */
+ char* DTTsep; /* Time field separator string */
+} DTFMT;
+
+
+/* Currency flags */
+
+#define NCURFMT_SYMFOLLOWS 0x0001 /* The currency symbol follows the value */
+#define NCURFMT_USESPACES 0x0002 /* Inset space between symbol and value */
+#define NCURFMT_ISOSYMUSED 0x0004 /* Using 3 letter ISO for currency symbol */
+
+/* Currency selection values */
+
+#define NCURFMT_COMMON 0
+#define NCURFMT_CUSTOM 1
+
+/* Number Format */
+
+#define NFMT_GENERAL 0 /* Number Formats */
+#define NFMT_FIXED 1
+#define NFMT_SCIENTIFIC 2
+#define NFMT_CURRENCY 3
+
+#define NATTR_PUNCTUATED 0x0001 /* Number Attributes */
+#define NATTR_PARENS 0x0002
+#define NATTR_PERCENT 0x0004
+#define NATTR_VARYING 0x0008
+
+typedef struct {
+ BYTE Digits; /* Number of decimal digits */
+ BYTE Format; /* Display Format */
+ BYTE Attributes; /* Display Attributes */
+ BYTE Unused;
+} NFMT;
+
+/* Time Format */
+
+#define TDFMT_FULL 0 /* year, month, and day */
+#define TDFMT_CPARTIAL 1 /* month and day, year if not this year */
+#define TDFMT_PARTIAL 2 /* month and day */
+#define TDFMT_DPARTIAL 3 /* year and month */
+#define TDFMT_FULL4 4 /* year(4digit), month, and day */
+#define TDFMT_CPARTIAL4 5 /* month and day, year(4digit) if not this year */
+#define TDFMT_DPARTIAL4 6 /* year(4digit) and month */
+#define TTFMT_FULL 0 /* hour, minute, and second */
+#define TTFMT_PARTIAL 1 /* hour and minute */
+#define TTFMT_HOUR 2 /* hour */
+#define TZFMT_NEVER 0 /* all times converted to THIS zone */
+#define TZFMT_SOMETIMES 1 /* show only when outside this zone */
+#define TZFMT_ALWAYS 2 /* show on all times, regardless */
+
+#define TSFMT_DATE 0 /* DATE */
+#define TSFMT_TIME 1 /* TIME */
+#define TSFMT_DATETIME 2 /* DATE TIME */
+#define TSFMT_CDATETIME 3 /* DATE TIME or TIME Today or TIME Yesterday */
+
+typedef struct {
+ BYTE Date; /* Date Display Format */
+ BYTE Time; /* Time Display Format */
+ BYTE Zone; /* Time Zone Display Format */
+ BYTE Structure; /* Overall Date/Time Structure */
+} TFMT;
+
+typedef MEMHANDLE INTLTIMEDATEHANDLE;
+
+/*
+ * Property values to set for converting an extended International TIMEDATE value.
+ */
+typedef enum
+{
+ AMStringProperty = 1,
+ PMStringProperty = 2
+} INTL_TIMEDATE_PROPERTY;
+
+
+/* function templates */
+
+BOOL LNPUBLIC TimeLocalToGM (TIME far *Time);
+BOOL LNPUBLIC TimeGMToLocal (TIME far *Time);
+BOOL LNPUBLIC TimeGMToLocalZone (TIME far *Time);
+int LNPUBLIC TimeDateCompare (const TIMEDATE far *t1, const TIMEDATE far *t2);
+int LNPUBLIC TimeDateCollate (const TIMEDATE far *t1, const TIMEDATE far *t2);
+DWORD LNPUBLIC TimeExtractJulianDate (const TIMEDATE far *);
+DWORD LNPUBLIC TimeExtractDate (const TIMEDATE far *);
+DWORD LNPUBLIC TimeExtractTicks (const TIMEDATE far *);
+void LNPUBLIC TimeExtractLocal (const TIMEDATE far *Time, BOOL fTime, TIMEDATE far *retTime);
+void LNPUBLIC TimeConstruct (DWORD Date, DWORD Time, TIMEDATE far *result);
+
+
+#define TIMEDATE_MINIMUM 0
+#define TIMEDATE_MAXIMUM 1
+#define TIMEDATE_WILDCARD 2
+void LNPUBLIC TimeConstant(WORD, TIMEDATE far *);
+
+#define TimeDateEqual(a,b) ((BOOL)TimeDateCollate(a,b)==0)
+#define TimeDateClear(a) (TimeConstant(TIMEDATE_MINIMUM, a))
+STATUS LNPUBLIC TimeDateIncrement (TIMEDATE far *Time, LONG Interval);
+LONG LNPUBLIC TimeDateDifference (const TIMEDATE far *t1, const TIMEDATE far *t2);
+void LNPUBLIC TimeDateDifferenceFloat (const TIMEDATE far *t1,
+ const TIMEDATE far *t2, NUMBER far *difference);
+BOOL LNPUBLIC TimeDateAdjust (TIMEDATE far *Time, int seconds, int minutes, int hours, int days, int months, int years);
+int LNPUBLIC IntlTextCompare(const void far *Str1, WORD Str1Len,
+ const void far *Str2, WORD Str2Len, DWORD Flags);
+STATUS LNPUBLIC ConvertTextToTIMEDATE (const void far *IntlFormat,
+ const TFMT far *TextFormat,
+ char far * far *Text,
+ WORD MaxLength,
+ TIMEDATE far *retTIMEDATE);
+/*
+ * Functions to allow TIMEDATE conversion on extended International Timedates.
+ */
+STATUS LNPUBLIC IntlTIMEDATECreateHandle(INTLTIMEDATEHANDLE *hTimeDateHandle);
+void LNPUBLIC IntlTIMEDATEDeleteHandle(INTLTIMEDATEHANDLE hTimeDateHandle);
+STATUS LNPUBLIC IntlTIMEDATESetValue(INTLTIMEDATEHANDLE hTimeDateHandle, INTL_TIMEDATE_PROPERTY prop, void *propValue);
+STATUS LNPUBLIC IntlTIMEDATEGetValue(INTLTIMEDATEHANDLE hTimeDateHandle, INTL_TIMEDATE_PROPERTY prop, WORD valueLen, void *retpropValue);
+STATUS LNPUBLIC IntlTIMEDATEConvertToText (INTLTIMEDATEHANDLE hTimeDateHandle, const void far *IntlFormat,
+ const DTFMT *ExtTextFormat, WORD DTFMTLen,
+ const TIMEDATE *InputTime, WORD TextBufferLength,
+ char *retTextBuffer, WORD *retTextLength);
+STATUS LNPUBLIC ConvertTextToTIMEDATEPAIR (const void far *IntlFormat,
+ const TFMT far *TextFormat,
+ char far * far *Text,
+ WORD MaxLength,
+ TIMEDATE_PAIR far *retTIMEDATE);
+STATUS LNPUBLIC ConvertTIMEDATEToText (const void far *IntlFormat,
+ const TFMT far *TextFormat,
+ const TIMEDATE far *InputTime,
+ char far *retTextBuffer,
+ WORD TextBufferLength,
+ WORD far *retTextLength);
+STATUS LNPUBLIC ConvertTIMEDATEPAIRToText (const void far *IntlFormat,
+ const TFMT far *TextFormat,
+ const TIMEDATE_PAIR far *InputTime,
+ char far *retTextBuffer,
+ WORD TextBufferLength,
+ WORD far *retTextLength);
+STATUS LNPUBLIC ConvertTextToFLOAT (const void far *IntlFormat,
+ const NFMT far *NumberFormat,
+ char far * far *ppInputText,
+ WORD InputTextMaxLength,
+ NUMBER far *retNumber);
+STATUS LNPUBLIC ConvertFLOATToText (const void far *IntlFormat,
+ const NFMT far *NumberFormat,
+ NUMBER far *Number,
+ char far *retTextBuffer,
+ WORD TextBufferLength,
+ WORD far *retTextLength);
+void LNPUBLIC Soundex (const char far *String, WORD StringLength, char far *retSoundexString);
+
+/* Abstract */
+
+/* chunk separator parameters */
+#define ABS_CHUNKBEGIN "ChunkBegin="
+#define ABS_CHUNKSEP "ChunkSep="
+#define ABS_CHUNKEND "ChunkEnd="
+
+/* abstraction commands */
+#define ABS_TEXTONLY "textonly "
+#define ABS_COUNTWORDS "countwords "
+#define ABS_SAVE "save "
+#define ABS_RESTORE "restore "
+#define ABS_TRYFIT "tryfit "
+#define ABS_ABBREV "abbrev "
+#define ABS_SORTCHUNKS "sortchunks "
+#define ABS_NOSTOPLIST "nostoplist "
+#define ABS_NOSIGLIST "nosiglist "
+#define ABS_USEDICT "ab-usedict "
+#define ABS_NODICT "ab-usedict=0 "
+#define ABS_DROPVOWELS "ab-dropvowels "
+#define ABS_KEEPVOWELS "ab-dropvowels=0 "
+#define ABS_TRIMWHITE "ab-trimwhite "
+#define ABS_NOTRIMWHITE "ab-trimwhite=0 "
+#define ABS_TRIMPUNCT "ab-trimpunct "
+#define ABS_NOTRIMPUNCT "ab-trimpunct=0 "
+#define ABS_DROPFIRSTVOWEL "ab-dropfirstvowels "
+#define ABS_KEEPFIRSTVOWEL "ab-dropfirstvowels=0 "
+
+
+STATUS LNPUBLIC Abstract(char far *szKeywords,
+ char far *szText,
+ DWORD maxAbstract,
+ char far *szAbstract,
+ DWORD far *retSize);
+
+
+STATUS LNPUBLIC SECHashPassword(WORD wPasswordLen,
+ BYTE *Password,
+ WORD wMaxDigestLen,
+ WORD *retDigestLen,
+ BYTE *retDigest,
+ DWORD ReservedFlags,
+ void *pReserved
+ );
+
+STATUS LNPUBLIC SECVerifyPassword(WORD wPasswordLen,
+ BYTE *Password,
+ WORD wDigestLen,
+ BYTE *Digest,
+ DWORD ReservedFlags,
+ void *pReserved
+ );
+
+/* Notes bitmap conversion routines and constants. Should be exposed in the CAPI
+ notescvt.c
+*/
+#define CONVERT_NOTESBITMAP_TO_GIF 0
+typedef STATUS (LNCALLBACKPTR pConvertNBmpWriter)(void *pWriterCtx, /* user defined writer context */
+ BYTE *bytes, /* data bytes */
+ DWORD byteCount, /* maxChunkSize or totalImageSizeInBytes */
+ DWORD totalImageSizeInBytes);
+STATUS LNPUBLIC ConvertNotesBitmapRead(MEMHANDLE *phConvertContext,
+ WORD cdSignature,
+ char far *pCDRecord,
+ DWORD recordLength
+ );
+STATUS LNPUBLIC ConvertNotesBitmap(MEMHANDLE hConvertContext, /* created by ConvertNotesBitmapRead */
+ WORD convertTo, /* CONVERT_NOTESBITMAP_TO_GIF */
+ DWORD maxChunkSize, /* if zero will pass entire bitmap in bytes parameter of pWriter function*/
+ pConvertNBmpWriter pWriter, /* user defined writer */
+ void *pWriterCtx /* context passed to user defined writer */
+ );
+STATUS LNPUBLIC ConvertNotesBitmapFree(MEMHANDLE *phConvertContext);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MISC_DEFS */
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/names.h b/plugins/LotusNotify/src/cnotesapi/include/names.h
new file mode 100644
index 0000000000..18e52dc95b
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/names.h
@@ -0,0 +1,177 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2004 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef NAME_DEFS
+#define NAME_DEFS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ Definitions pertaining to naming and maximum name lengths
+*/
+
+/* Maximum name length constants. */
+
+/* MAXPATH is the maximum size of a full filespec, including the server and
+ port name (e.g. "NETBEUI!!!A Long Server Name/Iris!!dir1/dir2/file").
+
+ MAXPATH must be capable of representing a full filespec not only on
+ the local machine (that we're compiling for), but also capable of
+ representing a full filespec on any remote server on any other platform!
+
+ Because a full filespec, including fully expanded server names, can be
+ quite long, we have a policy that if the buffer limit is reached when
+ constructing a full path, OSPathConstruct (and others) return an error
+ to the caller, which gets reported to the user (rather than trying to
+ open a truncated filespec).
+
+ The maximum length includes the terminating null so these maximums
+ may be used in data declarations. However, in places where a size
+ is specified that indicates the maximum number of characters in the
+ name, then the appropriate number minus 1 should be used.
+*/
+
+/* Before V4, MAXPATH was 256 for MAC, NLM & UNIX. For others it was 100.
+ Win95 which is now supported by V4 has long filenames, requiring the
+ MAXPATH to be increased to 256. For old compatibility, we have defined
+ OLDMAXPATH which is the same definition of MAXPATH in V3 and below. The
+ MAXPATH define in V4 is now 256 for all platforms.
+*/
+
+#if defined(MAC) || defined(NLM) || defined(UNIX)
+#define OLDMAXPATH 256 /* Maximum pathname */
+#else
+#define OLDMAXPATH 100 /* Maximum pathname */
+#endif
+
+
+#if !defined(DOSW16)
+#ifdef MAXPATH
+#undef MAXPATH /* Remove previous definition, if any (e.g. UNIX headers) */
+#endif
+#define MAXPATH 256 /* Maximum pathname */
+#else
+#define MAXPATH 100 /* Maximum pathname */
+#endif
+
+/* MAXPATH_OLE is the maximum size of a full filespec within OLE, including
+ the server and port name. It is used within Notes OLE in areas where
+ the Notes API warning on MAXPATH does not apply.
+*/
+
+#if (defined(W32) && !defined(UNIX)) || defined(MAC)
+#define MAXPATH_OLE 260 /* Maximum pathname for OLE */
+#else
+#define MAXPATH_OLE 256 /* Maximum pathname for OLE */
+#endif
+
+
+#ifdef MAC
+/* Some Int'l Macs require more than 32 bytes for port name (have seen
+ at least 68 chars in a PCMCIA card name).
+ Note: for SDK concern, we made change for MAC only.
+*/
+#define MAXPORTNAME 64 /* Maximum port name */
+#else
+#define MAXPORTNAME 32 /* Maximum port name */
+#endif
+
+#define MAXUSERNAME 256 /* Maximum user name */
+#define MAXDOMAINNAME 32 /* Maximum management domain name */
+#define MAXDOMAINPATH 32+1+MAXUSERNAME /* Maximum management domain name component of address (LOTUS:CPD-QA-SERVER) */
+
+#define OLDFILETITLEMAX 33 /* Pre V5 Notefile title string MAX(ASCIZ) */
+#define FILETITLEMAX 97 /* Notefile title string MAX(ASCIZ) */
+
+#define DESIGN_LEVELS 2 /* Cascade can go only one */
+ /* level deep parent\sub */
+#define DESIGN_LEVEL_MAX 64 /* Maximum size of a level */
+
+#define DESIGN_NAME_MAX ((DESIGN_LEVEL_MAX+1)*DESIGN_LEVELS)
+ /* Guaranteed */
+ /* To be the greatest of */
+ /* Form, View or Macro */
+ /* length. NOTE: We need */
+ /* space for LEVELS-1 cascade */
+ /* characters and a NULL term. */
+ /* The +1 takes care of that. */
+
+#define DESIGN_FORM_MAX DESIGN_NAME_MAX /* Forms can cascade a level */
+#define DESIGN_VIEW_MAX DESIGN_NAME_MAX /* Views can cascade a level */
+#define DESIGN_MACRO_MAX DESIGN_NAME_MAX /* Macros can cascade a level */
+#define DESIGN_FIELD_MAX DESIGN_LEVEL_MAX+1 /* Fields cannot cascade */
+
+#define DESIGN_COMMENT_MAX 256 /* Design element comment max size. */
+#define DESIGN_ALL_NAMES_MAX 256 /* All names, including sysnonyms */
+#define DESIGN_FOLDER_MAX DESIGN_VIEW_MAX /* Same as for views */
+#define DESIGN_FOLDER_MAX_NAME DESIGN_LEVEL_MAX /* Same as for views */
+
+#define DESIGN_FLAGS_MAX 32
+
+
+/* Constants for names used in registering a new workstation/server. */
+
+#define MAXLOCATIONNAME 128
+#define MAXCOMMENTNAME 512
+#define MAX_ID_PASSWORD 64
+
+/* Constants used for applying/converting mail system types chosen during
+ user registration to the mailtype field in the person document. These
+ should be in the same order as the keyword values in this mail type field */
+
+
+#define MAILSYSTEM_NOTES 0
+#define MAILSYSTEM_CCMAIL 1
+#define MAILSYSTEM_VIMMAIL 2
+#define MAILSYSTEM_NONE 99
+/* Constants for Client Type. */
+
+#define CLIENTTYPE_FULL 0
+#define CLIENTTYPE_LIMITED 1
+#define CLIENTTYPE_DESKTOP 2
+
+
+
+#define MAXNETADR 64
+
+
+#define RESERVED_PRIV_PREFIX '(' /* Group names cannot begin with this */
+#define RESERVED_CLASS_PREFIX '[' /* Group names cannot begin with this */
+
+#ifdef MAC
+#define MAXFILETITLE 20
+#define MAXFILENAME 31
+#else
+#define MAXFILETITLE 12
+#define MAXFILENAME 12
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nif.h b/plugins/LotusNotify/src/cnotesapi/include/nif.h
new file mode 100644
index 0000000000..f0fc3a1a25
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nif.h
@@ -0,0 +1,520 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+/* NIF manipulation routines & basic datatypes */
+
+#ifndef NIF_DEFS
+#define NIF_DEFS
+
+#ifndef NSF_DATA_DEFS
+#include "nsfdata.h" /* We need NOTEID */
+#endif
+
+#ifndef NSF_NOTE_DEFS
+#include "nsfnote.h" /* We need NOTE_CLASS_VIEW */
+#endif
+
+#ifndef POOL_DEFS
+#include "pool.h"
+#endif
+
+#ifndef STD_NAME_DEFS
+#include "stdnames.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DB2NIF_VERSION 11
+
+/* Collection handle */
+
+typedef WORD HCOLLECTION; /* Handle to NIF collection */
+#define NULLHCOLLECTION ( (HCOLLECTION) 0 )
+
+
+/* NIFOpenCollection "open" flags */
+
+#define OPEN_REBUILD_INDEX 0x0001 /* Throw away existing index and */
+ /* rebuild it from scratch */
+#define OPEN_NOUPDATE 0x0002 /* Do not update index or unread */
+ /* list as part of open (usually */
+ /* set by server when it does it */
+ /* incrementally instead). */
+#define OPEN_DO_NOT_CREATE 0x0004 /* If collection object has not yet */
+ /* been created, do NOT create it */
+ /* automatically, but instead return */
+ /* a special internal error called */
+ /* ERR_COLLECTION_NOT_CREATED */
+#define OPEN_SHARED_VIEW_NOTE 0x0010 /* Tells NIF to "own" the view note */
+ /* (which gets read while opening the */
+ /* collection) in memory, rather than */
+ /* the caller "owning" the view note */
+ /* by default. If this flag is specified */
+ /* on subsequent opens, and NIF currently */
+ /* owns a copy of the view note, it */
+ /* will just pass back the view note */
+ /* handle rather than re-reading it */
+ /* from disk/network. If specified, */
+ /* the the caller does NOT have to */
+ /* close the handle. If not specified, */
+ /* the caller gets a separate copy, */
+ /* and has to NSFNoteClose the */
+ /* handle when its done with it. */
+#define OPEN_REOPEN_COLLECTION 0x0020 /* Force re-open of collection and */
+ /* thus, re-read of view note. */
+ /* Also implicitly prevents sharing */
+ /* of collection handle, and thus */
+ /* prevents any sharing of associated */
+ /* structures such as unread lists, etc */
+
+
+/* Collection navigation directives */
+
+#define NAVIGATE_CURRENT 0 /* Remain at current position */
+ /* (reset position & return data) */
+#define NAVIGATE_PARENT 3 /* Up 1 level */
+#define NAVIGATE_CHILD 4 /* Down 1 level to first child */
+#define NAVIGATE_NEXT_PEER 5 /* Next node at our level */
+#define NAVIGATE_PREV_PEER 6 /* Prev node at our level */
+#define NAVIGATE_FIRST_PEER 7 /* First node at our level */
+#define NAVIGATE_LAST_PEER 8 /* Last node at our level */
+#define NAVIGATE_CURRENT_MAIN 11 /* Highest level non-category entry */
+#define NAVIGATE_NEXT_MAIN 12 /* CURRENT_MAIN, then NEXT_PEER */
+#define NAVIGATE_PREV_MAIN 13 /* CURRENT_MAIN, then PREV_PEER only if already there */
+#define NAVIGATE_NEXT_PARENT 19 /* PARENT, then NEXT_PEER */
+#define NAVIGATE_PREV_PARENT 20 /* PARENT, then PREV_PEER */
+
+#define NAVIGATE_NEXT 1 /* Next entry over entire tree */
+ /* (parent first, then children,...) */
+#define NAVIGATE_PREV 9 /* Previous entry over entire tree */
+ /* (opposite order of PREORDER) */
+#define NAVIGATE_ALL_DESCENDANTS 17 /* NEXT, but only descendants */
+ /* below NIFReadEntries StartPos */
+#define NAVIGATE_NEXT_UNREAD 10 /* NEXT, but only "unread" entries */
+#define NAVIGATE_NEXT_UNREAD_MAIN 18 /* NEXT_UNREAD, but stop at main note also */
+#define NAVIGATE_PREV_UNREAD_MAIN 34 /* Previous unread main. */
+#define NAVIGATE_PREV_UNREAD 21 /* PREV, but only "unread" entries */
+#define NAVIGATE_NEXT_SELECTED 14 /* NEXT, but only "selected" entries */
+#define NAVIGATE_PREV_SELECTED 22 /* PREV, but only "selected" entries */
+#define NAVIGATE_NEXT_SELECTED_MAIN 32 /* Next selected main. (Next unread */
+ /* main can be found above.) */
+#define NAVIGATE_PREV_SELECTED_MAIN 33 /* Previous selected main. */
+#define NAVIGATE_NEXT_EXPANDED 15 /* NEXT, but only "expanded" entries */
+#define NAVIGATE_PREV_EXPANDED 16 /* PREV, but only "expanded" entries */
+#define NAVIGATE_NEXT_EXPANDED_UNREAD 23 /* NEXT, but only "expanded" AND "unread" entries */
+#define NAVIGATE_PREV_EXPANDED_UNREAD 24 /* PREV, but only "expanded" AND "unread" entries */
+#define NAVIGATE_NEXT_EXPANDED_SELECTED 25 /* NEXT, but only "expanded" AND "selected" entries */
+#define NAVIGATE_PREV_EXPANDED_SELECTED 26 /* PREV, but only "expanded" AND "selected" entries */
+#define NAVIGATE_NEXT_EXPANDED_CATEGORY 27 /* NEXT, but only "expanded" AND "category" entries */
+#define NAVIGATE_PREV_EXPANDED_CATEGORY 28 /* PREV, but only "expanded" AND "category" entries */
+#define NAVIGATE_NEXT_EXP_NONCATEGORY 39 /* NEXT, but only "expanded" "non-category" entries */
+#define NAVIGATE_PREV_EXP_NONCATEGORY 40 /* PREV, but only "expanded" "non-category" entries */
+#define NAVIGATE_NEXT_HIT 29 /* NEXT, but only FTSearch "hit" entries */
+ /* (in the SAME ORDER as the hit's relevance ranking) */
+#define NAVIGATE_PREV_HIT 30 /* PREV, but only FTSearch "hit" entries */
+ /* (in the SAME ORDER as the hit's relevance ranking) */
+#define NAVIGATE_CURRENT_HIT 31 /* Remain at current position in hit's relevance rank array */
+ /* (in the order of the hit's relevance ranking) */
+#define NAVIGATE_NEXT_SELECTED_HIT 35 /* NEXT, but only "selected" and FTSearch "hit" entries */
+ /* (in the SAME ORDER as the hit's relevance ranking) */
+#define NAVIGATE_PREV_SELECTED_HIT 36 /* PREV, but only "selected" and FTSearch "hit" entries */
+ /* (in the SAME ORDER as the hit's relevance ranking) */
+#define NAVIGATE_NEXT_UNREAD_HIT 37 /* NEXT, but only "unread" and FTSearch "hit" entries */
+ /* (in the SAME ORDER as the hit's relevance ranking) */
+#define NAVIGATE_PREV_UNREAD_HIT 38 /* PREV, but only "unread" and FTSearch "hit" entries */
+ /* (in the SAME ORDER as the hit's relevance ranking) */
+#define NAVIGATE_NEXT_CATEGORY 41 /* NEXT, but only "category" entries */
+#define NAVIGATE_PREV_CATEGORY 42 /* PREV, but only "category" entries */
+#define NAVIGATE_NEXT_NONCATEGORY 43 /* NEXT, but only "non-category" entries */
+#define NAVIGATE_PREV_NONCATEGORY 44 /* PREV, but only "non-category" entries */
+
+#define NAVIGATE_MASK 0x007F /* Navigator code (see above) */
+
+
+/* Flag which can be used with ALL navigators which causes the navigation
+ to be limited to entries at a specific level (specified by the
+ field "MinLevel" in the collection position) or any higher levels
+ but never a level lower than the "MinLevel" level. Note that level 0
+ means the top level of the index, so the term "minimum level" really
+ means the "highest level" the navigation can move to.
+ This can be used to find all entries below a specific position
+ in the index, limiting yourself only to that subindex, and yet be
+ able to use any of the navigators to move around within that subindex.
+ This feature was added in Version 4 of Notes, so it cannot be used
+ with earlier Notes Servers. */
+
+#define NAVIGATE_MINLEVEL 0x0100 /* Honor "Minlevel" field in position */
+#define NAVIGATE_MAXLEVEL 0x0200 /* Honor "Maxlevel" field in position */
+
+/* This flag can be combined with any navigation directive to
+ prevent having a navigation (Skip) failure abort the (ReadEntries) operation.
+ For example, this is used by the Notes user interface when
+ getting the entries to display in the view, so that if an attempt is made to
+ skip past either end of the index (e.g. using PageUp/PageDown),
+ the skip will be left at the end of the index, and the return will return
+ whatever can be returned using the separate return navigator.
+
+ This flag is also used to get the "last" N entries of a view by setting the
+ Skip Navigator to NAVIGATE_NEXT | NAVIGATE_CONTINUE, setting the SkipCount to MAXDWORD,
+ setting the ReturnNavigator to NAVIGATE_PREV_EXPANDED, and setting the ReturnCount
+ to N (N must be greater than 0). */
+
+#define NAVIGATE_CONTINUE 0x8000 /* "Return" even if "Skip" error */
+
+/* Structure which describes statistics about the overall collection,
+ and can be requested using the READ_MASK_COLLECTIONSTATS flag. If
+ requested, this structure is returned at the beginning of the returned
+ ReadEntries buffer. */
+
+typedef struct
+ {
+ WORD TopLevelEntries; /* # top level entries (level 0) */
+ WORD spare[3]; /* 0 */
+ } COLLECTIONSTATS16;
+
+typedef struct
+ {
+ DWORD TopLevelEntries; /* # top level entries (level 0) */
+ DWORD spare; /* 0 */
+ } COLLECTIONSTATS;
+
+/* Structure which specifies collection index position. */
+
+#define MAXTUMBLERLEVELS_V2 8 /* Max. levels in hierarchy tree in V2 */
+#define MAXTUMBLERLEVELS 32 /* Max. levels in hierarchy tree */
+
+typedef struct
+ {
+ WORD Level; /* # levels -1 in tumbler */
+ /* (top level = 0) */
+ WORD Tumbler[MAXTUMBLERLEVELS_V2]; /* Current tumbler (1.2.3, etc) */
+ /* (an array of ordinal ranks) */
+ /* (0th entry = top level) */
+ } COLLECTIONPOSITION16;
+
+typedef struct
+ {
+ WORD Level; /* # levels -1 in tumbler */
+ /* (top level = 0) */
+ BYTE MinLevel; /* MINIMUM level that this position */
+ /* is allowed to be nagivated to. */
+ /* This is useful to navigate a */
+ /* subtree using all navigator codes. */
+ /* This field is IGNORED unless */
+ /* the NAVIGATE_MINLEVEL flag is */
+ /* enabled (for backward compat) */
+ BYTE MaxLevel; /* MAXIMUM level that this position */
+ /* is allowed to be nagivated to. */
+ /* This is useful to navigate a */
+ /* subtree using all navigator codes. */
+ /* This field is IGNORED unless */
+ /* the NAVIGATE_MAXLEVEL flag is */
+ /* enabled (for backward compat) */
+ DWORD Tumbler[MAXTUMBLERLEVELS]; /* Current tumbler (1.2.3, etc) */
+ /* (an array of ordinal ranks) */
+ /* (0th entry = top level) */
+ /* Actual number of array entries */
+ /* is Level+1 */
+ } COLLECTIONPOSITION;
+
+
+/* Macro which computes size of portion of COLLECTIONPOSITION structure
+ which is actually used. This is the size which is returned by
+ NIFReadEntries when READ_MASK_INDEXPOSITION is specified. */
+
+#define COLLECTIONPOSITIONSIZE16(p) (sizeof(WORD) * ((p)->Level+2))
+#define COLLECTIONPOSITIONSIZE(p) (sizeof(DWORD) * ((p)->Level+2))
+/* NIFReadEntries return mask flags
+
+ These flags specified what information is returned in the return
+ buffer. With the exception of READ_MASK_COLLECTIONSTATS, the
+ information which corresponds to each of the flags in this mask
+ are returned in the buffer, repeated for each index entry, in the
+ order in which the bits are listed here.
+
+ The return buffer consists of:
+
+ 1) COLLECTIONSTATS structure, if requested (READ_MASK_COLLECTIONSTATS).
+ This structure is returned only once at the beginning of the
+ buffer, and is not repeated for each index entry.
+
+ 2) Information about each index entry. Each flag requested a different
+ bit of information about the index entry. If more than one flag
+ is defined, the values follow each other, in the order in which
+ the bits are listed here. This portion repeats for as many
+ index entries as are requested.
+*/
+
+ /* Fixed length stuff */
+#define READ_MASK_NOTEID 0x00000001L /* NOTEID of entry */
+#define READ_MASK_NOTEUNID 0x00000002L /* UNID of entry */
+#define READ_MASK_NOTECLASS 0x00000004L /* WORD of "note class" */
+#define READ_MASK_INDEXSIBLINGS 0x00000008L /* DWORD/WORD of # siblings of entry */
+#define READ_MASK_INDEXCHILDREN 0x00000010L /* DWORD/WORD of # direct children of entry */
+#define READ_MASK_INDEXDESCENDANTS 0x00000020L /* DWORD/WORD of # descendants below entry */
+#define READ_MASK_INDEXANYUNREAD 0x00000040L /* WORD of TRUE if "unread" or */
+ /* "unread" descendants; else FALSE */
+#define READ_MASK_INDENTLEVELS 0x00000080L /* WORD of # levels that this */
+ /* entry should be indented in */
+ /* a formatted view. */
+ /* For category entries: */
+ /* # sub-levels that this */
+ /* category entry is within its */
+ /* Collation Descriptor. Used */
+ /* for multiple-level category */
+ /* columns (backslash-delimited). */
+ /* "0" for 1st level in this column, etc. */
+ /* For response entries: */
+ /* # levels that this response */
+ /* is below the "main note" level. */
+ /* For normal entries: 0 */
+#define READ_MASK_SCORE 0x00000200L /* Relavence "score" of entry */
+ /* (only used with FTSearch). */
+#define READ_MASK_INDEXUNREAD 0x00000400L /* WORD of TRUE if this entry (only) "unread" */
+
+
+ /* Stuff returned only once at beginning of return buffer */
+#define READ_MASK_COLLECTIONSTATS 0x00000100L /* Collection statistics (COLLECTIONSTATS/COLLECTIONSTATS16) */
+
+
+ /* Variable length stuff */
+#define READ_MASK_INDEXPOSITION 0x00004000L /* Truncated COLLECTIONPOSITION/COLLECTIONPOSITION16 */
+#define READ_MASK_SUMMARYVALUES 0x00002000L /* Summary buffer w/o item names */
+#define READ_MASK_SUMMARY 0x00008000L /* Summary buffer with item names */
+/* Structures which are used by NIFGetCollectionData to return data
+ about the collection. NOTE: If the COLLECTIONDATA structure changes,
+ nifods.c must change as well. */
+
+/* Definitions which are used by NIFGetCollectionData to return data about the collection. */
+
+#define PERCENTILE_COUNT 11
+
+#define PERCENTILE_0 0
+#define PERCENTILE_10 1
+#define PERCENTILE_20 2
+#define PERCENTILE_30 3
+#define PERCENTILE_40 4
+#define PERCENTILE_50 5
+#define PERCENTILE_60 6
+#define PERCENTILE_70 7
+#define PERCENTILE_80 8
+#define PERCENTILE_90 9
+#define PERCENTILE_100 10
+
+typedef struct
+ {
+ DWORD DocCount; /* Total number of documents in the collection */
+ DWORD DocTotalSize; /* Total number of bytes occupied by the documents in the collection */
+ DWORD BTreeLeafNodes; /* Number of B-Tree leaf nodes for this index. */
+ WORD BTreeDepth; /* Number of B-tree levels for this index. */
+ WORD Spare; /* Unused */
+ DWORD KeyOffset[PERCENTILE_COUNT]; /* Offset of ITEM_VALUE_TABLE for each 10th-percentile key value */
+ /* A series of ITEM_VALUE_TABLEs follows this structure. */
+ } COLLECTIONDATA;
+
+
+
+/* Flag in index entry's NOTEID to indicate (ghost) "category entry" */
+/* Note: this relies upon the fact that NOTEID_RESERVED is high bit! */
+
+#define NOTEID_CATEGORY 0x80000000L /* Bit 31 -> (ghost) "category entry" */
+#define NOTEID_CATEGORY_TOTAL 0xC0000000L /* Bit 31+30 -> (ghost) "grand total entry" */
+#define NOTEID_CATEGORY_INDENT 0x3F000000L /* Bits 24-29 -> category indent level within this column */
+#define NOTEID_CATEGORY_ID 0x00FFFFFFL /* Low 24 bits are unique category # */
+
+
+/* SignalFlags word returned by NIFReadEntries and V4+ NIFFindByKey */
+
+#define SIGNAL_DEFN_ITEM_MODIFIED 0x0001
+ /* At least one of the "definition" */
+ /* view items ($FORMULA, $COLLATION, */
+ /* or $FORMULACLASS) has been modified */
+ /* by another user since last ReadEntries. */
+ /* Upon receipt, you may wish to */
+ /* re-read the view note if up-to-date */
+ /* copies of these items are needed. */
+ /* Upon receipt, you may also wish to */
+ /* re-synchronize your index position */
+ /* and re-read the rebuilt index. */
+ /* Signal returned only ONCE per detection */
+#define SIGNAL_VIEW_ITEM_MODIFIED 0x0002
+ /* At least one of the non-"definition" */
+ /* view items ($TITLE,etc) has been */
+ /* modified since last ReadEntries. */
+ /* Upon receipt, you may wish to */
+ /* re-read the view note if up-to-date */
+ /* copies of these items are needed. */
+ /* Signal returned only ONCE per detection */
+#define SIGNAL_INDEX_MODIFIED 0x0004
+ /* Collection index has been modified */
+ /* by another user since last ReadEntries. */
+ /* Upon receipt, you may wish to */
+ /* re-synchronize your index position */
+ /* and re-read the modified index. */
+ /* Signal returned only ONCE per detection */
+#define SIGNAL_UNREADLIST_MODIFIED 0x0008
+ /* Unread list has been modified */
+ /* by another window using the same */
+ /* hCollection context */
+ /* Upon receipt, you may wish to */
+ /* repaint the window if the window */
+ /* contains the state of unread flags */
+ /* (This signal is never generated */
+ /* by NIF - only unread list users) */
+#define SIGNAL_DATABASE_MODIFIED 0x0010
+ /* Collection is not up to date */
+#define SIGNAL_MORE_TO_DO 0x0020
+ /* End of collection has not been reached */
+ /* due to buffer being too full. */
+ /* The ReadEntries should be repeated */
+ /* to continue reading the desired entries. */
+#define SIGNAL_VIEW_TIME_RELATIVE 0x0040
+ /* The view contains a time-relative formula */
+ /* (e.g., @Now). Use this flag to tell if the */
+ /* collection will EVER be up-to-date since */
+ /* time-relative views, by definition, are NEVER */
+ /* up-to-date. */
+#define SIGNAL_NOT_SUPPORTED 0x0080
+ /* Returned if signal flags are not supported */
+ /* This is used by NIFFindByKeyExtended when it */
+ /* is talking to a pre-V4 server that does not */
+ /* support signal flags for FindByKey */
+
+/* Mask that defines all "sharing conflicts", which are cases when
+ the database or collection has changed out from under the user. */
+
+#define SIGNAL_ANY_CONFLICT (SIGNAL_DEFN_ITEM_MODIFIED | \
+ SIGNAL_VIEW_ITEM_MODIFIED | \
+ SIGNAL_INDEX_MODIFIED | \
+ SIGNAL_UNREADLIST_MODIFIED | \
+ SIGNAL_DATABASE_MODIFIED)
+
+/* Mask that defines all "sharing conflicts" except for SIGNAL_DATABASE_MODIFIED.
+ This can be used in combination with SIGNAL_VIEW_TIME_RELATIVE to tell if
+ the database or collection has truly changed out from under the user or if the
+ view is a time-relative view which will NEVER be up-to-date. SIGNAL_DATABASE_MODIFIED
+ is always returned for a time-relative view to indicate that it is never up-to-date. */
+
+#define SIGNAL_ANY_NONDATA_CONFLICT (SIGNAL_DEFN_ITEM_MODIFIED | \
+ SIGNAL_VIEW_ITEM_MODIFIED | \
+ SIGNAL_INDEX_MODIFIED | \
+ SIGNAL_UNREADLIST_MODIFIED)
+
+/* NIFFindByKey "find" flags */
+
+#define FIND_PARTIAL 0x0001 /* Match only initial characters */
+ /* ("T" matches "Tim") */
+#define FIND_CASE_INSENSITIVE 0x0002 /* Case insensitive */
+ /* ("tim" matches "Tim") */
+#define FIND_RETURN_DWORD 0x0004 /* Input/Output is DWORD COLLECTIONPOSITION */
+#define FIND_ACCENT_INSENSITIVE 0x0008 /* Accent insensitive (ignore diacritical marks */
+#define FIND_UPDATE_IF_NOT_FOUND 0x0020 /* If key is not found, update collection */
+ /* and search again */
+
+/* At most one of the following four flags should be specified */
+#define FIND_LESS_THAN 0x0040 /* Find last entry less than the key value */
+#define FIND_FIRST_EQUAL 0x0000 /* Find first entry equal to the key value (if more than one) */
+#define FIND_LAST_EQUAL 0x0080 /* Find last entry equal to the key value (if more than one) */
+#define FIND_GREATER_THAN 0x00C0 /* Find first entry greater than the key value */
+#define FIND_EQUAL 0x0800 /* Qualifies LESS_THAN and GREATER_THAN to mean */
+ /* LESS_THAN_OR_EQUAL and GREATER_THAN_OR_EQUAL */
+#define FIND_COMPARE_MASK 0x08C0 /* Bitmask of the comparison flags defined above */
+
+#define FIND_RANGE_OVERLAP 0x0100 /* Overlapping ranges match, and values within a range match */
+#define FIND_RETURN_ANY_NON_CATEGORY_MATCH 0x0200
+ /* Return First Match at bottom level of
+ Categorized view (Doesn't have
+ to be first of duplicates */
+#define FIND_NONCATEGORY_ONLY 0x0400 /* Only match non-category entries */
+
+/* NIF public entry points */
+
+STATUS LNPUBLIC NIFOpenCollection (DBHANDLE hViewDB, DBHANDLE hDataDB,
+ NOTEID ViewNoteID, WORD OpenFlags,
+ HANDLE hUnreadList,
+ HCOLLECTION far *rethCollection,
+ NOTEHANDLE far *rethViewNote, UNID far *retViewUNID,
+ HANDLE far *rethCollapsedList,
+ HANDLE far *rethSelectedList);
+STATUS LNPUBLIC NIFCloseCollection (HCOLLECTION hCollection);
+STATUS LNPUBLIC NIFUpdateCollection (HCOLLECTION hCollection);
+
+STATUS LNPUBLIC NIFOpenCollectionWithUserNameList (DBHANDLE hViewDB, DBHANDLE hDataDB,
+ NOTEID ViewNoteID, WORD OpenFlags,
+ HANDLE hUnreadList,
+ HCOLLECTION far *rethCollection,
+ NOTEHANDLE far *rethViewNote, UNID far *retViewUNID,
+ HANDLE far *rethCollapsedList,
+ HANDLE far *rethSelectedList,
+ HANDLE nameList);
+STATUS LNPUBLIC NIFReadEntries (HCOLLECTION hCollection, COLLECTIONPOSITION far *IndexPos,
+ WORD SkipNavigator, DWORD SkipCount,
+ WORD ReturnNavigator, DWORD ReturnCount,
+ DWORD ReturnMask,
+ HANDLE far *rethBuffer, WORD far *retBufferLength,
+ DWORD far *retNumEntriesSkipped,
+ DWORD far *retNumEntriesReturned,
+ WORD far *retSignalFlags);
+
+STATUS LNPUBLIC NIFSetCollation(HCOLLECTION hCollection, WORD CollationNum);
+STATUS LNPUBLIC NIFGetCollation(HCOLLECTION hCollection, WORD *retCollationNum);
+
+
+STATUS LNPUBLIC NIFLocateNote (HCOLLECTION hCollection, COLLECTIONPOSITION far *IndexPos, NOTEID NoteID);
+STATUS LNPUBLIC NIFFindByKey (HCOLLECTION hCollection, void far *KeyBuffer,
+ WORD FindFlags,
+ COLLECTIONPOSITION far *retIndexPos,
+ DWORD far *retNumMatches);
+STATUS LNPUBLIC NIFFindByName (HCOLLECTION hCollection, const char far *Name, WORD FindFlags,
+ COLLECTIONPOSITION far *retIndexPos,
+ DWORD far *retNumMatches);
+
+STATUS LNPUBLIC NIFFindDesignNote (DBHANDLE hFile, const char far *Name, WORD Class, NOTEID far *retNoteID);
+#define NIFFindView(hFile,Name,retNoteID) NIFFindDesignNoteExt(hFile,Name,NOTE_CLASS_VIEW, DFLAGPAT_VIEWS_AND_FOLDERS, retNoteID, 0)
+#define NIFFindDesignNoteByName(hFile,Name,retNoteID) NIFFindDesignNote(hFile,Name,NOTE_CLASS_ALL,retNoteID) /* Only for V2 backward compatibility */
+
+STATUS LNPUBLIC NIFFindPrivateDesignNote (DBHANDLE hFile, const char far *Name, WORD Class, NOTEID far *retNoteID);
+#define NIFFindPrivateView(hFile,Name,retNoteID) NIFFindPrivateDesignNote(hFile,Name,NOTE_CLASS_VIEW,retNoteID)
+STATUS LNPUBLIC NIFGetCollectionData (HCOLLECTION hCollection,
+ HANDLE far *rethCollData);
+
+#define FIND_DESIGN_NOTE_PARTIAL 1 /* Find design note with a partial match. This means that
+ when you are looking for "Inbox" it will also
+ match on "($Inbox)". And when you are looking
+ for "All Escalated Bugs" it will match
+ "QA\All Escalated Bugs" */
+
+STATUS LNPUBLIC NIFFindDesignNoteExt (DBHANDLE hFile, const char far *Name, WORD Class, const char *pszFlagsPattern, NOTEID far *retNoteID, DWORD Options);
+void LNPUBLIC NIFGetLastModifiedTime (HCOLLECTION hCollection,
+ TIMEDATE far *retLastModifiedTime);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nls.h b/plugins/LotusNotify/src/cnotesapi/include/nls.h
new file mode 100644
index 0000000000..49e625d159
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nls.h
@@ -0,0 +1,536 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1995, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+
+#if !defined(NLS_H)
+#define NLS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/********************************************************************
+** TYPES AND DEFINITIONS
+*/
+
+typedef WORD NLS_STATUS;
+
+typedef void NLS_INFO;
+typedef void far *NLS_PINFO;
+
+/********************************************************************
+** PROTOS
+*/
+
+NLS_STATUS LNPUBLIC NLS_load_charset (WORD CSID,
+ NLS_PINFO FAR * ppInfo);
+
+NLS_STATUS LNPUBLIC NLS_unload_charset (NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_translate (BYTE far * pString,
+ WORD Len,
+ BYTE far * pStringTarget,
+ WORD far * pSize,
+ WORD ControlFlags,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_find (BYTE far * far * ppString,
+ WORD Len,
+ const BYTE far * pSetOfChars,
+ WORD ControlFlags,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_find_substr (BYTE far * far * ppString,
+ WORD Len1,
+ const BYTE far * pSubString,
+ WORD Len2,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_get (BYTE far * far * ppString,
+ WORD Len,
+ BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+WORD LNPUBLIC NLS_goto_next (BYTE far * far * ppString,
+ WORD Len,
+ NLS_PINFO pInfo);
+
+WORD LNPUBLIC NLS_goto_prev (BYTE far * far * ppString,
+ const BYTE far * pStrStart,
+ NLS_PINFO pInfo);
+WORD LNPUBLIC NLS_goto_next_word_end (BYTE far * far * ppString,
+ WORD Len,
+ NLS_PINFO pInfo);
+
+WORD LNPUBLIC NLS_goto_next_word_start(BYTE far * far * ppString,
+ WORD Len,
+ NLS_PINFO pInfo);
+
+WORD LNPUBLIC NLS_goto_next_break (BYTE far * far * ppString,
+ WORD Len,
+ NLS_PINFO pInfo);
+
+WORD LNPUBLIC NLS_goto_prev_word_end (BYTE far * far * ppString,
+ const BYTE far * pStrStart,
+ NLS_PINFO pInfo);
+
+WORD LNPUBLIC NLS_goto_prev_word_start(BYTE far * far * ppString,
+ const BYTE far * pStrStart,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isalpha (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isalnum (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isarith (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_iscntrl (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isdigit (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_islower (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_ispunct (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isspace (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isupper (const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_isleadbyte (BYTE Character,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_string_chars (const BYTE far * pString,
+ WORD NumBytes,
+ WORD far * pNumChars,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_string_bytes (const BYTE far * pString,
+ WORD NumChars,
+ WORD far * pNumBytes,
+ NLS_PINFO pInfo);
+NLS_STATUS LNPUBLIC NLS_put (BYTE far * far * ppString,
+ const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+NLS_STATUS LNPUBLIC NLS_put_term (BYTE far * far * ppString,
+ const BYTE far * pCharacter,
+ NLS_PINFO pInfo);
+
+/********************************************************************
+** RETURN CODES
+*/
+
+#define NLS_SUCCESS 0x0
+#define NLS_BADPARM 0xABAD
+#define NLS_BUFFERTOOSMALL 0xA000
+#define NLS_CHARSSTRIPPED 0x1000
+#define NLS_ENDOFSTRING 0x1001
+#define NLS_FALLBACKUSED 0x1002
+#define NLS_FILEINVALID 0xA001
+#define NLS_FILENOTFOUND 0xA002
+#define NLS_FINDFAILED 0x1005
+#define NLS_INVALIDCHARACTER 0xA003
+#define NLS_INVALIDDATA 0xA004
+#define NLS_INVALIDENTRY 0xA005
+#define NLS_INVALIDTABLE 0xA006
+#define NLS_PROPNOTFOUND 0x1003
+#define NLS_STARTOFSTRING 0x1004
+#define NLS_STRINGSIZECHANGED 0x1006
+#define NLS_TABLEHEADERINVALID 0xA007
+#define NLS_TABLENOTFOUND 0x1007
+
+/********************************************************************
+** FLAGS
+*/
+
+/* NLS_find */
+#define NLS_FIND_CHARINSET 1
+#define NLS_FIND_CHARNOTINSET 2
+/* NLS_translate */
+
+#define NLS_NONULLTERMINATE 0x1
+#define NLS_NULLTERMINATE 0x2
+#define NLS_STRIPUNKNOWN 0x4
+#define NLS_TARGETISLMBCS 0x8
+#define NLS_SOURCEISLMBCS 0x10
+#define NLS_TARGETISUNICODE 0x20
+#define NLS_SOURCEISUNICODE 0x40
+#define NLS_TARGETISPLATFORM 0x80
+#define NLS_SOURCEISPLATFORM 0x100
+
+
+/********************************************************************
+** MISC DEFINES
+*/
+
+#define NLS_NULLTERM (WORD) -1
+#define NLS_NULLTERM32 (DWORD) -1
+
+#define NLS_SIZEOFNULL 1 /* for LMBCS implementation */
+
+#define NLS_MAXBYTESPERCHAR 3
+
+#define NLS_MAXBYTESPERCHAR_WITH_SURROGATE 6
+#define NLS_MAXRATIO_XLATE_FROM_LMBCS 4
+#define NLS_MAXRATIO_XLATE_TO_LMBCS 3
+
+
+/********************************************************************
+** CHARACTER SET ID'S
+*/
+
+#if !defined(NLS_NOCHARSETIDS)
+
+#define NLS_CS_DEFAULT 0xFFFF
+#define NLS_CS_LICS 0x0000 /* Lotus Intl Char Set (WK1) */
+#define NLS_CS_IBMCP851 0x0001
+#define NLS_CS_IBMCP852 0x0002
+#define NLS_CS_IBMCP853 0x0003
+#define NLS_CS_IBMCP857 0x0004
+#define NLS_CS_IBMCP862 0x0005
+#define NLS_CS_IBMCP864 0x0006
+#define NLS_CS_IBMCP866 0x0007
+#define NLS_CS_IBMCP437 0x0008
+#define NLS_CS_IBMCP850 0x0009
+#define NLS_CS_IBMCP855 0x000A
+#define NLS_CS_IBMCP860 0x000B
+#define NLS_CS_IBMCP861 0x000C
+#define NLS_CS_IBMCP863 0x000D
+#define NLS_CS_IBMCP865 0x000E
+#define NLS_CS_IBMCP869 0x000F
+#define NLS_CS_IBMCP874 0x0090
+#define NLS_CS_IBMCP899 0x0011
+#define NLS_CS_IBMCP932 0x0012
+#define NLS_CS_IBMCP942 0x0012 /* 932 942 for Lotus */
+#define NLS_CS_IBMCP943 0x0012
+#define NLS_CS_IBMCP5039 0x0012
+#define NLS_CS_IBMCP891 0x0013
+#define NLS_CS_DECMCS 0x0014 /* DEC Multinational Char Set */
+
+#define NLS_CS_EUC 0x0017 /* Extended Unix Code */
+#define NLS_CS_KS 0x0018 /* Korean - KSC 5601 */
+#define NLS_CS_IBMCP949 0x0018
+#define NLS_CS_TCA 0x0019
+#define NLS_CS_BIG5 0x001A /* Taiwan Chinese - traditional */
+#define NLS_CS_IBMCP950 0x001A
+#define NLS_CS_GB 0x001B /* PRC Chinese - simplified */
+#define NLS_CS_IBMCP936 0x001B
+#define NLS_CS_NECESJIS 0x001C /* NEC Extended Shift-JIS */
+#define NLS_CS_ISO646 0x001F /* aka 'ASCII' */
+#define NLS_CS_ASCII 0x001F
+#define NLS_CS_ISO88591 0x0020 /* ISO Latin-1 */
+#define NLS_CS_IBMCP819 0x0020
+#define NLS_CS_ISO88592 0x0021 /* ISO Latin-2 (E. Europe) */
+#define NLS_CS_IBMCP912 0x0021
+#define NLS_CS_ISO88593 0x0022
+#define NLS_CS_ISO88594 0x0023
+#define NLS_CS_ISO88595 0x0024
+#define NLS_CS_IBMCP915 0x0024
+#define NLS_CS_ISO88596 0x0025
+#define NLS_CS_IBMCP1008 0x0025
+#define NLS_CS_ISO88597 0x0026
+#define NLS_CS_IBMCP813 0x0026
+#define NLS_CS_ISO88598 0x0027
+#define NLS_CS_IBMCP916 0x0027
+#define NLS_CS_ISO88599 0x0028
+#define NLS_CS_IBMCP920 0x0028
+
+#define NLS_CS_HPROMAN 0x0030 /* HP Roman (LaserJet) */
+#define NLS_CS_HPGREEK 0x0031 /* HP Roman (LaserJet) */
+#define NLS_CS_HPTURKISH 0x0032 /* HP Roman (LaserJet) */
+#define NLS_CS_HPHEBREW 0x0034
+#define NLS_CS_HPARABIC 0x0035
+#define NLS_CS_HPTHAI 0x0036
+#define NLS_CS_HPJAPAN 0x0037
+#define NLS_CS_HPKANA 0x0038
+#define NLS_CS_HPKOREA 0x0039
+#define NLS_CS_HPPRC 0x003A
+#define NLS_CS_HPROC 0x003B /* Traditional Chinese */
+
+
+#define NLS_CS_IBMCP37 0x0040 /* EBCDIC */
+#define NLS_CS_IBMCP273 0x0041
+#define NLS_CS_IBMCP278 0x0042
+#define NLS_CS_IBMCP280 0x0043
+#define NLS_CS_IBMCP284 0x0044
+#define NLS_CS_IBMCP285 0x0045
+#define NLS_CS_IBMCP290 0x0046
+#define NLS_CS_IBMCP297 0x0047
+#define NLS_CS_IBMCP500 0x0048
+#define NLS_CS_IBMCP277 0x004C
+#define NLS_CS_IBMCP1047 0x004D
+#define NLS_CS_IBMCP1250 0x0050 /* Windows ANSI */
+#define NLS_CS_IBMCP1251 0x0051
+#define NLS_CS_IBMCP1252 0x0052
+#define NLS_CS_ANSI 0X0052
+#define NLS_CS_IBMCP1253 0x0053
+#define NLS_CS_IBMCP1254 0x0054
+#define NLS_CS_IBMCP1255 0x0055
+#define NLS_CS_IBMCP1256 0x0056
+#define NLS_CS_IBMCP1257 0x0057
+#define NLS_CS_MACSCRIPT0 0x0060 /* Mac Roman */
+#define NLS_CS_MACSCRIPT1 NLS_CS_IBMCP932 /*0x0061*/
+#define NLS_CS_MACSCRIPT2 NLS_CS_GB /*0x0062*/
+#define NLS_CS_MACSCRIPT3 NLS_CS_KS /*0x0063*/
+#define NLS_CS_MACSCRIPT4 NLS_CS_ISO88596 /*0x0064*/
+#define NLS_CS_MACSCRIPT5 NLS_CS_ISO88598 /*0x0065*/
+#define NLS_CS_MACSCRIPT6 0x0066 /* cckSTRCharSetISO88597 */
+#define NLS_CS_MACSCRIPT7 0x0067 /* cckSTRCharSetISO88595 */
+#define NLS_CS_MACSCRIPT8 0x0068
+#define NLS_CS_MACSCRIPT9 0x0069
+#define NLS_CS_MACSCRIPT10 0x006A
+#define NLS_CS_MACSCRIPT11 0x006B
+#define NLS_CS_MACSCRIPT12 0x006C
+#define NLS_CS_MACSCRIPT13 0x006D
+#define NLS_CS_MACSCRIPT14 0x006E
+#define NLS_CS_MACSCRIPT15 0x006F
+#define NLS_CS_MACSCRIPT16 0x0070
+#define NLS_CS_MACSCRIPT17 0x0071
+#define NLS_CS_MACSCRIPT18 0x0072
+#define NLS_CS_MACSCRIPT19 0x0073
+#define NLS_CS_MACSCRIPT20 0x0074
+#define NLS_CS_MACSCRIPT21 0x0075
+#define NLS_CS_MACSCRIPT22 0x0076
+#define NLS_CS_MACSCRIPT23 0x0077
+#define NLS_CS_MACSCRIPT24 0x0078
+#define NLS_CS_MACSCRIPT25 0x0079
+#define NLS_CS_MACSCRIPT26 0x007A
+#define NLS_CS_MACSCRIPT27 0x007B
+#define NLS_CS_MACSCRIPT28 0x007C
+#define NLS_CS_MACSCRIPT29 0x007D
+#define NLS_CS_MACSCRIPT30 0x007E
+#define NLS_CS_MACSCRIPT31 0x007F
+#define NLS_CS_MACSCRIPT32 0x0080
+#define NLS_CS_MACSCRIPT0CROATIAN 0x0081
+#define NLS_CS_MACSCRIPT0GREEK 0x0082
+#define NLS_CS_MACSCRIPT0ICELANDIC 0x0083
+#define NLS_CS_MACSCRIPT0ROMANIAN 0x0084
+#define NLS_CS_MACSCRIPT0TURKISH 0x0085
+#define NLS_CS_THAI 0x0090 /* MS Thai Windows */
+#define NLS_CS_IBMCP1200 0x00A0 /* Unicode/ISO 10646 */
+#define NLS_CS_UNICODE 0x00A0
+#define NLS_CS_UNICODE 0x00A0
+#define NLS_CS_ISO10646 0x00A0 /* Also Unicode */
+#define NLS_CS_UTF7 0x00AA /* Unicode Transformation Formats */
+#define NLS_CS_UTF8 0x00AB
+#define NLS_CS_LMBCS10 0x0100 /* Version 1.0 is the only one */
+#define NLS_CS_LMBCS11 0x0101
+#define NLS_CS_LMBCS12 0x0102
+#define NLS_CS_LMBCS 0x0100
+#define NLS_CS_DECNRCUK 0x0A00 /* DEC National Replacement Char */
+#define NLS_CS_DECNRCDUTCH 0x0A01
+#define NLS_CS_DECNRCFINNISH 0x0A02
+#define NLS_CS_DECNRCFRENCH 0x0A03
+#define NLS_CS_DECNRCFRENCHCANADIAN 0x0A04
+#define NLS_CS_DECNRCGERMAN 0x0A05
+#define NLS_CS_DECNRCITALIAN 0x0A06
+#define NLS_CS_DECNRCNORWEGIANDANISH 0x0A07
+#define NLS_CS_DECNRCPORTUGUESE 0x0A08
+#define NLS_CS_DECNRCSPANISH 0x0A09
+#define NLS_CS_DECNRCSWEDISH 0x0A0A
+#define NLS_CS_DECNRCSWISS 0x0A0B
+#define NLS_CS_T61 0x0B00
+#define NLS_CS_T50 0x0B01
+#define NLS_CS_ASN1 0x0B10
+#define NLS_CS_IBMCP856 0x0C00
+#define NLS_CS_IBMCP1004 0x0C01
+#define NLS_CS_IBMCP1002 0x0CA0
+#define NLS_CS_IBMCP1003 0x0CA1
+#define NLS_CS_IBMCP1025 0x0CA2
+#define NLS_CS_IBMCP1026 0x0CA3
+#define NLS_CS_IBMCP1028 0x0CA4
+#define NLS_CS_IBMCP256 0x0CA5
+#define NLS_CS_IBMCP259 0x0CA6
+#define NLS_CS_IBMCP274 0x0CA7
+#define NLS_CS_IBMCP275 0x0CA8
+#define NLS_CS_IBMCP281 0x0CA9
+#define NLS_CS_IBMCP282 0x0CAA
+#define NLS_CS_IBMCP361 0x0CAB
+
+#define NLS_CS_IBMCP382 0x0CAD
+#define NLS_CS_IBMCP383 0x0CAE
+#define NLS_CS_IBMCP384 0x0CAF
+#define NLS_CS_IBMCP385 0x0CB0
+#define NLS_CS_IBMCP386 0x0CB1
+#define NLS_CS_IBMCP387 0x0CB2
+#define NLS_CS_IBMCP388 0x0CB3
+#define NLS_CS_IBMCP389 0x0CB4
+#define NLS_CS_IBMCP390 0x0CB5
+#define NLS_CS_IBMCP391 0x0CB6
+#define NLS_CS_IBMCP392 0x0CB7
+#define NLS_CS_IBMCP393 0x0CB8
+#define NLS_CS_IBMCP394 0x0CB9
+#define NLS_CS_IBMCP395 0x0CBA
+#define NLS_CS_IBMCP423 0x0CBB
+#define NLS_CS_IBMCP424 0x0CBC
+#define NLS_CS_IBMCP803 0x0CBD
+#define NLS_CS_IBMCP870 0x0CBE
+#define NLS_CS_IBMCP871 0x0CBF
+#define NLS_CS_IBMCP875 0x0CC0
+#define NLS_CS_IBMCP880 0x0CC1
+#define NLS_CS_IBMCP905 0x0CC2
+#define NLS_CS_IBMCP948 0x0CC4
+#define NLS_CS_IBMCP938 0x0CC5
+#define NLS_CS_IBMCP1381 NLS_CS_GB /* 0x0CC8 */
+#define NLS_CS_IBMCP1386 NLS_CS_GB
+#define NLS_CS_EACC 0x0CCB
+#define NLS_CS_ISO2022JP 0x0CCC /* do not use this. use JIS */
+#define NLS_CS_JIS 0x0CCD
+#define NLS_CS_CCCII 0x0CCE
+#define NLS_CS_XEROXCJK 0x0CCF
+#define NLS_CS_IBMCP944 0x0CD1
+#define NLS_CS_IBMCP934 0x0CD2
+#define NLS_CS_IBMCP737 0x0CE0
+#define NLS_CS_IBMCP775 0x0CE1
+#define NLS_CS_ISO6937 0x0CE2
+#define NLS_CS_BASE64 0x0CE3
+#define NLS_CS_JIS2 0x0CE4
+#define NLS_CS_EUCJ 0x0CE5
+#define NLS_CS_EUCT 0x0CE6
+#define NLS_CS_ISOKR 0x0CE7
+#define NLS_CS_EUCK NLS_CS_ISOKR
+#define NLS_CS_EUCC 0x0CE8
+
+#define NLS_CS_IA5JIS 0x0CE9 /* Dummy */
+
+#define NLS_CS_IBMCP921 0x0CEA /* Replacement for Lithuanian */
+#define NLS_CS_IBMCP922 0x0CEB /* More White Russian */
+
+#define NLS_CS_KOI8 0x0CEC /* Cyrillic Internet support */
+#define NLS_CS_IBMCP720 0x0CED
+
+#define NLS_CS_IBMCP1258 0x0CEE /* Windows Vietnamese */
+#define NLS_CS_ISO885910 0x0CEF /* Sami, etc. */
+
+#define NLS_CS_JP1TEXT 0x0CF0 /* OSI/JIS X 5003-1987 X.400 Japanese ISP */
+#define NLS_CS_VIQRI 0x0CF1 /* Vietnamese Quoted Readable*/
+#define NLS_CS_VISCII 0x0CF2 /* Vietnamese VISCII 1.1 */
+#define NLS_CS_VISCII1 0x0CF3 /* TCVN Viet 1 */
+#define NLS_CS_VISCII2 0x0CF4 /* TCVN Viet 2 */
+#define NLS_CS_IBMCP838 0x0CF5
+#define NLS_CS_IBMCP9030 NLS_CS_IBMCP838
+#define NLS_CS_IBMCP833 0x0CF7
+#define NLS_CS_IBMCP836 0x0CFA
+#define NLS_CS_IBMCP1027 0x0CFD
+#define NLS_CS_IBMCP420 0x0CFE
+#define NLS_CS_IBMCP918 0x0CFF
+#define NLS_CS_IBMCP1097 0x0D00
+#define NLS_CS_IBMCP1112 0x0D01
+#define NLS_CS_IBMCP1122 0x0D02
+#define NLS_CS_IBMCP1123 0x0D03
+#define NLS_CS_IBMCP1129 0x0D04
+#define NLS_CS_IBMCP1130 0x0D05
+#define NLS_CS_IBMCP1132 0x0D06
+#define NLS_CS_IBMCP1133 0x0D07
+
+#define NLS_CS_IBMCP806 0x0D08
+#define NLS_CS_IBMCP1137 0x0D09
+#define NLS_CS_VISCII3 0x0D0A /* Vietnamese TCVN3 */
+#define NLS_CS_TCVN3 NLS_CS_VISCII3
+
+#define NLS_CS_IBMCP858 0x0D10 /* Euro: 850 with D5 = Euro */
+#define NLS_CS_IBMCP1140 0x0D11 /* Euro version of CP37 */
+#define NLS_CS_IBMCP1141 0x0D12 /* Euro version of CP273 */
+#define NLS_CS_IBMCP1142 0x0D13 /* Euro version of CP277 */
+#define NLS_CS_IBMCP1143 0x0D14 /* Euro version of CP278 */
+#define NLS_CS_IBMCP1144 0x0D15 /* Euro version of CP280 */
+#define NLS_CS_IBMCP1145 0x0D16 /* Euro version of CP284 */
+#define NLS_CS_IBMCP1146 0x0D17 /* Euro version of CP285 */
+#define NLS_CS_IBMCP1147 0x0D18 /* Euro version of CP297 */
+#define NLS_CS_IBMCP1148 0x0D19 /* Euro version of CP500 */
+#define NLS_CS_IBMCP1149 0x0D1A /* Euro version of CP871 */
+#define NLS_CS_IBMCP924 0x0D1B /* EBCDIC Euro cp */
+#define NLS_CS_ISO88598i 0x0D1C /* logical bidi */
+#define NLS_CS_ISO88598e 0x0D1D /* explicit bidi */
+#define NLS_CS_ISCII 0x0D1E /* ISCII */
+#define NLS_CS_GB18030 0x0D31 /* GB18030 */
+
+/*****************************************************/
+/*** THIS RANGE RESERVED FOR EBCDIC DBCS CODEPAGES ***/
+#define NLS_CS_EBCDICDBCS_START 0x0E00
+
+/* Dual codepages - really these are CCSID's */
+#define NLS_CS_IBMCP930 0x0E00 /* Japan */
+#define NLS_CS_IBMCP933 0x0E01 /* Korea */
+#define NLS_CS_IBMCP935 0x0E02 /* PRC */
+#define NLS_CS_IBMCP937 0x0E03 /* Taiwan */
+#define NLS_CS_IBMCP939 0x0E04 /* Japan */
+#define NLS_CS_IBMCP931 0x0E05 /* PRC */
+#if defined(OS390)
+#define NLS_CS_IBMCP1388 0x0E06 /* PRC */
+#else
+#define NLS_CS_IBMCP1388 NLS_CS_IBMCP935
+#endif
+#define NLS_CS_IBMCP5026 NLS_CS_IBMCP930
+#define NLS_CS_IBMCP5035 NLS_CS_IBMCP939
+
+#define NLS_CS_MIXED_END 0x0E7F
+
+/* DBCS-only */
+#define NLS_CS_IBMCP300 0x0E80 /* Japan */
+#define NLS_CS_IBMCP834 0x0E81 /* Korea */
+#define NLS_CS_IBMCP835 0x0E82 /* Taiwan */
+#define NLS_CS_IBMCP837 0x0E83 /* PRC */
+#define NLS_CS_IBMCP930X 0x0E84 /* Japan */
+#define NLS_CS_IBMCP933X 0x0E85 /* Korea */
+#define NLS_CS_IBMCP935X 0x0E86 /* PRC */
+#define NLS_CS_IBMCP937X 0x0E87 /* Taiwan */
+#define NLS_CS_IBMCP939X 0x0E88 /* Japan */
+#define NLS_CS_IBMCP931X 0x0E89 /* PRC */
+#define NLS_CS_IBMCP1388X NLS_CS_IBMCP935X
+#define NLS_CS_IBMCP1364 0x0E8A /* Korea */
+#define NLS_CS_IBMCP1399 0x0E8B /* Japan */
+
+#define NLS_CS_EBCDICDBCS_END 0x0EFF
+/*****************************************************/
+
+#define NLS_CS_ANYCS 0xFFFE
+#define NLS_CS_NOCS 0xFFFF
+
+
+#endif /* #if !defined(NLS_NOCHARSETIDS) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* if !defined(NLS_H) */
+
+
+
+
+
+
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nsfdata.h b/plugins/LotusNotify/src/cnotesapi/include/nsfdata.h
new file mode 100644
index 0000000000..3ad01e67a2
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nsfdata.h
@@ -0,0 +1,841 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef NSF_DATA_DEFS
+#define NSF_DATA_DEFS
+
+#include "pool.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* Note Storage File Data Definitions */
+
+/* Define some synonyms for self-documentation of templates */
+
+#define DBHANDLE HANDLE
+#define NOTEHANDLE HANDLE
+#define ITEMDEFTABLEHANDLE HANDLE
+#define ITEMDEFTABLEEXTHANDLE HANDLE
+#define FORMULAHANDLE HANDLE
+typedef void far * HCOMPUTE;
+
+/* Reserved NoteIDs */
+
+#define NOTEID_RESERVED 0x80000000L /* Reserved Note ID, used for
+ categories in NIFReadEntries
+ and for deleted notes in a
+ lot of interfaces. */
+#define NOTEID_ADD 0x00000000L /* Reserved NoteID used as input
+ to NoteUpdate, to add a new
+ note (gets error if UNID assigned
+ to new note already exists). */
+#define NOTEID_ADD_OR_REPLACE 0x80000000L /* Reserved NoteID used as input
+ to NoteUpdate, to update if
+ note UNID already exists, or
+ add note if doesn't exist. */
+#define NOTEID_ADD_UNID 0x80000001L /* Reserved NoteID used as input
+ to NoteUpdate. Try to preserve
+ the specified note UNID, but if
+ it already exists, assign a new
+ one. (Note that the UNID in the
+ hNote IS updated.) */
+#define NOTEID_NULL_FOLDER 0x00000000L /* Used for null folder ids. */
+
+/* An RRV "file position" is defined to be a DWORD, 4 bytes long. */
+
+#define RRV_ALIGNMENT 4L /* most typical RRV alignment (DBTABLE.C) */
+#define RRV_DELETED NOTEID_RESERVED /* indicates a deleted note (DBTABLE.C) */
+
+#define NOTEID_NO_PARENT 0x00000000L /* Reserved Note ID, used to indicate
+ that this note has no parent in the
+ response hierarchy. */
+
+/* This is the structure that identifies a database. It is used for both
+ the creation date/time and the originator date/time. */
+
+typedef TIMEDATE DBID;
+
+/* This is the structure that identifies a note within a database. It is
+ simply a file position (RRV) that is guaranteed never to change WITHIN
+ this file. A replicated note, however, may have a different note id
+ in two separate files. */
+
+typedef DWORD NOTEID;
+
+/* This is the structure that identifies ALL replicas of the same note. The
+ "File" member contains a totally unique (random) number, generated at
+ the time the note is created. The "Note" member contains the date/time
+ when the very first copy of the note was stored into the first NSF. The
+ "Sequence" member is a sequence number used to keep track of the most
+ recent version of the note for replicated data purposes. The
+ "SequenceTime" member is a sequence number qualifier, that allows the
+ replicator to determine which note is later given identical Sequence's.
+ Both are required for the following reason. The sequence number is needed
+ to prevent someone from locking out future edits by setting the time/date
+ to the future. The sequence time qualifies the sequence number for two
+ reasons: 1) It prevents two concurrent updates from looking like
+ no update at all and 2) it forces all systems to reach the same decision
+ as to which update is the "latest" version.
+
+ Time/dates associated with notes:
+
+ OID.Note Can be Timedate when the note was created
+ (but not guaranteed to be - look for $CREATED
+ item first for note creation time)
+ Obtained by NSFNoteGetInfo(_NOTE_OID) or
+ OID in SEARCH_MATCH.
+ OID.SequenceTime Timedate of last revision
+ Obtained by NSFNoteGetInfo(_NOTE_OID) or
+ OID in SEARCH_MATCH.
+ NOTE.EditModified Timedate when added to (or last updated in)
+ this database.
+ (Obtained by NSFNoteGetInfo(_NOTE_MODIFIED) or
+ ID.Note in SEARCH_MATCH.
+
+
+*/
+
+#define MAXSEQNO 0x00FFFFFFL /* Maximum sequence number for a note */
+#define OID_SEQNO_MASK 0x00FFFFFFL /* Mask used to extract sequence # */
+#define OID_NO_REPLICATE 0x80000000L /* Never replicate outward, currently used ONLY for deleted stubs */
+
+typedef struct ORIGINATORID_tag {
+ DBID File; /* Unique (random) number */
+ /* (Even though this field is called "File", */
+ /* it doesn't have anything to do with the file!) */
+ TIMEDATE Note; /* Can be Original Note Creation time/date */
+ /* (see OID.Note comment above) */
+ /* (THE ABOVE 2 FIELDS MUST BE FIRST - UNID */
+ /* COPIED FROM HERE ASSUMED AT OFFSET 0) */
+ DWORD Sequence; /* LOW ORDER: sequence number, 1 for first version */
+ /* HIGH ORDER WORD: flags, as above */
+ TIMEDATE SequenceTime; /* time/date when sequence number was bumped */
+} ORIGINATORID; /* 28 bytes */
+
+#define OID ORIGINATORID
+
+
+/* Replication flags
+
+ NOTE: Please note the distinction between REPLFLG_DISABLE and
+ REPLFLG_NEVER_REPLICATE. The former is used to temporarily disable
+ replication. The latter is used to indicate that this database should
+ NEVER be replicated. The former may be set and cleared by the Notes
+ user interface. The latter is intended to be set programmatically
+ and SHOULD NEVER be able to be cleared by the user interface.
+
+ The latter was invented to avoid having to set the replica ID to
+ the known value of REPLICA_ID_NEVERREPLICATE. This latter method has
+ the failing that DBs that use it cannot have DocLinks to them. */
+
+/* 0x0001 spare was COPY_ACL */
+/* 0x0002 spare */
+#define REPLFLG_DISABLE 0x0004 /* Disable replication */
+#define REPLFLG_UNREADIFFNEW 0x0008 /* Mark unread only if newer note */
+#define REPLFLG_IGNORE_DELETES 0x0010 /* Don't propagate deleted notes when
+ replicating from this database */
+#define REPLFLG_HIDDEN_DESIGN 0x0020 /* UI does not allow perusal of Design */
+#define REPLFLG_DO_NOT_CATALOG 0x0040 /* Do not list in catalog */
+#define REPLFLG_CUTOFF_DELETE 0x0080 /* Auto-Delete documents prior to cutoff date */
+#define REPLFLG_NEVER_REPLICATE 0x0100 /* DB is not to be replicated at all */
+#define REPLFLG_ABSTRACT 0x0200 /* Abstract during replication */
+#define REPLFLG_DO_NOT_BROWSE 0x0400 /* Do not list in database add */
+#define REPLFLG_NO_CHRONOS 0x0800 /* Do not run chronos on database */
+#define REPLFLG_IGNORE_DEST_DELETES 0x1000 /* Don't replicate deleted notes
+ into destination database */
+#define REPLFLG_MULTIDB_INDEX 0x2000 /* Include in Multi Database indexing */
+#define REPLFLG_PRIORITY_LOW 0xC000 /* Low priority */
+#define REPLFLG_PRIORITY_MED 0x0000 /* Medium priority */
+#define REPLFLG_PRIORITY_HI 0x4000 /* High priority */
+#define REPLFLG_PRIORITY_SHIFT 14 /* Shift count for priority field */
+#define REPLFLG_PRIORITY_MASK 0x0003 /* Mask for priority field after shifting*/
+#define REPLFLG_PRIORITY_INVMASK 0x3fff /* Mask for clearing the field */
+#define REPLFLG_USED_MASK (0x4|0x8|0x10|0x40|0x80|0x100|0x200|0xC000|0x1000|0x2000|0x4000)
+
+
+/* Replication priority values are stored in the high bits of the
+ replication flags. The stored value is biased by -1 so that
+ an encoding of 0 represents medium priority (-1 is low and +1 is high).
+ The following macros make getting and setting the priority easy.
+ They return and accept normalized values of 0 - 2. */
+
+#define REPL_GET_PRIORITY(Flags) \
+ (((Flags >> REPLFLG_PRIORITY_SHIFT)+1) & REPLFLG_PRIORITY_MASK)
+#define REPL_SET_PRIORITY(Pri) \
+ (((Pri - 1) & REPLFLG_PRIORITY_MASK) << REPLFLG_PRIORITY_SHIFT)
+
+/* Reserved ReplicaID.Date. Used in ID.Date field in ReplicaID to escape
+ to reserved REPLICA_ID_xxx
+*/
+#define REPLICA_DATE_RESERVED 0 /* If used, see REPLICA_ID_xxx */
+
+/* Known Replica IDs. Used in ID.Time field in ReplicaID. Date
+ subfield must be REPLICA_DATE_RESERVED). NOTE: If you add to this list,
+ you should check the code in \catalog\search.c to see if the new one(s)
+ need to be added to that code (probably not - but worth checking).
+
+ The format is as follows. Least sig. byte is version number. 2nd
+ byte represents package code but is hard-coded to protect against
+ changes in the package code. Most sig. 2 bytes are reserved for future
+ use.
+*/
+#define REPLICA_ID_UNINITIALIZED 0x00000000 /* Uninitialized ID */
+#define REPLICA_ID_CATALOG 0x00003301 /* Database Catalog (Version 2) */
+#define REPLICA_ID_EVENT 0x00003302 /* Stats & Events Config DB */
+
+
+/* The following known replica ID is now obsolete. Although the replicator
+ still supports it, the problem is that DBs that use it cannot have
+ DocLinks to them. Instead use the replica flag REPLFLG_NEVER_REPLICATE. */
+#define REPLICA_ID_NEVERREPLICATE 0x00001601 /* Do not allow replicas */
+
+/* Number of times within cutoff interval that we purge deleted stubs.
+ For example, if the cutoff interval is 90 days, we purge every 30
+ days. */
+
+#define CUTOFF_CHANGES_DURING_INTERVAL 3
+
+/* This is the structure that identifies a replica database. */
+
+typedef struct {
+ TIMEDATE ID; /* ID that is same for all replica files */
+ WORD Flags; /* Replication flags */
+ WORD CutoffInterval; /* Automatic Replication Cutoff Interval (Days) */
+ TIMEDATE Cutoff; /* Replication cutoff date */
+} DBREPLICAINFO;
+
+
+typedef struct {
+ DWORD WarningThreshold; /* Database size warning threshold in kbyte units */
+ DWORD SizeLimit; /* Database size limit in kbyte units */
+ DWORD CurrentDbSize; /* Current size of database (in kbyte units) */
+ DWORD MaxDbSize; /* Max database file size possible (in kbyte units) */
+} DBQUOTAINFO;
+
+typedef struct {
+ DWORD WarningThreshold; /* Database size warning threshold in kbyte units */
+ DWORD SizeLimit; /* Database size limit in kbyte units */
+ DWORD CurrentDbSize; /* Current size of database (in kbyte units) */
+ DWORD MaxDbSize; /* Max database file size possible (in kbyte units) */
+ WORD QuotaMethod; /* Enforcement method - filesize or usage */
+ DWORD CurrentUsage; /* Current amount of space used in the database (in kbyte units) */
+ DWORD CurrentSizeUsed; /* Either CurrentDbSize, or CurrentUsage, depending on method in use */
+ DWORD Unused1; /* Reserved. Unused */
+ DWORD Unused2; /* Reserved. Unused */
+} DBQUOTAINFOEXT;
+
+
+/* This is the structure that globally identifies an INSTANCE of a note,
+ that is, if we are doing a SEARCH_ALL_VERSIONS, the one with the
+ latest modification date is the one that is the "most recent" instance. */
+
+typedef struct {
+ DBID File; /* database Creation time/date */
+ TIMEDATE Note; /* note Modification time/date */
+ NOTEID NoteID; /* note ID within database */
+} GLOBALINSTANCEID;
+
+/* This is the structure that universally (across all servers) describes
+ a note (ALL INSTANCES of the same note), but without the information
+ necessary to directly access the note in a given database. It is used
+ for referencing a specific note from another note (response notes and
+ hot buttons are examples of its use) by storing this structure in the
+ referencing note itself. It is intended to work properly on any server,
+ and even if the note being referenced is updated. Matching of notes
+ to other notes is done via the NIF machinery. */
+
+typedef struct UNIVERSALNOTEID_tag {
+ DBID File; /* Unique (random) number */
+ /* (Even though this field is called "File", */
+ /* it doesn't have anything to do with the file!) */
+ TIMEDATE Note; /* Can be Original Note Creation time/date */
+ /* (see OID.Note comment above) */
+} UNIVERSALNOTEID;
+
+#define UNID UNIVERSALNOTEID
+
+/* This is the structure that universally (across all servers) describes
+ a note LINK. */
+
+typedef struct {
+ TIMEDATE File; /* File's replica ID */
+ UNID View; /* View's Note Creation TIMEDATE */
+ UNID Note; /* Note's Creation TIMEDATE */
+} NOTELINK;
+
+
+/* Data Type Definitions. */
+
+
+/* Class definitions. Classes are defined to be the
+ "generic" classes of data type that the internal formula computation
+ mechanism recognizes when doing recalcs. */
+
+#define CLASS_NOCOMPUTE (0 << 8)
+#define CLASS_ERROR (1 << 8)
+#define CLASS_UNAVAILABLE (2 << 8)
+#define CLASS_NUMBER (3 << 8)
+#define CLASS_TIME (4 << 8)
+#define CLASS_TEXT (5 << 8)
+#define CLASS_FORMULA (6 << 8)
+#define CLASS_USERID (7 << 8)
+
+#define CLASS_MASK 0xff00
+
+/* All datatypes below are passed to NSF in either host (machine-specific
+ byte ordering and padding) or canonical form (Intel 86 packed form).
+ The format of each datatype, as it is passed to and from NSF functions,
+ is listed below in the comment field next to each of the data types.
+ (This host/canonical issue is NOT applicable to Intel86 machines,
+ because on that machine, they are the same and no conversion is required).
+ On all other machines, use the ODS subroutine package to perform
+ conversions of those datatypes in canonical format before they can
+ be interpreted. */
+
+/* "Computable" Data Types */
+
+#define TYPE_ERROR 0 + CLASS_ERROR /* Host form */
+#define TYPE_UNAVAILABLE 0 + CLASS_UNAVAILABLE /* Host form */
+#define TYPE_TEXT 0 + CLASS_TEXT /* Host form */
+#define TYPE_TEXT_LIST 1 + CLASS_TEXT /* Host form */
+#define TYPE_NUMBER 0 + CLASS_NUMBER /* Host form */
+#define TYPE_NUMBER_RANGE 1 + CLASS_NUMBER /* Host form */
+#define TYPE_TIME 0 + CLASS_TIME /* Host form */
+#define TYPE_TIME_RANGE 1 + CLASS_TIME /* Host form */
+#define TYPE_FORMULA 0 + CLASS_FORMULA /* Canonical form */
+#define TYPE_USERID 0 + CLASS_USERID /* Host form */
+
+/* "Non-Computable" Data Types */
+
+#define TYPE_INVALID_OR_UNKNOWN 0 + CLASS_NOCOMPUTE /* Host form */
+#define TYPE_COMPOSITE 1 + CLASS_NOCOMPUTE /* Canonical form, >64K handled by more than one item of same name concatenated */
+#define TYPE_COLLATION 2 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_OBJECT 3 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_NOTEREF_LIST 4 + CLASS_NOCOMPUTE /* Host form */
+#define TYPE_VIEW_FORMAT 5 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_ICON 6 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_NOTELINK_LIST 7 + CLASS_NOCOMPUTE /* Host form */
+#define TYPE_SIGNATURE 8 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_SEAL 9 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_SEALDATA 10 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_SEAL_LIST 11 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_HIGHLIGHTS 12 + CLASS_NOCOMPUTE /* Host form */
+#define TYPE_WORKSHEET_DATA 13 + CLASS_NOCOMPUTE /* Used ONLY by Chronicle product */
+ /* Canonical form */
+#define TYPE_USERDATA 14 + CLASS_NOCOMPUTE /* Arbitrary format data - see format below */
+ /* Canonical form */
+#define TYPE_QUERY 15 + CLASS_NOCOMPUTE /* Saved query CD records; Canonical form */
+#define TYPE_ACTION 16 + CLASS_NOCOMPUTE /* Saved action CD records; Canonical form */
+#define TYPE_ASSISTANT_INFO 17 + CLASS_NOCOMPUTE /* Saved assistant info */
+#define TYPE_VIEWMAP_DATASET 18 + CLASS_NOCOMPUTE /* Saved ViewMap dataset; Canonical form */
+#define TYPE_VIEWMAP_LAYOUT 19 + CLASS_NOCOMPUTE /* Saved ViewMap layout; Canonical form */
+#define TYPE_LSOBJECT 20 + CLASS_NOCOMPUTE /* Saved LS Object code for an agent. */
+#define TYPE_HTML 21 + CLASS_NOCOMPUTE /* LMBCS-encoded HTML, >64K handled by more than one item of same name concatenated */
+#define TYPE_SCHED_LIST 22 + CLASS_NOCOMPUTE /* Busy time schedule entries list; Host form */
+#define TYPE_CALENDAR_FORMAT 24 + CLASS_NOCOMPUTE /* Canonical form */
+#define TYPE_MIME_PART 25 + CLASS_NOCOMPUTE /* MIME body part; Canonical form */
+#define TYPE_RFC822_TEXT 2 + CLASS_TEXT /* RFC822( RFC2047) message header; Canonical form */
+
+/* This is the structure used for summary buffers */
+
+typedef struct {
+ USHORT Length; /* total length of this buffer */
+ USHORT Items; /* number of items in the table */
+ /* now come the ITEMs */
+ /* now comes the packed text */
+} ITEM_TABLE;
+
+typedef struct { /* used for item names and values */
+ USHORT NameLength; /* length of the item's name */
+ USHORT ValueLength; /* length of the value field */
+} ITEM;
+
+typedef struct {
+ USHORT Length; /* total length of this buffer */
+ USHORT Items; /* number of items in the table */
+ /* now comes an array of WORDS representing
+ the lengths of the item names. */
+ /* now comes the item names as packed text */
+} ITEM_NAME_TABLE;
+
+typedef struct {
+ USHORT Length; /* total length of this buffer */
+ USHORT Items; /* number of items in the table */
+ /* now comes an array of WORDS representing
+ the lengths of the item values. */
+ /* now comes the item values as packed bytes */
+} ITEM_VALUE_TABLE;
+
+/* Here is the format of the various LIST data types:
+
+ TYPE_TEXT_LIST:
+
+ LIST * list header *
+ USHORT ... * array of text string lengths following *
+ text * now comes the packed text for all strings *
+
+ TYPE_NUMBER_RANGE:
+
+ RANGE * range header *
+ NUMBER ... * array of NUMBERs *
+ NUMBER_PAIR ... * array of NUMBER_PAIRs *
+
+ TYPE_TIME_RANGE:
+
+ RANGE * range header *
+ TIMEDATE ... * array of time/date's *
+ TIMEDATE_PAIR ... * array of time/date pairs *
+
+ TYPE_NOTEREF_LIST:
+
+ LIST * list header *
+ UNIVERSALNOTEID * array of UNIVERSALNOTEIDs *
+
+
+ TYPE_NOTELINK_LIST:
+
+ LIST * list header *
+ NOTELINK * array of NOTELINKs *
+
+ TYPE_USERDATA:
+
+ BYTE Length * length of LMBCS "format-name" string *
+ char[Length]; * LMBCS "format-name" string used to distinguish *
+ * various formats of user data that follows. *
+ * ("format-name" string is NOT NULL-TERMINATED!) *
+ data * next is variable-length data that corresponds *
+ * to the format specified by the string *
+
+*/
+
+/* This is the data structure used for TYPE_OBJECT values */
+
+typedef struct {
+ WORD ObjectType; /* Type of object (OBJECT_xxx) */
+ DWORD RRV; /* Object ID of the object in THIS FILE */
+} OBJECT_DESCRIPTOR;
+
+/* These must be OR-ed into the ObjectType below in order to get the
+ desired behavior. Note that OBJECT_COLLECTION implicitly has
+ both of these bits implied, because that was the desired behavior
+ before these bits were invented. */
+
+#define OBJECT_NO_COPY 0x8000 /* do not copy object when updating to new note or database */
+#define OBJECT_PRESERVE 0x4000 /* keep object around even if hNote doesn't have it when NoteUpdating */
+#define OBJECT_PUBLIC 0x2000 /* Public access object being allocated. */
+
+/* Object Types, a sub-category of TYPE_OBJECT */
+
+#define OBJECT_FILE 0 /* File Attachment */
+#define OBJECT_FILTER_LEFTTODO 3 /* IDTable of "done" docs attached to filter */
+#define OBJECT_ASSIST_RUNDATA 8 /* Assistant run data object */
+#define OBJECT_UNKNOWN 0xffff /* Used as input to NSFDbGetObjectSize */
+
+/* File Attachment definitions */
+
+#define HOST_MASK 0x0f00 /* used for NSFNoteAttachFile Encoding arg */
+#define HOST_MSDOS (0 << 8)/* CRNL at EOL, optional ^Z at EOF */
+#define HOST_OLE (1 << 8)/* unknown internal representation, up to app */
+#define HOST_MAC (2 << 8)/* potentially has resource forks, etc. */
+#define HOST_UNKNOWN (3 << 8)/* came inbound thru a gateway */
+#define HOST_HPFS (4 << 8)/* HPFS. Contains EAs and long filenames */
+#define HOST_OLELIB (5 << 8)/* OLE 1 Library encapsulation */
+#define HOST_BYTEARRAY_EXT (6 << 8)/* OLE 2 ILockBytes byte array extent table */
+#define HOST_BYTEARRAY_PAGE (7 << 8)/* OLE 2 ILockBytes byte array page */
+#define HOST_CDSTORAGE (8 << 8)/* externally stored CD records */
+#define HOST_STREAM (9 << 8)/* Binary private stream */
+#define HOST_LINK (10 << 8)/* contains a RESOURCELINK to a named element */
+
+#define HOST_LOCAL 0x0f00 /* ONLY used as argument to NSFNoteAttachFile */
+ /* means "use MY os's HOST_ type */
+
+#define EFLAGS_MASK 0xf000 /* used for NSFNoteAttachFile encoding arg */
+#define EFLAGS_INDOC 0x1000 /* used to pass FILEFLAG_INDOC flag to NSFNoteAttachFile */
+#define EFLAGS_KEEPPATH 0x2000 /* don't strip off path in the filename */
+
+/* changed below from 0x00ff to 0x000f to make room for flags defined below */
+#define COMPRESS_MASK 0x000f /* used for NSFNoteAttachFile Encoding arg */
+#define COMPRESS_NONE 0 /* no compression */
+#define COMPRESS_HUFF 1 /* huffman encoding for compression */
+#define COMPRESS_LZ1 2 /* LZ1 compression */
+#define RECOMPRESS_HUFF 3 /* Huffman compression even if server supports LZ1 */
+
+#define NTATT_FTYPE_MASK 0x0070 /* File type mask */
+#define NTATT_FTYPE_FLAT 0x0000 /* Normal one fork file */
+#define NTATT_FTYPE_MACBIN 0x0010 /* MacBinaryII file */
+#define NTATT_FTYPE_EBCDIC 0x0020 /* EBCDIC flat file */
+#define NTATT_NODEALLOC 0x0080 /* Don't deallocate object when item is deleted */
+
+#define ATTRIB_READONLY 0x0001 /* file was read-only */
+#define ATTRIB_PRIVATE 0x0002 /* file was private or public */
+
+#define FILEFLAG_SIGN 0x0001 /* file object has object digest appended */
+#define FILEFLAG_INDOC 0x0002 /* file is represented by an editor run in the document */
+#define FILEFLAG_MIME 0x0004 /* file object has mime data appended */
+ /* and NSFDbGetObjectInfo, NSFDbCopyObject. */
+#define ENCODE_MASK 0x0038 /* file object has mime content transfer encoding */
+#define ENCODE_NONE (0 << 3)/* no encoding */
+#define ENCODE_BASE64 (1 << 3)/* base64 encoding */
+#define ENCODE_QP (2 << 3)/* quoted-printable encoding */
+#define ENCODE_UUENCODE (3 << 3)/* x-uuencode encoding */
+#define ENCODE_EXTENSION (4 << 3)/* unknown extension encoding */
+
+typedef struct {
+ OBJECT_DESCRIPTOR Header; /* object header */
+ WORD FileNameLength; /* length of file name */
+ WORD HostType; /* identifies type of text file delimeters (HOST_) */
+ WORD CompressionType; /* compression technique used (COMPRESS_) */
+ WORD FileAttributes; /* original file attributes (ATTRIB_) */
+ WORD Flags; /* miscellaneous flags (FILEFLAG_, ENCODE_) */
+ DWORD FileSize; /* original file size */
+ TIMEDATE FileCreated; /* original file date/time of creation, 0 if unknown */
+ TIMEDATE FileModified; /* original file date/time of modification */
+ /* Now comes the file name... It is the original */
+ /* RELATIVE file path with no device specifiers */
+} FILEOBJECT;
+
+typedef struct {
+ char FileCreator[4]; /* application that created the file */
+ char FileType[4]; /* type of file */
+ DWORD ResourcesStart; /* offset into the object at which resources begin */
+ DWORD ResourcesLen; /* length of the resources section in bytes */
+ WORD CompressionType; /* compression used for Mac resources */
+ DWORD Spare; /* 0 */
+} FILEOBJECT_MACEXT;
+
+typedef struct {
+ DWORD EAStart; /* offset into the object at which EAs begin */
+ DWORD EALen; /* length of EA section */
+ DWORD Spare; /* 0 */
+} FILEOBJECT_HPFSEXT;
+
+
+/* @SPECIAL Escape Codes */
+
+#define ESCBEGIN 0x7f
+#define ESCEND 0xff
+
+/* Index information structure passed into NSFTranslateSpecial to provide
+ index-related information for certain @INDEX functions, if specified. */
+
+
+typedef struct
+ {
+ DWORD IndexSiblings; /* # siblings of entry */
+ DWORD IndexChildren; /* # direct children of entry */
+ DWORD IndexDescendants; /* # descendants of entry */
+ WORD IndexAnyUnread; /* TRUE if entry "unread, or any descendants "unread" */
+ } INDEXSPECIALINFO;
+
+/* Calendar busy time schedule list structure */
+
+/* These are application ID's for the SCHED_LIST wApplicationID field.
+** This is used to interpret the application specific UserAttr field.
+** Notes ignores the UserAttr field, however application specific
+** information can be returned by application specific gateways.
+** If you need an ID, please register it with Lotus.
+*/
+#define SCHEDAPPLID_ORGANIZER2X 0x0001
+#define SCHEDAPPLID_ORGANIZER4X 0x0002
+#define SCHEDAPPLID_OV 0x0003
+
+
+/* Define the maximum number of schedule entries allowed per note item.
+** Calculated from maximum size of a note item (MAXONESEGSIZE) minus the size
+** of a sched list, divided by the size of a sched entry. Subtract 100 of
+** the number for some breathing room.
+**
+** The SCHED_LIST and SCHED_ENTRY are the preR6 data types. For R6 we used
+** the SCHED_LIST.Spare value to convey the length of the SCHED_ENTRY_EXT
+** data that follows. If .Spare is 0, the data that follows is SCHED_ENTRY,
+** NOT SCHED_ENTRY_EXT.
+** Now that we convey the length of each SCHED_ENTRY_EXT that follows (R6 and
+** later), we can easily extend SCHED_ENTRY_EXT w/o adversely affecting
+** previous clients since from R6 on the clients should be using
+** SCHED_LIST.Spare to do pointer shifts. For example, say in R7 we add
+** even more info to SCHED_ENTRY_EXT, we simply append it to the R6 definition
+** and adjust SCHED_LIST.Spare to reflect the new size. That way an R6 client
+** can get the info it needs/wants and can skip the 'newer' data that it
+** has no way of properly using/processing.
+**
+** Note: If the SCHED_LIST.Spare is 0 then a SCHED_ENTRY MUST follow.
+** If the SCHED_LIST.Spare is non-0 then a SCHED_ENTRY_EXT MUST follow.
+**
+** We are NOT allowing mixing of data types since it would only cause confusion
+** for older users! The system will return SCHED_LIST/SCHED_ENTRY data if it
+** detects that the caller is using the preR6 API calls (or is using the R6
+** API calls with a "preR6" flag to indicate old API call in use).
+*/
+
+#define MAXSCHEDLISTSIZE (MAXONESEGSIZE - 100 * sizeof(SCHED_ENTRY))
+#define MAXENTRIESPERSCHEDLIST ((MAXSCHEDLISTSIZE - sizeof (SCHED_LIST)) / sizeof(SCHED_ENTRY))
+
+typedef struct {
+ ALIGNED_NUMBER nLongitude; /* Longitude coordinate value */
+ ALIGNED_NUMBER nLatitude; /* Latitude coordinate value */
+} GEO_INFO;
+
+/* Scheduling list header */
+
+typedef struct {
+ DWORD NumEntries; /* Total number of schedule entries follow */
+ WORD wApplicationID; /* application id for UserAttr interpretation */
+ WORD Spare; /* PreR6: spare
+ ** R6: This now conveys the length of a single
+ ** SCHED_ENTRY_xxx that follows. Use this value
+ ** to skip entries that MAY be larger (ie: R7
+ ** extends SCHED_ENTRY_EXT by appending values
+ ** that R6 does not know about so SCHED_ENTRY_xxx
+ ** would actually be larger than the R6
+ ** SCHED_ENTRY_EXT
+ */
+ /* Now come the schedule entries...
+ ** IFF Spare==0 then SCHED_ENTRYs follow
+ ** Otherwise Spare==the length of the
+ ** SCHED_ENTRY_EXTs that follow
+ */
+} SCHED_LIST;
+
+/* Scheduling busy time entry */
+
+typedef struct {
+ UNID Unid; /* UNID of the entry */
+ TIMEDATE_PAIR Interval; /* Interval of the entry */
+ BYTE Attr; /* SCHED_ATTR_xxx attributes defined by Notes */
+ BYTE UserAttr; /* Application specific attributes */
+ BYTE spare[2];
+} SCHED_ENTRY;
+
+/* R6 scheduling busy time entry */
+
+typedef struct {
+ UNID Unid; /* UNID of the entry */
+ TIMEDATE_PAIR Interval; /* Interval of the entry */
+ BYTE Attr; /* SCHED_ATTR_xxx attributes defined by Notes */
+ BYTE UserAttr; /* Application specific attributes */
+ BYTE spare[2];
+
+ /* Everything above this point is the same as SCHED_ENTRY for preR6 clients!
+ ** Everything from here on down is R6 (or later) only!
+ */
+
+ UNID ApptUnid; /* ApptUNID of the entry */
+ DWORD dwEntrySize;/* Size of this entry (for future ease of expansion) */
+ GEO_INFO GEOInfo; /* Geographical coordinates of the entry */
+} SCHED_ENTRY_EXT;
+
+/* R6 Detailed busytime information is harvested and stored in a fairly
+** compact manner thanks to length encoding of everything. The format
+** is basically:
+**
+** SCHED_DETAIL_LIST (Detail list prefix header)
+** TEXT_LIST (of items that harvested and whose info follows)
+** SCHED_DETAIL_ENTRY (Actual harvested info per UNID)
+**
+** Since it may be desirable in the future to extend the detail format
+** the SCHED_DETAIL_xxx structures are length encoded. Any additional
+** SCHED_DETAIL_LIST (or 'overhead') extensions MUST be inserted between
+** the TEXT_LIST and the SCHED_DETAIL_ENTRY. Any additional
+** SCHED_DETAIL_ENTRY extensions MUST be inserted at the end of the
+** structure so that they can easily be trimmed off by older clients.
+**
+** Minor clarification for those nitpickers out there, the SCHED_DETAIL_ENTRY
+** is NOT just a single struct but is really composed of 2 parts, a
+** 'prefix' that contains all info common to that detail (ie: entry
+** UNID or flags) and then the actual data in an encoded form. That
+** form is described in greater detail below. A hierarchical view
+** of how the data is organzied (where indenting is used to
+** semi-convey 'containment') when 3 items are harvested for 2 UNIDs
+** would be:
+**
+** SCHED_DETAIL_LIST (Detail list header)
+** TEXT_LIST (of 3 item names that were harvested)
+** SCHED_DETAIL_ENTRY (Actual harvested info for UNID1)
+** SCHED_DETAIL_DATA (Actual item data)
+** SCHED_DETAIL_DATA (Actual item data)
+** SCHED_DETAIL_DATA (Actual item data)
+** SCHED_DETAIL_ENTRY (Actual harvested info for UNID2)
+** SCHED_DETAIL_DATA (Actual item data)
+** SCHED_DETAIL_DATA (Actual item data)
+** SCHED_DETAIL_DATA (Actual item data)
+**
+*/
+
+/* Flags used on SCHED_DETAIL_LIST */
+
+#define SCHED_DETAIL_LIST_ATTR_NODATA 0x01 /* List has no data */
+#define SCHED_DETAIL_LIST_ATTR_RESERVED2 0x02
+#define SCHED_DETAIL_LIST_ATTR_RESERVED3 0x04
+#define SCHED_DETAIL_LIST_ATTR_RESERVED4 0x08
+#define SCHED_DETAIL_LIST_ATTR_RESERVED5 0x10
+#define SCHED_DETAIL_LIST_ATTR_RESERVED6 0x20
+#define SCHED_DETAIL_LIST_ATTR_RESERVED7 0x40
+#define SCHED_DETAIL_LIST_ATTR_RESERVED8 0x80
+
+/* R6 Schedule detail list header */
+
+typedef struct {
+ WORD wHeaderLen; /* Length of THIS header, in case it
+ ** ever grows, so that new items can be
+ ** easily skipped
+ */
+ WORD wEntryLen; /* Length of THIS entire list and ALL of
+ ** its related data.
+ */
+ WORD wNumEntries; /* Number of entries that follow */
+ WORD wOffsetItems; /* Offset from list start to TEXT_LIST */
+ WORD wOffsetDetails; /* Offset from list start to SCHED_DETAIL_ENTRY */
+ BYTE Attr; /* SCHED_DETAIL_LIST_ATTR_xxx attributes */
+ BYTE bReserved; /* Reserved space/padding for ODS */
+
+ /* Now comes the TEXT_LIST that corresponds to the item names
+ ** and then comes the SCHED_DETAIL_ENTRY for each UNID
+ */
+} SCHED_DETAIL_LIST;
+
+/* Flags used on SCHED_DETAIL_ENTRY */
+
+#define SCHED_DETAIL_ENTRY_ATTR_PRIVATE 0x01 /* Entry is private */
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED2 0x02
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED3 0x04
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED4 0x08
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED5 0x10
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED6 0x20
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED7 0x40
+#define SCHED_DETAIL_ENTRY_ATTR_RESERVED8 0x80
+
+/* R6 Schedule detail list entry */
+
+typedef struct {
+ WORD wPrefixLen; /* Length of THIS prefix entry, in case it
+ ** ever grows, so that new items can be
+ ** easily skipped
+ */
+ WORD wEntryLen; /* Length of THIS entire entry and ALL of
+ ** its related data.
+ */
+ UNID Unid; /* UNID of the entry this is details of */
+ WORD wOffsetDetails; /* Offset from entry start to actual data */
+ BYTE Attr; /* SCHED_DETAIL_ENTRY_ATTR_xxx attributes (TBD) */
+ BYTE bReserved; /* Reserved space/padding for ODS */
+
+ /* Now comes the data that corresponds to the item values (1 per item name)
+ ** UNLESS dwEntryLen == wPrefixLen (which means NO details available
+ ** for this UNID)
+ */
+} SCHED_DETAIL_ENTRY;
+
+/* Flags used on SCHED_DETAIL_DATA */
+
+#define SCHED_DETAIL_DATA_ATTR_TRUNCATED 0x01 /* Used to indicate value is trunated */
+#define SCHED_DETAIL_DATA_ATTR_NOTFOUND 0x02 /* Item/value not found */
+#define SCHED_DETAIL_DATA_ATTR_RESERVED3 0x04
+#define SCHED_DETAIL_DATA_ATTR_RESERVED4 0x08
+#define SCHED_DETAIL_DATA_ATTR_RESERVED5 0x10
+#define SCHED_DETAIL_DATA_ATTR_RESERVED6 0x20
+#define SCHED_DETAIL_DATA_ATTR_RESERVED7 0x40
+#define SCHED_DETAIL_DATA_ATTR_RESERVED8 0x80
+
+/* R6 Schedule detail list actual data */
+
+typedef struct {
+ WORD wType; /* Notes data type for the data */
+ WORD wDataLen; /* Length of the data that immediately follows */
+ BYTE Attr; /* SCHED_DETAIL_DATA_ATTR_xxx attributes */
+ BYTE bReserved; /* Reserved space/padding for ODS */
+
+ /* Now comes the actual data that corresponds to the item values */
+} SCHED_DETAIL_DATA;
+
+/* Since we have new structs for R6, we have to have new MAXSCHEDxxx values */
+
+#define MAXSCHEDLISTEXTSIZE ( MAXONESEGSIZE - 100 * sizeof(SCHED_ENTRY_EXT) )
+#define MAXENTRIESPERSCHEDLISTEXT ( ( MAXSCHEDLISTEXTSIZE - sizeof(SCHED_LIST) ) / sizeof(SCHED_ENTRY_EXT) )
+
+/* The Attr field contains these bits. Note that if bit3 is set
+** then the entry will take up busy time.
+** The lower nibble of the attributes defines the the entry type.
+** NOTE: We are reserving the upper 4 bits of the Attr field for future use.
+
+*/
+#define SCHED_ATTR_FOREIGN_UNID 0x10 /* Used by gateways to return foreign UNIDs */
+#define SCHED_ATTR_REPEAT_EVENT 0x20 /* Used by V5 C&S to identify new repeating meetings */
+#define SCHED_ATTR_RESERVED4 0x40
+#define SCHED_ATTR_RESERVED8 0x80
+
+/* these are the entry type bits */
+#define SCHED_ATTR_TYPE_BITS 0x0F
+#define SCHED_ATTR_FREE_BASE 0x00
+#define SCHED_ATTR_BUSY_BASE 0x08
+
+/* Entry types that don't block off busy time */
+#define SCHED_ATTR_NULL (SCHED_ATTR_FREE_BASE + 0x00)
+#define SCHED_ATTR_PENCILED (SCHED_ATTR_FREE_BASE + 0x01)
+#define SCHED_ATTR_FREE_RESERVED2 (SCHED_ATTR_FREE_BASE + 0x02)
+#define SCHED_ATTR_FREE_RESERVED3 (SCHED_ATTR_FREE_BASE + 0x03)
+#define SCHED_ATTR_FREE_RESERVED4 (SCHED_ATTR_FREE_BASE + 0x04)
+#define SCHED_ATTR_FREE_RESERVED5 (SCHED_ATTR_FREE_BASE + 0x05)
+#define SCHED_ATTR_FREE_RESERVED6 (SCHED_ATTR_FREE_BASE + 0x06)
+#define SCHED_ATTR_FREE_RESERVED7 (SCHED_ATTR_FREE_BASE + 0x07)
+
+/* Entry types that block off busy time */
+#define SCHED_ATTR_APPT (SCHED_ATTR_BUSY_BASE + 0x00)
+#define SCHED_ATTR_NONWORK (SCHED_ATTR_BUSY_BASE + 0x01)
+#define SCHED_ATTR_BUSY_RESERVED2 (SCHED_ATTR_BUSY_BASE + 0x02)
+#define SCHED_ATTR_BUSY_RESERVED3 (SCHED_ATTR_BUSY_BASE + 0x03)
+#define SCHED_ATTR_BUSY_RESERVED4 (SCHED_ATTR_BUSY_BASE + 0x04)
+#define SCHED_ATTR_BUSY_RESERVED5 (SCHED_ATTR_BUSY_BASE + 0x05)
+#define SCHED_ATTR_BUSY_RESERVED6 (SCHED_ATTR_BUSY_BASE + 0x06)
+#define SCHED_ATTR_BUSY_RESERVED7 (SCHED_ATTR_BUSY_BASE + 0x07)
+
+
+#define SCHED_ATTR_TYPE(attr) ((attr) & SCHED_ATTR_TYPE_BITS)
+#define SCHED_ATTR_AVAILABLE(attr) (!((attr) & SCHED_ATTR_BUSY_BASE))
+
+
+/* Function templates */
+
+
+STATUS LNPUBLIC NSFTranslateSpecial(void far *InputString,
+ WORD InputStringLength,
+ void far *OutputString,
+ WORD OutputStringBufferLength,
+ NOTEID NoteID,
+ void far *IndexPosition,
+ INDEXSPECIALINFO far *IndexInfo,
+ HANDLE hUnreadList,
+ HANDLE hCollapsedList,
+ char far *FileTitle,
+ char far *ViewTitle,
+ WORD far *retLength);
+
+/* End of Note Storage File Data Definitions */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nsfdb.h b/plugins/LotusNotify/src/cnotesapi/include/nsfdb.h
new file mode 100644
index 0000000000..678bb6d7b1
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nsfdb.h
@@ -0,0 +1,924 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5RWNHM, L-GHUS-5RWNFH */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef NSF_DB_DEFS
+#define NSF_DB_DEFS
+
+#ifndef NSF_DEFS
+#include "nsfdata.h"
+#endif
+
+#ifndef EVENT_DEFS
+#include "event.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Note Storage File Database Definitions */
+
+/* NSF File Information Buffer size. This buffer is defined to contain
+ Text (host format) that is NULL-TERMINATED. This is the ONLY null-terminated
+ field in all of NSF. */
+
+#define NSF_INFO_SIZE 128
+#define NSF_INFO_WILD_CARD_SERVER_CHAR '*'
+
+/* Define NSFDbOpenExtended option bits. These bits select individual
+ open options. */
+
+#define DBOPEN_WITH_SCAN_LOCK 0x0001 /* Open with scan lock to prevent
+ other opens with scan lock
+ (used by replicator) */
+#define DBOPEN_PURGE 0x0002 /* DbPurge while opening */
+#define DBOPEN_NO_USERINFO 0x0004 /* No user info may be available, so don't ask for it */
+#define DBOPEN_FORCE_FIXUP 0x0008 /* Force a database fixup */
+#define DBOPEN_FIXUP_FULL_NOTE_SCAN 0x0010 /* Scan all notes and all items (not incremental) */
+#define DBOPEN_FIXUP_NO_NOTE_DELETE 0x0020 /* Do not delete bad notes during note scan */
+#define DBOPEN_CLUSTER_FAILOVER 0x0080 /* If open fails try cluster failover */
+#define DBOPEN_CLOSE_SESS_ON_ERROR 0x0100 /* Close session on error paths */
+#define DBOPEN_NOLOG 0x0200 /* don't log errors - used when opening log database! */
+/* Define NSFDB2GetInfo infotypes */
+#define DB2NSF_INFO_IS_DB2_BACKED 1 /* Is database DB2-backed: 1/0 */
+#define DB2NSF_INFO_SCHEMA_NAME 2 /* Group schema containing NSFDB2 data */
+#define DB2NSF_INFO_TABLESPACE_NAME 3 /* Tablespace name */
+#define DB2NSF_INFO_TSID 4 /* Tablespace ID */
+#define DB2NSF_INFO_USERSCHEMA_NAME 5 /* Schema containing DAVs */
+#define DB2NSF_INFO_CLASS_DESC 6 /* NSFDB2 grouping class description */
+
+/* Define NSFDB2GetServerInfo infotypes */
+#define DB2NSF_SERVINFO_SERVER_DEFAULT_TYPE 1 /* Server default type: 'DB2' or 'NSF' */
+#define DB2NSF_SERVINFO_NSFDB2_CAPABLE 2 /* Can Domino serve NSFDB2 data? */
+#define DB2NSF_SERVINFO_DB2_DATABASE_NAME 3
+
+#define DBCOMPACT_NO_INDEXES 0x00000001 /* Don't preserve view indexes */
+#define DBCOMPACT_NO_LOCKOUT 0x00000002 /* Don't lock out database users */
+#define DBCOMPACT_REVERT_ODS 0x00000004 /* Revert current ODS to the previous ODS version */
+#define DBCOMPACT_MAX_4GB 0x00000020 /* Create new file with 4GB file size limit */
+#define DBCOMPACT_MAILBOX 0x00000080 /* Compact XXXX.BOX for mail router and other MTAs */
+#define DBCOMPACT_NO_INPLACE 0x00000100 /* Don't do in-place compaction */
+#define DBCOMPACT_DISABLE_UNREAD 0x00002000 /* Disable unread marks in destination database */
+#define DBCOMPACT_ENABLE_UNREAD 0x00004000 /* Reenable unread marks in destination database (default) */
+#define DBCOMPACT_DISABLE_RESPONSE_INFO 0x00008000 /* Disable response info in resulting database */
+#define DBCOMPACT_ENABLE_RESPONSE_INFO 0x00010000 /* Disable response info in resulting database (default) */
+#define DBCOMPACT_ENABLE_FORM_BKT_OPT 0x00020000 /* Enable form/bucket bitmap optimization */
+#define DBCOMPACT_DISABLE_FORM_BKT_OPT 0x00040000 /* Diable form/bucket bitmap optimization (default) */
+#define DBCOMPACT_IGNORE_ERRORS 0x00080000 /* Ignore errors encountered during compaction. That is,
+ make best effort to get something at the end */
+#define DBCOMPACT_RECOVER_SPACE_ONLY 0x00400000 /* If set, do only bitmap correction if in-place can be done */
+#define DBCOMPACT_ARCHIVE 0x00800000 /* Archive/delete, then compact the database */
+#define DBCOMPACT_ARCHIVE_ONLY 0x01000000 /* Just archive/delete, no need to compact */
+#define DBCOMPACT_RECOVER_ALL_SPACE 0x04000000 /* If set, always do full space recovery compaction */
+
+/* Define NSF DB Classes - These all begin with 0xf000 for no good
+ reason other than to ENSURE that callers of NSFDbCreate call the
+ routine with valid parameters, since in earlier versions of NSF
+ the argument to the call was typically 0. */
+
+#define DBCLASS_BY_EXTENSION 0 /* automatically figure it out */
+
+#define DBCLASS_NSFTESTFILE 0xff00
+#define DBCLASS_NOTEFILE 0xff01
+#define DBCLASS_DESKTOP 0xff02
+#define DBCLASS_NOTECLIPBOARD 0xff03
+#define DBCLASS_TEMPLATEFILE 0xff04
+#define DBCLASS_GIANTNOTEFILE 0xff05
+#define DBCLASS_HUGENOTEFILE 0xff06
+#define DBCLASS_ONEDOCFILE 0xff07 /* Not a mail message */
+#define DBCLASS_V2NOTEFILE 0xff08
+#define DBCLASS_ENCAPSMAILFILE 0xff09 /* Specifically used by alt mail */
+#define DBCLASS_LRGENCAPSMAILFILE 0xff0a /* Specifically used by alt mail */
+#define DBCLASS_V3NOTEFILE 0xff0b
+#define DBCLASS_OBJSTORE 0xff0c /* Object store */
+#define DBCLASS_V3ONEDOCFILE 0xff0d
+#define DBCLASS_V4NOTEFILE 0xff0e
+#define DBCLASS_V5NOTEFILE 0xff0f
+#define DBCLASS_V6NOTEFILE 0xff10
+
+#define DBCLASS_MASK 0x00ff
+#define DBCLASS_VALID_MASK 0xff00
+
+/* Define NSF Special Note ID Indices. The first 16 of these are reserved
+ for "default notes" in each of the 16 note classes. In order to access
+ these, use SPECIAL_ID_NOTE+NOTE_CLASS_XXX. This is generally used
+ when calling NSFDbGetSpecialNoteID. NOTE: NSFNoteOpen, NSFDbReadObject
+ and NSFDbWriteObject support reading special notes or objects directly
+ (without calling NSFDbGetSpecialNoteID). They use a DIFFERENT flag
+ with a similar name: NOTE_ID_SPECIAL (see nsfnote.h). Remember this
+ rule:
+
+ SPECIAL_ID_NOTE is a 16 bit mask and is used as a NoteClass argument.
+ NOTE_ID_SPECIAL is a 32 bit mask and is used as a NoteID or RRV argument.
+*/
+
+#define SPECIAL_ID_NOTE 0x8000 /* use in combination w/NOTE_CLASS
+ when calling NSFDbGetSpecialNoteID */
+/* Get/Set DbOption routines */
+STATUS LNPUBLIC NSFDbGetOptions (DBHANDLE hDB, DWORD far *retDbOptions);
+STATUS LNPUBLIC NSFDbSetOptions (DBHANDLE hDB, DWORD DbOptions, DWORD Mask);
+#define DBOPTION_FT_INDEX 0x00000001 /* Enable full text indexing */
+#define DBOPTION_IS_OBJSTORE 0x00000002 /* TRUE if database is being used
+ as an object store - for garbage collection */
+#define DBOPTION_USES_OBJSTORE 0x00000004 /* TRUE if database has notes which refer to an
+ object store - for garbage collection*/
+#define DBOPTION_OBJSTORE_NEVER 0x00000008 /* TRUE if NoteUpdate of notes in this db should
+ never use an object store. */
+#define DBOPTION_IS_LIBRARY 0x00000010 /* TRUE if database is a library */
+#define DBOPTION_UNIFORM_ACCESS 0x00000020 /* TRUE if uniform access control
+ across all replicas */
+#define DBOPTION_OBJSTORE_ALWAYS 0x00000040 /* TRUE if NoteUpdate of notes in this db should
+ always try to use an object store. */
+#define DBOPTION_NO_BGAGENT 0x00000200 /* TRUE if db has no background agent */
+#define DBOPTION_OUT_OF_SERVICE 0x00000400 /* TRUE is db is out-of-service, no new opens allowed. */
+#define DBOPTION_IS_PERSONALJOURNAL 0x00000800 /* TRUE if db is personal journal */
+#define DBOPTION_MARKED_FOR_DELETE 0x00001000 /* TRUE if db is marked for delete. no new opens allowed,
+ cldbdir will delete the database when ref count = 0 */
+#define DBOPTION_HAS_CALENDAR 0x00002000 /* TRUE if db stores calendar events */
+#define DBOPTION_IS_CATALOG_INDEX 0x00004000 /* TRUE if db is a catalog index */
+#define DBOPTION_IS_ADDRESS_BOOK 0x00008000 /* TRUE if db is an address book */
+#define DBOPTION_IS_SEARCH_SCOPE 0x00010000 /* TRUE if db is a "multi-db-search" repository */
+#define DBOPTION_IS_UA_CONFIDENTIAL 0x00020000 /* TRUE if db's user activity log is confidential, only
+ * viewable by designer and manager */
+#define DBOPTION_RARELY_USED_NAMES 0x00040000 /* TRUE if item names are to be treated as
+ * if the ITEM_RARELY_USED_NAME flag is set. */
+#define DBOPTION_IS_SITEDB 0x00080000 /* TRUE if db is a "multi-db-site" repository */
+/* This is the structure used for the Item Definition Table */
+
+typedef struct {
+ WORD Length; /* total length of this buffer */
+ WORD Items; /* number of items in the table */
+ /* now come the ITEM_DEFINITION structures */
+ /* now comes the packed text */
+} ITEM_DEFINITION_TABLE;
+
+typedef struct {
+ WORD Spare; /* Spare */
+ WORD ItemType; /* default data type of the item */
+ WORD NameLength; /* length of the item's name */
+} ITEM_DEFINITION;
+
+/* Database Activity Structure */
+
+typedef struct {
+ TIMEDATE First; /* Beginning of reporting period */
+ TIMEDATE Last; /* End of reporting period */
+ DWORD Uses; /* # of uses in reporting period */
+ DWORD Reads; /* # of reads in reporting period */
+ DWORD Writes; /* # of writes in reporting period */
+ DWORD PrevDayUses; /* # of uses in previous 24 hours */
+ DWORD PrevDayReads; /* # of reads in previous 24 hours */
+ DWORD PrevDayWrites; /* # of writes in previous 24 hours */
+ DWORD PrevWeekUses; /* # of uses in previous week */
+ DWORD PrevWeekReads; /* # of reads in previous week */
+ DWORD PrevWeekWrites; /* # of writes in previous week */
+ DWORD PrevMonthUses; /* # of uses in previous month */
+ DWORD PrevMonthReads; /* # of reads in previous month */
+ DWORD PrevMonthWrites; /* # of writes in previous month */
+} DBACTIVITY;
+
+typedef struct {
+ TIMEDATE Time; /* Time of record */
+ WORD Reads; /* # of data notes read */
+ WORD Writes; /* # of data notes written */
+ DWORD UserNameOffset; /* Offset of the user name from the beginning
+ of this memory block */
+ /* User names follow -- '\0' terminated */
+} DBACTIVITY_ENTRY;
+
+#define NSFDbGetActivityUserNamePtr(DbActivity, Index) \
+ (((char FAR *) DbActivity) + DbActivity[Index].UserNameOffset)
+
+/* Define NSF DB open modes */
+
+#define DB_LOADED 1 /* hDB refers to a normal database file */
+#define DB_DIRECTORY 2 /* hDB refers to a "directory" and not a file */
+
+/* Define argument to NSFDbInfoParse/Modify to manipulate components from DbInfo */
+
+#define INFOPARSE_TITLE 0
+#define INFOPARSE_CATEGORIES 1
+#define INFOPARSE_CLASS 2
+#define INFOPARSE_DESIGN_CLASS 3
+
+
+/* Array entry returned from NSFDbGetReplHistorySummary */
+
+typedef struct {
+ TIMEDATE ReplicationTime; /* Time returned from last replciation */
+ WORD AccessLevel; /* Access level at time of replication */
+ WORD AccessFlags; /* Access flags at time of replication */
+ WORD Direction; /* NEVER, SEND, RECEIVE */
+ DWORD ServerNameOffset; /* Server name offset in packed data */
+ WORD ServerNameLength; /* Server name length in packed data */
+ WORD FileNameLength; /* File name length in packed data */
+ /* Total server!!file length is */
+ /* ServerNameLength + FileNameLength + 2 */
+ /* to compensate for the !! separator */
+ WORD MoreInfo; /* contains MoreInfo from cache - includes complete replication flag */
+ WORD wSpare; /* Room for growth */
+ DWORD dwSpare; /* Room for growth */
+ /* Server/file name pairs follow as */
+ /* "<server name>!!<file name>" with */
+ /* NULL after each pairing */
+} REPLHIST_SUMMARY;
+
+/* Types for REPLHISTORY.Direction */
+
+#define DIRECTION_NEVER 0
+#define DIRECTION_SEND 1
+#define DIRECTION_RECEIVE 2
+
+/* Macros for accessing packed data following the REPLHISTORY_SUMMARY array.
+
+ NOTE: The server name pointer is NOT null-terminated, but the file name
+ pointer is. This is so the caller can use the "server file" string
+ directly.
+*/
+
+#define NSFGetSummaryServerNamePtr(Summary, Index) \
+ (((char FAR *) Summary) + Summary[Index].ServerNameOffset)
+#define NSFGetSummaryFileNamePtr(Summary, Index) \
+ (((char FAR *) Summary) + Summary[Index].ServerNameOffset + \
+ Summary[Index].ServerNameLength + 2)
+
+/* Option flags for NSFDbGetReplHistorySummary */
+
+#define REPLHIST_REMOVE_WILDCARDS 0x00000001L /* Don't copy wild card entries */
+#define REPLHIST_SORT_BY_DATE 0x00000002L /* Sort by date. Default is
+ by server name */
+#define REPLHIST_ONLY_COMPLETE 0x00000004L /* Only return complete entries */
+
+/* Structure returned from NSFDbGetMajMinVersion
+
+ NOTE: For release 5.0.4a, the values would be:
+
+ MajorVersion = 5
+ MinorVersion = 0
+ QMRNumber = 4
+ QMUNumber = 1
+
+*/
+typedef struct {
+ DWORD MajorVersion; /* Major version identifier */
+ DWORD MinorVersion; /* Minor version identifier */
+ DWORD QMRNumber; /* Maintenance Release identifier */
+ DWORD QMUNumber; /* Maintenance Update identifier */
+ DWORD HotfixNumber; /* Hotfixes installed on machine */
+ DWORD Flags; /* See BUILDVERFLAGS_xxx */
+ DWORD FixpackNumber; /* Fixpack version installed on machine */
+ DWORD Spare[2]; /* Room for growth */
+ } BUILDVERSION;
+
+/* Flags returned in the 'Flags' section of the BUILDVERSION structure */
+#define BLDVERFLAGS_NONPRODUCTION 0x00000001L /* Non-production style build (internal only). */
+
+
+/* Option flags for NSFDbCreateExtended */
+
+#define DBCREATE_LOCALSECURITY 0x0001
+#define DBCREATE_OBJSTORE_NEVER 0x0002
+#define DBCREATE_MAX_SPECIFIED 0x0004
+#define DBCREATE_NORESPONSE_INFO 0x0010 /* Don't support note hierarchy - ODS21 and up only */
+#define DBCREATE_NOUNREAD 0x0020 /* Don't maintain unread lists for this DB */
+#define DBCREATE_NO_FREE_OVERWRITE 0x0200 /* Skip overwriting freed disk buffer space */
+#define DBCREATE_FORM_BUCKET_OPT 0x0400 /* Maintain form/bucket bitmap */
+#define DBCREATE_DISABLE_TXN_LOGGING 0x0800 /* Disable transaction logging for this database if specified */
+#define DBCREATE_MAINTAIN_LAST_ACCESSED 0x1000 /* Enable maintaining last accessed time */
+#define DBCREATE_IS_MAILBOX 0x4000 /* TRUE if database is a mail[n].box database */
+#define DBCREATE_LARGE_UNKTABLE 0x8000 /* TRUE if database should allow "large" (>64K bytes) UNK table */
+
+
+/* Values for EncryptStrength of NSFDbCreateExtended */
+
+#define DBCREATE_ENCRYPT_NONE 0x00
+#define DBCREATE_ENCRYPT_SIMPLE 0x01
+#define DBCREATE_ENCRYPT_MEDIUM 0x02
+#define DBCREATE_ENCRYPT_STRONG 0x03
+/* NSFDbCreateExtendedWithOptions Option2 flags */
+
+/* NOTE: When you define a new Option2 flag, OR that flag into the
+ DBCREATE_UNDEFINED_OPTIONS2 definition below */
+
+#define DBCREATE_USE_SERVER_DEFAULT_DATASTORE 0x00000000
+#define DBCREATE_FORCE_NSF_DATASTORE 0x00000001
+#define DBCREATE_FORCE_DB2_DATASTORE 0x00000002
+
+#define DBCREATE_UNDEFINED_OPTIONS2 ~(DBCREATE_USE_SERVER_DEFAULT_DATASTORE | \
+ DBCREATE_FORCE_NSF_DATASTORE | \
+ DBCREATE_FORCE_DB2_DATASTORE | \
+ DBCREATE_OVERRIDE_ADMINP)
+
+
+STATUS LNPUBLIC NSFDbGetReplHistorySummary (DBHANDLE hDb, DWORD Flags,
+ HANDLE *rethSummary, DWORD * retNumEntries);
+
+STATUS LNPUBLIC NSFDbGetMajMinVersion (DBHANDLE hDb, BUILDVERSION far *retVersion);
+
+#if !defined(DB2GetInfo)
+STATUS LNPUBLIC NSFDB2GetInfo( DBHANDLE hDB, DWORD infotype, void far *buffer, DWORD *size );
+#endif
+
+/* \client\cldbinfo.c */
+#if !defined(DB2GetServerInfo)
+STATUS LNPUBLIC NSFDB2GetServerInfo( char *szServerName, DWORD infotype, void far *buffer, DWORD *size );
+#endif
+
+STATUS LNPUBLIC NSFDbIsDB2 (DBHANDLE hDB, BOOL *isDB2);
+
+/* Option flags for NSFDbCreateAndCopy */
+
+#define DBCOPY_REPLICA 0x00000001L
+#define DBCOPY_SUBCLASS_TEMPLATE 0x00000002L
+#define DBCOPY_DBINFO2 0x00000004L
+#define DBCOPY_SPECIAL_OBJECTS 0x00000008L
+#define DBCOPY_NO_ACL 0x00000010L
+#define DBCOPY_NO_FULLTEXT 0x00000020L
+#define DBCOPY_ENCRYPT_SIMPLE 0x00000040L
+#define DBCOPY_ENCRYPT_MEDIUM 0x00000080L
+#define DBCOPY_ENCRYPT_STRONG 0x00000100L
+#define DBCOPY_KEEP_NOTE_MODTIME 0x00000200L
+#define DBCOPY_REPLICA_NAMELIST 0x01000000L /* Copy the NameList (applicable only when DBCOPY_REPLICA is specified) */
+#define DBCOPY_DEST_IS_NSF 0x02000000L /* Destination is NSF-backed database */
+#define DBCOPY_DEST_IS_DB2 0x04000000L /* Destination is DB2-backed database */
+#define DBCOPY_OVERRIDE_DEST 0x08000000L /* Destination should override default if able to */
+
+
+STATUS LNPUBLIC NSFDbCopyExtended (DBHANDLE hSrcDB, DBHANDLE hDstDB,
+ TIMEDATE Since, WORD NoteClassMask, DWORD Flags,
+ TIMEDATE far *retUntil);
+STATUS LNPUBLIC NSFDbOpen (const char far *PathName, DBHANDLE far *rethDB);
+STATUS LNPUBLIC NSFDbOpenTemplate (const char far *PathName, DBHANDLE far *rethDB);
+STATUS LNPUBLIC NSFDbOpenExtended (const char far *PathName, WORD Options,
+ HANDLE hNames,
+ TIMEDATE far *ModifiedTime,
+ DBHANDLE far *rethDB,
+ TIMEDATE far *retDataModified,
+ TIMEDATE far *retNonDataModified);
+STATUS LNPUBLIC NSFDbOpenTemplateExtended (const char far *PathName, WORD Options,
+ HANDLE hNames,
+ TIMEDATE far *ModifiedTime,
+ DBHANDLE far *rethDB,
+ TIMEDATE far *retDataModified,
+ TIMEDATE far *retNonDataModified);
+STATUS LNPUBLIC NSFDbClose (DBHANDLE hDB);
+STATUS LNPUBLIC NSFDbCreate (const char far *PathName, USHORT DbClass, BOOL ForceCreation);
+STATUS LNPUBLIC NSFDbCreateObjectStore (const char far *PathName, BOOL ForceCreation);
+STATUS LNPUBLIC NSFDbDelete (const char far *PathName);
+STATUS LNPUBLIC NSFDbCreateExtended (const char far *PathName, WORD DbClass,
+ BOOL ForceCreation, WORD Options,
+ BYTE EncryptStrength, DWORD MaxFileSize);
+STATUS LNPUBLIC NSFDbCreateExtendedWithOptions(const char far *filename, WORD dbclass, BOOL force,
+ WORD Option, DWORD Option2, BYTE EncryptStrength, DWORD MaxFileSize,
+ const char far *String1, const char far *String2,
+ WORD ReservedListLength, WORD ReservedListCount, HANDLE hReservedList);
+STATUS LNPUBLIC NSFDbCreateWithUserNameList(const char far *PathName, WORD DbClass,
+ BOOL ForceCreation, WORD Options,
+ BYTE EncryptStrength, DWORD MaxFileSize, HANDLE hNamesList);
+STATUS LNPUBLIC NSFDbDeleteExtended (const char far *PathName, HANDLE hNameList);
+
+STATUS LNPUBLIC NSFDbCopy (DBHANDLE hSrcDB, DBHANDLE hDstDB, TIMEDATE Since, WORD NoteClassMask);
+STATUS LNPUBLIC NSFDbCopyNote (DBHANDLE hSrcDB, DBID far *SrcDbID, DBID far *SrcReplicaID,
+ NOTEID SrcNoteID,
+ DBHANDLE hDstDB, DBID far *DstDbID, DBID far *DstReplicaID,
+ NOTEID far *retDstNoteID, WORD far *retNoteClass);
+
+STATUS LNPUBLIC NSFDbCreateAndCopyExtended(const char far* srcDb,const char far* dstDb, WORD NoteClass, WORD limit,
+ DWORD flags, HANDLE hNames, DBHANDLE far* retHandle);
+STATUS LNPUBLIC NSFDbCreateAndCopy(const char far* srcDb,const char far* dstDb, WORD NoteClass, WORD limit, DWORD flags, DBHANDLE far* retHandle);
+STATUS LNPUBLIC NSFDbMarkInServiceExtended(const char far* dbPathPtr, HANDLE hNames);
+STATUS LNPUBLIC NSFDbMarkForDelete(const char far* dbPathPtr);
+STATUS LNPUBLIC NSFDbMarkInService(const char far* dbPathPtr);
+STATUS LNPUBLIC NSFDbMarkOutOfService(const char far* dbPathPtr);
+
+STATUS LNPUBLIC NSFDbCopyNoteExt(DBHANDLE hSrcDB,DBID *SrcDbID,DBID *SrcReplicaID,NOTEID SrcNoteID,
+ DBHANDLE hDstDB,DBID *DstDbID,DBID *DstReplicaID,
+ DWORD dwOpenFlags, DWORD dwUpdateFlags,
+ NOTEID *retDstNoteID,WORD *retNoteClass);
+STATUS LNPUBLIC NSFDbCopyACL (DBHANDLE hSrcDB, DBHANDLE hDstDB);
+STATUS LNPUBLIC NSFDbCopyTemplateACL (DBHANDLE hSrcDB, DBHANDLE hDstDB, char far *Manager, WORD DefaultAccessLevel);
+STATUS LNPUBLIC NSFDbCreateACLFromTemplate (DBHANDLE hNTF, DBHANDLE hNSF,
+ const char far *Manager, WORD DefaultAccess,
+ HANDLE far *rethACL);
+STATUS LNPUBLIC NSFDbStoreACL (DBHANDLE hDB, HANDLE hACL, DWORD ObjectID, WORD Method);
+STATUS LNPUBLIC NSFDbReadACL(DBHANDLE hDB, HANDLE far *rethACL);
+STATUS LNPUBLIC NSFDbGenerateOID (DBHANDLE hDB, OID far *retOID);
+STATUS LNPUBLIC NSFSetMaxPasswordAccess(DBHANDLE hDB, WORD Level);
+STATUS LNPUBLIC NSFGetMaxPasswordAccess(DBHANDLE hDB, WORD *retLevel);
+STATUS LNPUBLIC NSFDbModifiedTime (DBHANDLE hDB, TIMEDATE far *retDataModified, TIMEDATE far *retNonDataModified);
+STATUS LNPUBLIC NSFDbPathGet (DBHANDLE hDB, char far *retCanonicalPathName, char far *retExpandedPathName);
+STATUS LNPUBLIC NSFDbInfoGet (DBHANDLE hDB, char far *retBuffer);
+STATUS LNPUBLIC NSFDbInfoSet (DBHANDLE hDB, char far *Buffer);
+void LNPUBLIC NSFDbInfoParse(char far *Info, WORD What, char far *Buffer, WORD Length);
+void LNPUBLIC NSFDbInfoModify(char far *Info, WORD What, const char far *Buffer);
+STATUS LNPUBLIC NSFDbGetSpecialNoteID (DBHANDLE hDB, WORD Index, NOTEID far *retNoteID);
+STATUS LNPUBLIC NSFDbIDGet (DBHANDLE hDB, DBID far *retDbID);
+STATUS LNPUBLIC NSFDbReplicaInfoGet (DBHANDLE hDB, DBREPLICAINFO far *retReplicationInfo);
+STATUS LNPUBLIC NSFDbReplicaInfoSet (DBHANDLE hDB, DBREPLICAINFO far *ReplicationInfo);
+STATUS LNPUBLIC NSFDbReplicaInfoSetExtended (DBHANDLE hDB, DBREPLICAINFO far *ReplicationInfo, HANDLE hNamesList);
+STATUS LNPUBLIC NSFDbGetNoteInfo (DBHANDLE hDB, NOTEID NoteID,
+ OID far *retNoteOID,
+ TIMEDATE far *retModified,
+ WORD far *retNoteClass);
+STATUS LNPUBLIC NSFDbHasProfileNoteChanged(DBHANDLE hDB, NOTEID noteid, DWORD *pSeqNum, TIMEDATE *Since, BOOL *HasChanged, TIMEDATE *retModTime);
+#define DBQUOTA_NOT_SPECIFIED (-1)
+
+STATUS LNPUBLIC NSFDbQuotaGet (const char far *Filename, DBQUOTAINFO far *retQuotaInfo);
+STATUS LNPUBLIC NSFDbQuotaSetExt(const char far *Filename, DWORD Flags, DBQUOTAINFO far *QuotaInfo);
+
+STATUS LNPUBLIC NSFDbQuotaGethDB(DBHANDLE hDB, DBQUOTAINFOEXT *QuotaInfo) ;
+
+/* Options for quota detection,enforcement method */
+
+#define NSF_QUOTA_METHOD_DEFAULT 0L
+#define NSF_QUOTA_METHOD_USAGE 1L
+#define NSF_QUOTA_METHOD_FILESIZE 2L
+#define NSF_QUOTA_METHOD_FILESIZE_ADD 3L
+
+STATUS LNPUBLIC NSFDbFTSizeGet(const char far *Filename, DWORD *FTSize);
+STATUS LNPUBLIC NSFDbGetNoteInfoByUNID(DBHANDLE hDB, UNID far *pUNID,
+ NOTEID far *retNoteID, OID far *retOID,
+ TIMEDATE far *retModTime, WORD far *retClass);
+STATUS LNPUBLIC NSFDbGetModifiedNoteTable (DBHANDLE hDB, WORD NoteClassMask, TIMEDATE Since,
+ TIMEDATE far *retUntil,
+ HANDLE far *rethTable);
+STATUS LNPUBLIC NSFApplyModifiedNoteTable (HANDLE hModifiedNotes, HANDLE hTargetTable);
+STATUS LNPUBLIC NSFDbLocateByReplicaID (DBHANDLE hDB, DBID far *ReplicaID, char far *retPathName, WORD PathMaxLen);
+STATUS LNPUBLIC NSFDbStampNotes (DBHANDLE hDB, HANDLE hTable,
+ const char far *ItemName, WORD ItemNameLength,
+ void far *Data, WORD DataLength);
+STATUS LNPUBLIC NSFDbStampNotesMultiItem (DBHANDLE hDB, HANDLE hTable, HANDLE hInNote);
+STATUS LNPUBLIC NSFDbDeleteNotes (DBHANDLE hDB, HANDLE hTable, UNID far *retUNIDArray);
+STATUS LNPUBLIC NSFDbUserNameGet (DBHANDLE hDB, char far *retUserName, WORD BufferLength);
+STATUS LNPUBLIC NSFDbGetNamesList(DBHANDLE hDB, DWORD Flags, HANDLE *rethNamesList);
+void LNPUBLIC NSFDbAccessGet(DBHANDLE hDB, WORD far *retAccessLevel, WORD far *retAccessFlag);
+STATUS LNPUBLIC NSFDbRename (const char far *from, const char far *to);
+STATUS LNPUBLIC NSFDbClassGet (DBHANDLE hDB, WORD far *retClass);
+STATUS LNPUBLIC NSFDbModeGet (DBHANDLE hDB, USHORT far *retMode);
+STATUS LNPUBLIC NSFDbGetUserActivity(DBHANDLE hDB, DWORD Flags, DBACTIVITY far *retDbActivity,
+ HANDLE far *rethUserInfo, WORD far *retUserCount);
+STATUS LNPUBLIC NSFDbCloseSession (DBHANDLE hDB);
+STATUS LNPUBLIC NSFDbReopen (DBHANDLE hDB, DBHANDLE far *rethDB);
+STATUS LNPUBLIC NSFDbMajorMinorVersionGet (DBHANDLE hDB, WORD far *retMajorVersion,
+ WORD far *retMinorVersion);
+STATUS LNPUBLIC NSFDbItemDefTable (DBHANDLE hDB,ITEMDEFTABLEHANDLE far *retItemNameTable);
+STATUS LNPUBLIC NSFDbItemDefTableExt (DBHANDLE hDB,ITEMDEFTABLEEXTHANDLE far *retItemNameTable);
+STATUS LNPUBLIC NSFDbGetBuildVersion (DBHANDLE hDB,WORD far *retVersion);
+STATUS LNPUBLIC NSFDbSpaceUsage (DBHANDLE hDB, DWORD far *retAllocatedBytes, DWORD far *retFreeBytes);
+STATUS LNPUBLIC NSFDbSpaceUsageScaled (DBHANDLE hDB, DWORD far *retAllocatedGranules, DWORD far *retFreeGranules, DWORD far *retGranularity);
+DWORD LNPUBLIC NSFDbGetOpenDatabaseID (DBHANDLE hDB);
+STATUS LNPUBLIC NSFGetServerStats(char far *ServerName, char far *Facility, char far *StatName, HANDLE far *rethTable, DWORD far *retTableSize);
+STATUS LNPUBLIC NSFGetServerLatency(char far *ServerName, DWORD Timeout,
+ DWORD far *retClientToServerMS,
+ DWORD far *retServerToClientMS,
+ WORD far *ServerVersion);
+STATUS LNPUBLIC NSFRemoteConsole(char far *ServerName, char far *ConsoleCommand, HANDLE far *hResponseText);
+
+STATUS LNPUBLIC NSFBuildNamesList(char *UserName, DWORD dwFlags, HANDLE *rethNamesList);
+STATUS LNPUBLIC NSFDbClearReplHistory(DBHANDLE hDb, DWORD dwFlags);
+STATUS LNPUBLIC NSFDbGetModifiedUnreadTables(DBHANDLE hDB, char* UserName, WORD UserNameLen, TIMEDATE Since, TIMEDATE *Until, HANDLE *hRead, HANDLE *hUnread);
+STATUS LNPUBLIC NSFDbUpdateUnread (DBHANDLE hDataDB, HANDLE hUnreadList);
+STATUS LNPUBLIC NSFDbGetUnreadNoteTable(DBHANDLE hDB,
+ char far *UserName, WORD UserNameLength, BOOL fCreateIfNotAvailable,
+ HANDLE far *rethUnreadList);
+STATUS LNPUBLIC NSFDbGetUnreadNoteTable2(DBHANDLE hDB,
+ char far *UserName, WORD UserNameLength, BOOL fCreateIfNotAvailable, BOOL fUpdateUnread,
+ HANDLE far *rethUnreadList);
+STATUS LNPUBLIC NSFDbSetUnreadNoteTable(DBHANDLE hDB, char far *UserName, WORD UserNameLength,
+ BOOL fFlushToDisk, HANDLE hOriginalUnreadList, HANDLE hUnreadList);
+STATUS LNPUBLIC NSFDbGetObjectStoreID(DBHANDLE dbhandle, BOOL far *Specified, DBID far *ObjStoreReplicaID);
+STATUS LNPUBLIC NSFDbSetObjectStoreID(DBHANDLE dbhandle, DBID far *ObjStoreReplicaID);
+STATUS LNPUBLIC NSFDbFilter(DBHANDLE hFilterDB, NOTEHANDLE hFilterNote,
+ HANDLE hNotesToFilter, BOOL fIncremental,
+ void far *Reserved1, void far *Reserved2,
+ char far *DbTitle, char far *ViewTitle,
+ void far *Reserved3, void far *Reserved4,
+ HANDLE hDeletedList,
+ HANDLE hSelectedList);
+STATUS LNPUBLIC NSFDbCompact(const char far *Pathname, WORD Options, DWORD far *retStats);
+STATUS LNPUBLIC NSFDbCompactExtended(const char *Pathname, DWORD Options, DWORD *retStats);
+/* Define flags for NSFFolderGetIDTable */
+#define DB_GETIDTABLE_VALIDATE 0x00000001 /* If set, return only "validated" noteIDs */
+STATUS LNPUBLIC NSFFolderGetIDTable(HANDLE hViewDB, HANDLE hDataDB, NOTEID ViewNoteID, DWORD Flags, HANDLE *hTable);
+STATUS LNPUBLIC NSFGetFolderChanges(DBHANDLE hViewDB, DBHANDLE hDataDB, NOTEID ViewNoteID, TIMEDATE *Since, DWORD Flags,
+ HANDLE *AddedNoteTable, HANDLE *RemovedNoteTable);
+typedef STATUS (LNCALLBACKPTR NSFGETALLFOLDERCHANGESCALLBACK) (void *Param, UNID *NoteUNID, HANDLE AddedNoteTable, HANDLE RemovedNoteTable);
+STATUS LNPUBLIC NSFGetAllFolderChanges(HANDLE hViewDB, HANDLE hDataDB, TIMEDATE *Since, DWORD Flags,
+ NSFGETALLFOLDERCHANGESCALLBACK Callback, void *Param, TIMEDATE *Until);
+#define MAX_ITEMDEF_SEGMENTS 25
+
+typedef struct {
+ DWORD Items; /* number of items in the table */
+ DWORD ItemDefArray; /* Memory handle of ITEM_DEFINITION_EXT structures */
+ DWORD NumSegments; /* Number of non-null segments in ItemNameSegs */
+ HANDLE ItemNameSegs[MAX_ITEMDEF_SEGMENTS]; /* Segments of packed text */
+ DWORD ItemNameSegLengths[MAX_ITEMDEF_SEGMENTS];
+ /* Length of each non-null text segment */
+} ITEM_DEFINITION_TABLE_EXT;
+
+typedef struct {
+ DWORD ItemOffset; /* offset into ItemNameSegs to item name */
+ WORD ItemType; /* default data type of the item */
+ WORD ItemNameLength; /* length of the item's name */
+} ITEM_DEFINITION_EXT;
+
+typedef struct {
+ DWORD Items;
+ void *pItemDefArray;
+ char *ItemText[MAX_ITEMDEF_SEGMENTS];
+ DWORD NumSegments;
+ DWORD ItemNameSegLengths[MAX_ITEMDEF_SEGMENTS];
+} ITEM_DEFINITION_TABLE_LOCK;
+
+/* Accessor routines for item name table returned by NSFDbItemDefTableExt. */
+STATUS LNPUBLIC NSFItemDefExtLock(ITEM_DEFINITION_TABLE_EXT *ItemDefTable, ITEM_DEFINITION_TABLE_LOCK *ItemDefTableLock);
+STATUS LNPUBLIC NSFItemDefExtUnlock(ITEM_DEFINITION_TABLE_EXT *ItemDefTable, ITEM_DEFINITION_TABLE_LOCK *ItemDefTableLock);
+STATUS LNPUBLIC NSFItemDefExtFree(ITEM_DEFINITION_TABLE_EXT *ItemDeftable);
+STATUS LNPUBLIC NSFItemDefExtEntries(ITEM_DEFINITION_TABLE_LOCK *ItemDefTableLock, DWORD *NumEntries);
+STATUS LNPUBLIC NSFItemDefExtGetEntry(ITEM_DEFINITION_TABLE_LOCK *ItemDefTableLock, DWORD ItemNum,
+ WORD *ItemType, WORD *ItemLength, char **ItemName);
+
+STATUS LNPUBLIC NSFBackupStart(DBHANDLE hDB, DWORD Flags, HANDLE *BackupContext, DWORD *FileSizeLow, DWORD *FileSizeHigh);
+STATUS LNPUBLIC NSFBackupStop(DBHANDLE hDB, HANDLE BackupContext);
+#define BACKUPEND_ABORT 0x00000001 /* Abort curent database backup */
+STATUS LNPUBLIC NSFBackupEnd(DBHANDLE hDB, HANDLE BackupContext, DWORD Options);
+STATUS LNPUBLIC NSFBackupSetHighWaterMark(DBHANDLE hDB, HANDLE BackupContext,
+ DWORD HighWaterMarkLow, DWORD HighWaterMarkHigh);
+STATUS LNPUBLIC NSFBackupGetChangeInfoSize(DBHANDLE hDB,
+ HANDLE hBackupContext,
+ DWORD Flags,
+ DWORD *InfoSizeLow,
+ DWORD *InfoSizeHigh);
+STATUS LNPUBLIC NSFBackupGetNextChangeInfo(DBHANDLE hDB,
+ HANDLE hBackupContext,
+ DWORD Flags,
+ char * Buffer,
+ DWORD BufferSize,
+ DWORD *FilledSize);
+
+STATUS LNPUBLIC NSFBackupStartApplyChangeInfo(HANDLE *ApplyInfoContext,
+ char * CopyFilePath,
+ DWORD Flags,
+ DWORD InfoSizeLow,
+ DWORD InfoSizeHigh);
+
+STATUS LNPUBLIC NSFBackupApplyNextChangeInfo(
+ HANDLE ApplyInfoContext,
+ DWORD Flags,
+ char * Buffer,
+ DWORD BufferSize);
+#define APPLYEND_ABORT 0x00000001 /* Abort current change info appilcation */
+STATUS LNPUBLIC NSFBackupEndApplyChangeInfo(HANDLE ApplyInfoContext,
+ DWORD Flags);
+
+STATUS LNPUBLIC NSFBringDatabaseOnline(const char far * dbPath,
+ DWORD options);
+
+#define OFFLINE_NODELETE 0x00000001 /* Don't delete database file */
+#define OFFLINE_KEEP_ACCESS_ENTITIES 0x00000002 /* Don't delete DB2 access entities */
+
+STATUS LNPUBLIC NSFTakeDatabaseOffline(const char far * dbPath,
+ DWORD WaitTime,
+ DWORD options);
+STATUS LNPUBLIC NSFDbGetLogInfo(DBHANDLE hDb,
+ DWORD Flags,
+ BOOL * LOGGED,
+ UNID * LogID,
+ UNID * Dbiid,
+ DWORD * LogExtent);
+
+#define DB2BACKUP_FASTCONNECT 0x1
+#define DB2BACKUP_NEWREPLICA 0x2
+
+#define DB2BACKUP_COPY_REPLACE 0x8
+#define DB2BACKUP_COPY_DELETE_SRC 0x10
+#define DB2BACKUP_COPY_ISOLATE 0x20
+#define DB2BACKUP_COPY_CLOSE 0x40
+#define DB2BACKUP_COPY_NONRECOVERABLE 0x80
+#define DB2BACKUP_COPY_IGNORE_NIF 0x100
+#define DB2BACKUP_COPY_VENDOR_LOAD 0X200
+
+#define DB2BACKUP_LINKS_VERIFYEXISTING 0x01
+#define DB2BACKUP_LINKS_SCANSCHEMAS 0x02
+#define DB2BACKUP_LINKS_QUIET 0x04
+
+#define DB2BACKUP_NONSFID 0xffffffff
+
+STATUS LNPUBLIC NSFDB2ReconnectNotesDatabase(const char far * FullPath,
+ const char far * String1,
+ DWORD nsfid,
+ DWORD flags);
+
+STATUS LNPUBLIC NSFDB2RegenerateLinks (DWORD flags);
+
+STATUS LNPUBLIC NSFDB2ListNSFDB2Databases (HANDLE *pHDbList, void far **pDbList, const char far* tablespaceName);
+
+STATUS LNPUBLIC NSFDB2FastCopy(
+ const char far* srcDB2Database,
+ const char far* tgtDB2Database,
+ const char far* sourceNSF,
+ const char far* targetNSF,
+ const char far* groupName,
+ const char far* loadParameter,
+ DWORD WaitTime,
+ DWORD flags,
+ DWORD flags2);
+
+STATUS LNPUBLIC NSFDB2GetDbInfoValidity (const char* filePath,
+ char* Schema,
+ DWORD szSchema,
+ char* tableSpace,
+ DWORD szTableSpace,
+ char* actualTableSpace,
+ DWORD szActualTableSpace,
+ BOOL* schemaExists,
+ BOOL* tsExists,
+ BOOL* tsMismatch,
+ DWORD flags);
+/* Define NSF Group Properties */
+#define DB2NSF_GROUP_PROPERTY_CLASS 1
+
+STATUS LNPUBLIC NSFGetNSFDB2GroupProperty( const char* group, DWORD infotype, void far *buffer, DWORD *size);
+
+/* Definition of the log restore callback function that the backup */
+
+/* utility will have to provide for archive logging. */
+typedef STATUS (LNCALLBACKPTR LOGRESTORECALLBACKFUNCTION)(UNID *LogID, DWORD LogNumber, char *LogSegmentPathName);
+
+typedef enum {
+ MediaCallback_NoteUpdate = 0x01, /* Update of existing Note */
+ MediaCallback_NoteInsert = 0x02, /* Addition of new note */
+ MediaCallback_NoteDelete = 0x04, /* Delete of note */
+ MediaCallback_CLR = 0x08 /* Event is the undo of an action due to some failure */
+} MediaCallbackFlags;
+
+
+typedef struct {
+ WORD InfoSize; /* Size of this structure, use this to determine if future fields are avail */
+ NOTEID NoteId; /* NoteID for note being altered */
+ NOTEHANDLE hNote; /* Handle to note being retrieved */
+ TIMEDATE TranTime; /* Time the transaction ran for which you are being called */
+ char far* UserName; /* If avail, else a pointer to "" */
+ char far* PathName; /* Path & file name of DB */
+} NOTE_RESTORE_CALLBACK_INFO;
+
+/* Definition of the note restore callback function that the backup/archive */
+/* utility will have to provide for monitoring notes during Media Recovery */
+typedef STATUS (LNCALLBACKPTR NOTERESTORECALLBACKFUNCTION)( DWORD state_flags,
+ void far * userParm,
+ NOTE_RESTORE_CALLBACK_INFO far * info);
+
+
+/* Log archiving API for backup utilities to call */
+/* Possible values returned from NSFGetTransLogStyle */
+#define TRANSLOG_STYLE_CIRCULAR 0 /* Circular logging is in effect */
+#define TRANSLOG_STYLE_ARCHIVE 1 /* Archive logging is in effect */
+#define TRANSLOG_STYLE_LINEAR 2 /* Linear logging is in effect */
+STATUS LNPUBLIC NSFGetTransLogStyle(WORD far * LogType);
+STATUS LNPUBLIC NSFBeginArchivingLogs(void);
+STATUS LNPUBLIC NSFEndArchivingLogs(void);
+STATUS LNPUBLIC NSFGetFirstLogToArchive(UNID far * LogID, DWORD far * LogNumber, char far * LogPath);
+STATUS LNPUBLIC NSFGetNextLogToArchive(UNID far * LogID, DWORD far * LogNumber, char far * LogPath);
+STATUS LNPUBLIC NSFDoneArchivingLog(UNID far * LogID, DWORD far * LogSequenceNumber);
+/* Wait for any other media recovery to finish, vs. return immed if busy */
+#define DBRECOVER_WAIT 0x0001
+/* Make recovered db a new instance so it will not conflict with original */
+#define DBRECOVER_ZAP_ID 0x0002
+/* Refresh a backup to the current level, mutually exclusive with DBRECOVER_ZAP_ID */
+#define DBRECOVER_REFRESH_BACKUP 0x0004
+/* Recover database to a point in time, mutually exclusive with DBRECOVER_REFRESH_BACKUP */
+#define DBRECOVER_POINT_IN_TIME 0x0008
+/* Give recovered db a new replica id so it will not conflict with original */
+#define DBRECOVER_ZAP_REPLICAID 0x0010
+/* Make recovered db a new instance if another copy of the DB is on-line */
+#define DBRECOVER_ZAP_ID_IF_NECESSARY 0x0020
+/* Allow alternate path from which to recover old log extents */
+#define DBRECOVER_ALT_RETRIEVE_PATH 0x0040
+
+STATUS LNPUBLIC NSFRecoverDatabases(const char far * dbNames,
+ LOGRESTORECALLBACKFUNCTION restoreCB,
+ DWORD Flags, /* DBRECOVER_* flags */
+ WORD far * errDbIndex,
+ TIMEDATE far * recoveryTime);
+
+STATUS LNPUBLIC NSFRecoverDatabasesWithCallback(const char far * dbNames,
+ LOGRESTORECALLBACKFUNCTION restoreCB,
+ DWORD Flags, /* DBRECOVER_* flags */
+ WORD far * errDbIndex,
+ TIMEDATE far * recoveryTime,
+ NOTERESTORECALLBACKFUNCTION noteCB,
+ void far * userParm);
+
+
+/* rmmisc.cpp */
+
+/* Return BOOL if span specified, else actual amount of log to process */
+STATUS LNPUBLIC NSFIsNewBackupNeeded(const char far * dbName,
+ DWORD comfortSpan, /* Requested Pad Log span in K */
+ DWORD far * backupNeeded);
+STATUS LNPUBLIC NSFDbCreateNoteID(DBHANDLE hDB, BOOL fData, NOTEID *retNoteID);
+STATUS LNPUBLIC NSFDbAddItemName(DBHANDLE hDB, WORD type, char *string, WORD length, DWORD *rtnItemNumber);
+
+/* Database Hook Drivers
+*
+* NSF hook drivers enable the API programmer to construct a set of
+* subroutines, packaged as a DLL, that "hook" several NSF functions
+* related to reading, modifying, and deleting notes. The principal
+* application of these hook drivers is intended to be auditing, that is,
+* logging accesses to a database, however they can also be programmed
+* to modify the contents of the notes and/or refuse requests.
+*
+* Hook Driver Packaging and Concurrency Requirements
+*
+* Like all Notes low-level subsystems, hook drivers must obey strict
+* rules to fit into their computing environment:
+*
+* 1. The drivers should be available on multiple computing platforms
+*
+* 2. The drivers are packaged as Dynamic Link Libraries under
+* Windows, NT, and OS/2. Under Windows, the DEF file must specify the data
+* as being MOVEABLE SINGLE so that it doesn't occupy GlobalDOS memory, and
+* because Windows doesn't support multi-instance dynamic link libraries.
+* For NT and OS/2, we recommend MULTIPLE data, but you can use whatever you
+* wish.
+*
+* For all four environments, Notes uses either LoadLibrary or
+* DosLoadModule to load the driver. You must decide upon a mnemonic name
+* for your driver, a maximum of 7 characters that is preferably
+* nationality-neutral (obscure in all languages), such as NTAUDIT. In order
+* to load the library, Notes prefixes this name with
+* _ under Windows, $ under OS/2 1.x, I under OS/2 2, and N under NT,
+* and post-fixes the name with .DLL. The DLL is installed into Notes by
+* simply placing its executable into the Notes Program Directory.
+*
+* Notes automatically loads the hook drivers at initialization.
+* The list of hook drivers to be loaded is specified in NOTES.INI in a
+* variable called NSF_HOOKS with a comma separator. Thus, in order to load
+* three hook drivers, the variable might be specified as
+* NSF_HOOKS=drivera,driverb,driverc. Note that it isn't necessary to
+* specify the prefix character or the suffix .DLL.
+*
+* Because of instantiation requirements of the operating systems,
+* the library is loaded once per process. At load time, the first entry
+* point address (entry point @1) is obtained by ordinal, and the driver's
+* Init() function is invoked. The principal use of this function is to plug
+* a data structure with vectors to other hook driver subroutines,
+* including its Term() function which will be called by Notes when the
+* process exits (or performs NotesTerm()).
+*
+* Remember that in some environments (such as Windows), you must
+* export, in your DEF file, all of your functions that Notes will call
+* through these vectors. This is because Windows uses the fact that it's
+* exported to generate a thunk that sets up the DLL's DS appropriately on
+* all of these entry points.
+*
+* 3. All code executed by all entry points to the drivers must
+* be 100% re-entrant by both multiple threads within a single process and
+* multiple processes. In Windows, if you Yield() or make a call to a
+* Notes API function, you may also be preempted by another process that
+* does a hook driver call, so reentrancy is a requirement even in Windows.
+* (Notes makes heavy use of multiple threads and multiple processes, so
+* this must be treated as a required feature, not as something that can
+* be done "later".)
+*
+* Following is the data structure passed to your hook driver's Init routine.
+* When your routine is called, the hModule is filled in (just in case you
+* need it to load resources), and the rest of the vectors are zero'ed.
+* If you don't need to hook any of these vectors, leave them NULL. Otherwise,
+* plug the vectors in your Init routine.
+*
+*/
+
+//commented for LotusNotify Miranga NG plugin beacouse of conflicts with miranda headers (struct LIST at m_system_cpp.h)
+// typedef struct dbhookvec
+ // {
+
+ // /* Module handle of the hook library */
+
+ // HMODULE hModule;
+
+ // /* Initialization vector. This is simply a pointer to the routine
+ // exported as ordinal #1 in your DLL. You needn't plug this
+ // vector because it's plugged before calling through it to do
+ // driver initializations. This routine is called once for each
+ // process that does a NotesInit(). */
+
+ // STATUS (LNCALLBACKPTR Init)(struct dbhookvec far *vec);
+
+ // /* Termination vector. This is called once for each process that
+ // did an Init call, just prior to the process's exiting. */
+
+ // STATUS (LNCALLBACKPTR Term)(struct dbhookvec far *vec);
+
+ // /* Note open hook. This routine is called just AFTER a note is opened
+ // by the NSF subsystem. It is called for both local and remote
+ // databases. UserName is the name of the user doing the open.
+ // GroupList may be NULL, but when it's not it contains a list of
+ // the groups that the user is in. hDB and NoteID can be used
+ // to identify the database and note (use NSFDbPathGet to get the
+ // pathname of the database). OpenFlags are the flags originally
+ // passed into NSFNoteOpen. hNote is the handle to the note that
+ // is about to be returned to the caller. Your hook driver may
+ // modify the contents of the note, or may return an error from
+ // this routine if you wish to fail the open call. You may use any
+ // standard Notes error code to fail the call. */
+
+ // STATUS (LNCALLBACKPTR NoteOpen)(struct dbhookvec far *vec, char far *UserName, LIST far *GroupList, DBHANDLE hDB, NOTEID NoteID, NOTEHANDLE hNote, WORD OpenFlags);
+
+ // /* Note add/update hook, also handles deletion
+ // This routine is called just BEFORE a note is updated
+ // by the NSF subsystem. It is called for both local and remote
+ // databases. UserName is the name of the user doing the open.
+ // GroupList may be NULL, but when it's not it contains a list of
+ // the groups that the user is in. hDB and NoteID can be used
+ // to identify the database and note (use NSFDbPathGet to get the
+ // pathname of the database). pUpdateFlags is a pointer to a WORD
+ // of UpdateFlags originally passed into NSFNoteUpdate. The hook
+ // may examine and modify the UpdateFlags WORD before returning,
+ // thus modifying the flags that will be passed into NSFNoteUpdate.
+ // hNote is the handle to the note that is about to be updated.
+ // Your hook driver may modify the contents of the note, or may
+ // return an error from this routine if you wish to fail the update
+ // call. You may use any standard Notes error code to fail the call.
+ // Note that you can use the following algorithm to determine
+ // precisely the operation being performed:
+
+ // * if (NoteID == NOTEID_ADD
+ // * || NoteID == NOTEID_ADD_OR_REPLACE
+ // * || NoteID == NOTEID_ADD_UNID)
+ // * {
+ // * if ((*pUpdateFlags) & UPDATE_DELETED)
+ // * ; ** Adding a new "deleted note stub" to a database **
+ // * else
+ // * ; ** Adding a new document to a database **
+ // * }
+ // * else
+ // * {
+ // * if ((*pUpdateFlags) & UPDATE_DELETED)
+ // * ; ** Deleting an existing document from the database. **
+ // * ** Note that in this case, the contents of the hNote **
+ // * ** may be nil and should be disregarded; because of **
+ // * ** this, there's no way to tell the class of a note **
+ // * ** being deleted at this point **
+ // * else
+ // * ; ** Updating an existing document in the database **
+ // * }
+
+ // */
+
+ // STATUS (LNCALLBACKPTR NoteUpdate)(struct dbhookvec far *vec, char far *UserName, LIST far *GroupList, DBHANDLE hDB, NOTEID NoteID, NOTEHANDLE hNote, WORD far *pUpdateFlags);
+
+ // /* Note stamp (Categorization) hook.
+ // This routine is called just BEFORE a set of notes is Categorized
+ // by the NSF subsystem. It is called for both local and remote
+ // databases. UserName is the name of the user doing the categorization.
+ // GroupList may be NULL, but when it's not it contains a list of
+ // the groups that the user is in. hDB and hTable can be used
+ // to identify the database and notes (use NSFDbPathGet to get the
+ // pathname of the database). ItemName and Data indicate the data
+ // being used in the categorization. Your hook routine may return
+ // an error if you wish to fail the Stamp call. You may use any
+ // standard Notes error code to fail the call. */
+
+ // STATUS (LNCALLBACKPTR DbStampNotes)(struct dbhookvec far *vec, char far *UserName, LIST far *GroupList, DBHANDLE hDB, HANDLE hIDTable, char far *ItemName, WORD ItemNameLength, void far *Data, WORD Length);
+
+ // /* Flags used by Notes to describe the hook driver -- RESERVED */
+
+ // DWORD Flags;
+
+ // } DBHOOKVEC;
+
+STATUS LNPUBLIC NSFDbDirGet(DBHANDLE hDB, char *retDir);
+STATUS LNPUBLIC NSFDbIsLocallyEncrypted (DBHANDLE hDB, BOOL *pRetval);
+STATUS LNPUBLIC NSFGetOrgDir(char *UserName, char *retDir);
+
+/* End of Note Storage File Database Definitions */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nsferr.h b/plugins/LotusNotify/src/cnotesapi/include/nsferr.h
new file mode 100644
index 0000000000..d9b9cf8b79
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nsferr.h
@@ -0,0 +1,2663 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef NSF_ERR_DEFS
+#define NSF_ERR_DEFS
+
+/* DB2 Note Storage File Error Code Definitions 0x3B00 */
+#ifndef NSF_STR_DEFS
+#include "nsfstr.h"
+#endif
+
+#define ERR_DB2NSF_NOT_IMPL PKG_DB2NSF+0
+ errortext(ERR_DB2NSF_NOT_IMPL, "This feature not yet implemented for DB2 based .nsf(s)")
+#define ERR_DB2NSF_FAILURE PKG_DB2NSF+1
+ errortext(ERR_DB2NSF_FAILURE, "General NSFDB2 error.")
+#define ERR_DB2NSF_CORRUPT PKG_DB2NSF+2
+ errortext(ERR_DB2NSF_CORRUPT, "Corrupt/invalid data found in DB2 - unable to continue")
+#define ERR_DB2NSF_CLI_ERROR PKG_DB2NSF+3
+ errortext(ERR_DB2NSF_CLI_ERROR, "DB2 CLI/SQL error")
+#define ERR_DB2NSF_INI PKG_DB2NSF+4
+ errortext(ERR_DB2NSF_INI, "Invalid or missing DB2/MI .ini file entries")
+#define ERR_DB2NSF_NAME_LENGTH PKG_DB2NSF+5
+ errortext(ERR_DB2NSF_NAME_LENGTH, "Name exceeds DB2 maximum identifier length")
+#define ERR_DB2NSF_BYPASS_XACT PKG_DB2NSF+6
+ errortext(ERR_DB2NSF_BYPASS_XACT, "Internal error - should not appear")
+#define ERR_DB2NSF_NO_BEGIN_XACT PKG_DB2NSF+7
+ errortext(ERR_DB2NSF_NO_BEGIN_XACT, "There is no active transaction to end")
+#define ERR_DB2NSF_PARMS_NEEDED PKG_DB2NSF+10
+ errortext(ERR_DB2NSF_PARMS_NEEDED, "Parameters needed for SQL-based view")
+#define ERR_DB2NSF_SUM_NOTE_SET PKG_DB2NSF+12
+ errortext(ERR_DB2NSF_SUM_NOTE_SET, "Unable to create selected DB2 note set.")
+#define ERR_DB2NSF_NIF_READONLY PKG_DB2NSF+13
+ errortext(ERR_DB2NSF_NIF_READONLY, "Update or commit of read-only DB2 NIF connection")
+#define ERR_DB2NSF_ACCESS_ROWLEN PKG_DB2NSF+14
+ errortext(ERR_DB2NSF_ACCESS_ROWLEN, "Column Length or Total Access Table Row Length exceeds maximum allowed by DB2.")
+#define ERR_DB2NSF_ACCESS_DEFTYPES PKG_DB2NSF+15
+ errortext( ERR_DB2NSF_ACCESS_DEFTYPES, "Incompatible DB2 data type and Notes data type or data format options, fieldname: ")
+#define ERR_DB2NSF_ACCESS_FIELDLEN PKG_DB2NSF+16
+ errortext( ERR_DB2NSF_ACCESS_FIELDLEN, "Access Table field data exceeds defined length")
+#define ERR_DB2NSF_INVALID_LENGTH_READ PKG_DB2NSF+17
+ errortext(ERR_DB2NSF_INVALID_LENGTH_READ, "Number of bytes read is smaller than expected.")
+#define ERR_DB2NSF_NOT_ENABLED_FOR_DB2 PKG_DB2NSF+18
+ errortext( ERR_DB2NSF_NOT_ENABLED_FOR_DB2, "Domino server is not DB2-enabled or DB2 services were unable to initialize when the server started up.")
+#define ERR_DB2NSF_CANNOT_USE_DATASTORE PKG_DB2NSF+19
+ errortext( ERR_DB2NSF_CANNOT_USE_DATASTORE, "You need Server Administrator access to use the requested datastore")
+#define ERR_DB2NSF_TABLESPACE_IN_USE PKG_DB2NSF+20
+ errortext( ERR_DB2NSF_TABLESPACE_IN_USE, "Requested tablespace already in use")
+#define ERR_DB2NSF_BAD_OPTIONS2_FLAGS PKG_DB2NSF+21
+ apitext( ERR_DB2NSF_BAD_OPTIONS2_FLAGS, "Invalid Options2 flags value")
+#define ERR_DB2NSF_INCONSISTENT_COLLECTION PKG_DB2NSF+22
+ apitext( ERR_DB2NSF_INCONSISTENT_COLLECTION, "DB2-based Collection is corrupt")
+#define ERR_DB2NSF_OPEN_NOT_ALLOWED PKG_DB2NSF+23
+ apitext( ERR_DB2NSF_OPEN_NOT_ALLOWED, "A DB2-based nsf cannot be opened locally. It must be opened through the DB2-enabled Domino Server.")
+#define ERR_DB2NSF_SERVICES_UNAVAILABLE PKG_DB2NSF+24
+ apitext( ERR_DB2NSF_SERVICES_UNAVAILABLE, "DB2 services may be unavailable or the DB2-based nsf may be corrupt.")
+#define ERR_DB2NSF_XLATE_POOLFULL PKG_DB2NSF+25
+ errortext( ERR_DB2NSF_XLATE_POOLFULL, "Insufficient memory - DB2 xlate pool is full.")
+#define ERR_DB2NSF_IMAP_NOT_SUPPORTED PKG_DB2NSF+26
+ apitext( ERR_DB2NSF_IMAP_NOT_SUPPORTED, "IMAP is not supported for DB2-based nsfs.")
+#define ERR_DB2NSF_NO_OVERRIDE_RIGHTS PKG_DB2NSF+27
+ apitext( ERR_DB2NSF_NO_OVERRIDE_RIGHTS, "User does not have datastore override rights.")
+#define ERR_DB2NSF_QUERY_TOO_LONG PKG_DB2NSF+28
+ apitext( ERR_DB2NSF_QUERY_TOO_LONG, "DB2 query exceeds maximum length." )
+#define ERR_DB2NSF_BUF_TOO_SMALL PKG_DB2NSF+29
+ apitext(ERR_DB2NSF_BUF_TOO_SMALL, "Allocated buffer too small")
+#define ERR_DB2NSF_INIT_FAILURE PKG_DB2NSF+30
+ apitext( ERR_DB2NSF_INIT_FAILURE, "Unable to initialize DB2 services. DB2-based nsfs will be unusable." )
+
+/* Error codes from the XML mapping file starting with 0x3B30*/
+#define ERR_DB2NSF_WARNING PKG_DB2NSF+48
+ errortext(ERR_DB2NSF_WARNING, "DB2-SQL warning exception.")
+#define ERR_DB2NSF_NODATA PKG_DB2NSF+49
+ errortext(ERR_DB2NSF_NODATA, "DB2-SQL no data exception.")
+#define ERR_DB2NSF_DYNAMIC_SQL PKG_DB2NSF+50
+ errortext(ERR_DB2NSF_DYNAMIC_SQL, "DB2-Dynamic SQL error.")
+#define ERR_DB2NSF_CONNECTION PKG_DB2NSF+51
+ errortext(ERR_DB2NSF_CONNECTION, "DB2-Connection Exception.")
+#define ERR_DB2NSF_TRIGGER PKG_DB2NSF+52
+ errortext(ERR_DB2NSF_TRIGGER, "DB2-Triggered action exception.")
+#define ERR_DB2NSF_FEATURE PKG_DB2NSF+53
+ errortext(ERR_DB2NSF_FEATURE, "DB2-Feature not supported.")
+#define ERR_DB2NSF_TYPE PKG_DB2NSF+54
+ errortext(ERR_DB2NSF_TYPE, "DB2-Invalid target type specification.")
+#define ERR_DB2NSF_SCHEMA PKG_DB2NSF+55
+ errortext(ERR_DB2NSF_SCHEMA, "DB2-Invalid Schema name list specification.")
+#define ERR_DB2NSF_TOKEN PKG_DB2NSF+56
+ errortext(ERR_DB2NSF_TOKEN, "DB2-Invalid token.")
+#define ERR_DB2NSF_0K00 PKG_DB2NSF+57
+ errortext(ERR_DB2NSF_0K00, "DB2-0K00 exception")
+#define ERR_DB2NSF_TRIG_PROHIBIT PKG_DB2NSF+58
+ errortext(ERR_DB2NSF_TRIG_PROHIBIT, "DB2-Prohibited statement encountered during trigger.")
+#define ERR_DB2NSF_CASE PKG_DB2NSF+59
+ errortext(ERR_DB2NSF_CASE, "DB2-Case not found for case statement.")
+#define ERR_DB2NSF_CARDINALITY PKG_DB2NSF+60
+ errortext(ERR_DB2NSF_CARDINALITY, "DB2-Cardinality violation.")
+#define ERR_DB2NSF_DATA PKG_DB2NSF+61
+ errortext(ERR_DB2NSF_DATA, "DB2-Data exception.")
+#define ERR_DB2NSF_CONSTRAINT PKG_DB2NSF+62
+ errortext(ERR_DB2NSF_CONSTRAINT, "DB2-Constraint violation.")
+#define ERR_DB2NSF_INV_CURS_STATE PKG_DB2NSF+63
+ errortext(ERR_DB2NSF_INV_CURS_STATE, "DB2-Invalid cursor state.")
+#define ERR_DB2NSF_INV_TRAN_STATE PKG_DB2NSF+64
+ errortext(ERR_DB2NSF_INV_TRAN_STATE, "DB2-Invalid transaction state.")
+#define ERR_DB2NSF_INV_STMT_ID PKG_DB2NSF+65
+ errortext(ERR_DB2NSF_INV_STMT_ID, "DB2-Invalid SQL statement identifier.")
+#define ERR_DB2NSF_INV_AUTH_SPEC PKG_DB2NSF+66
+ errortext(ERR_DB2NSF_INV_AUTH_SPEC, "DB2-Invalid authorization specification.")
+#define ERR_DB2NSF_INV_TRAN_TERMINATION PKG_DB2NSF+67
+ errortext(ERR_DB2NSF_INV_TRAN_TERMINATION, "DB2-Invalid transaction termination.")
+#define ERR_DB2NSF_INV_CONN_NAME PKG_DB2NSF+68
+ errortext(ERR_DB2NSF_INV_CONN_NAME, "DB2-Invalid connection name.")
+#define ERR_DB2NSF_INV_CURS_NAME PKG_DB2NSF+69
+ errortext(ERR_DB2NSF_INV_CURS_NAME, "DB2-Invalid cursor name.")
+#define ERR_DB2NSF_36001 PKG_DB2NSF+70
+ errortext(ERR_DB2NSF_36001, "DB2-36001 error.")
+#define ERR_DB2NSF_SYNTAX PKG_DB2NSF+71
+ errortext(ERR_DB2NSF_SYNTAX, "DB2-Syntax error.")
+#define ERR_DB2NSF_EXT_FUNC_EX PKG_DB2NSF+72
+ errortext(ERR_DB2NSF_EXT_FUNC_EX, "DB2-External function exception.")
+#define ERR_DB2NSF_EXT_FUNC_CALL_EX PKG_DB2NSF+73
+ errortext(ERR_DB2NSF_EXT_FUNC_CALL_EX, "DB2-External function call exception.")
+#define ERR_DB2NSF_SAVEP_EX PKG_DB2NSF+74
+ errortext(ERR_DB2NSF_SAVEP_EX, "DB2-Savepoint exception.")
+#define ERR_DB2NSF_SERIALIZATION PKG_DB2NSF+75
+ errortext(ERR_DB2NSF_SERIALIZATION, "DB2-Serialization failure.")
+#define ERR_DB2NSF_AUTHORIZATION PKG_DB2NSF+76
+ errortext(ERR_DB2NSF_AUTHORIZATION, "DB2-Authorization violation.")
+#define ERR_DB2NSF_VIEW_DEF PKG_DB2NSF+77
+ errortext(ERR_DB2NSF_VIEW_DEF, "DB2-View definition error.")
+#define ERR_DB2NSF_46XXX PKG_DB2NSF+78
+ errortext(ERR_DB2NSF_46XXX, "DB2-46XXX error.")
+#define ERR_DB2NSF_INV_APP_STATE PKG_DB2NSF+79
+ errortext(ERR_DB2NSF_INV_APP_STATE, "DB2-Invalid application state.")
+#define ERR_DB2NSF_DUP_UNDEF_NAME PKG_DB2NSF+80
+ errortext(ERR_DB2NSF_DUP_UNDEF_NAME, "DB2-Duplicate or undefined name.")
+#define ERR_DB2NSF_INV_OPERAND PKG_DB2NSF+81
+ errortext(ERR_DB2NSF_INV_OPERAND, "DB2-Invalid operand or inconsistent specification.")
+#define ERR_DB2NSF_LIMIT_EXCEEDED PKG_DB2NSF+82
+ errortext(ERR_DB2NSF_LIMIT_EXCEEDED, "DB2-SQL or Product limit exceeded.")
+#define ERR_DB2NSF_PREREQ_STATE PKG_DB2NSF+83
+ errortext(ERR_DB2NSF_PREREQ_STATE, "DB2-Object not in prerequisite state.")
+#define ERR_DB2NSF_MISC_RESTRICTIONS PKG_DB2NSF+84
+ errortext(ERR_DB2NSF_MISC_RESTRICTIONS, "DB2-Miscellaneous SQL or product restrictions.")
+#define ERR_DB2NSF_RESOURCE PKG_DB2NSF+85
+ errortext(ERR_DB2NSF_RESOURCE, "DB2-Resource not available or operator intervention.")
+#define ERR_DB2NSF_SYSTEM PKG_DB2NSF+86
+ errortext(ERR_DB2NSF_SYSTEM, "DB2-System error.")
+#define ERR_DB2NSF_NOXMLMAP PKG_DB2NSF+87
+ errortext(ERR_DB2NSF_NOXMLMAP, "File db2errmp.xml not found.")
+#define ERR_DB2NSF_MAPSUCCESS PKG_DB2NSF+88
+ errortext(ERR_DB2NSF_MAPSUCCESS, "The map for DB2 errors was successfully created.\n")
+#define ERR_DB2NSF_XML_PARSE PKG_DB2NSF+89
+ errortext(ERR_DB2NSF_XML_PARSE, "The parsing of XML DB2 error file failed; the map for DB2 errors was not created.")
+#define ERR_DB2NSF_GENERIC_FAILURE PKG_DB2NSF+90
+ errortext(ERR_DB2NSF_GENERIC_FAILURE, "DB2 NSF failure.")
+#define ERR_DB2NSF_ENABLED PKG_DB2NSF+91
+ stringtext(ERR_DB2NSF_ENABLED, "DB2 Server:|Not Enabled|Enabled|DB2 Access:")
+#define IDX_DB2_ENABLED_SERVER 1
+#define IDX_DB2_ENABLED_NOT_EN 2
+#define IDX_DB2_ENABLED_EN 3
+#define IDX_DB2_ENABLED_ACCESS 4
+#define ERR_DB2NSF_DB PKG_DB2NSF+92
+ stringtext(ERR_DB2NSF_DB, "DB2 Database: ")
+#define ERR_DB2NSF_BUFFERPOOL PKG_DB2NSF+93
+ errortext(ERR_DB2NSF_BUFFERPOOL, "DB2 - Buffer pool not allocated, using a buffer pool that may be too small.")
+#define ERR_DB2NSF_ENABLE_STR PKG_DB2NSF+94
+ errortext(ERR_DB2NSF_ENABLE_STR, "DB2 SERVER ENABLE LOG\n")
+#define ERR_DB2NSF_ENABLE_STATE PKG_DB2NSF+95
+ errortext(ERR_DB2NSF_ENABLE_STATE, "Server doc update|Notes.ini update|Server id update|Catalog node|Load DB2 Library|Create user account|Add DB2DOM group to SYSCTRL_GROUP|Send server doc update request to Admin Process")
+#define IDX_DB2_ENABLE_SRVDOC 1
+#define IDX_DB2_ENABLE_INI 2
+#define IDX_DB2_ENABLE_ID 3
+#define IDX_DB2_ENABLE_CATNODE 4
+#define IDX_DB2_ENABLE_LOADLIB 5
+#define IDX_DB2_ENABLE_USER 6
+#define IDX_DB2_ENABLE_GROUP 7
+#define IDX_DB2_ENABLE_SRVDOC_ADMINP 8
+
+#define ERR_DB2NSF_ENABLE_STATUS PKG_DB2NSF+96
+ errortext(ERR_DB2NSF_ENABLE_STATUS, "TASK -- |started\n|completed\n|failed with the preceding error(s)\n|%s%sfailed with error (%s)\n")
+#define IDX_DB2_ENABLE_TASK 1
+#define IDX_DB2_ENABLE_START 2
+#define IDX_DB2_ENABLE_COMP 3
+#define IDX_DB2_ENABLE_ERROR 4
+#define IDX_DB2_ENABLE_ERROR_STRING 5
+#define ERR_DB2NSF_XMLFILE PKG_DB2NSF+97
+ errortext(ERR_DB2NSF_XMLFILE, "The XML file db2errmp.xml might be incomplete or corrupt. A partial error map was created.")
+#define ERR_DB2NSF_TABLESPACE_MISSING PKG_DB2NSF+98
+ errortext(ERR_DB2NSF_TABLESPACE_MISSING, "Tablespace (%s) does not exist")
+#define ERR_DB2NSF_SCHEMA_MISSING PKG_DB2NSF+99
+ errortext(ERR_DB2NSF_SCHEMA_MISSING, "Schema (%s) does not exist")
+#define ERR_DB2NSF_DAVPOP_BUSY PKG_DB2NSF+100
+ errortext(ERR_DB2NSF_DAVPOP_BUSY, "DB2 Access View Populator is already handling this population request." )
+#define ERR_DB2NSF_XACL_NOT_SUPPORTED PKG_DB2NSF+101
+ errortext(ERR_DB2NSF_XACL_NOT_SUPPORTED, "Extended ACL is not supported for DB2-based nsfs." )
+#define ERR_DB2CREATE_TS PKG_DB2NSF+102
+ errortext(ERR_DB2CREATE_TS, "Tablespace container path is too long.")
+#define ERR_DB2LOAD_ACC_DEF PKG_DB2NSF+103
+ errortext(ERR_DB2LOAD_ACC_DEF, "Failed when loading the access definition.")
+#define ERR_DB2READ_NOTE PKG_DB2NSF+104
+ errortext(ERR_DB2READ_NOTE, "Failed when DB2 was reading a note.")
+#define ERR_DB2WRITE_RNOTE PKG_DB2NSF+105
+ errortext(ERR_DB2WRITE_RNOTE, "Failed when DB2 was writing a row in a note.")
+#define ERR_DB2GET_NSF_SIZE PKG_DB2NSF+106
+ errortext(ERR_DB2GET_NSF_SIZE, "Failed calculating DB2 NSF size.")
+#define ERR_DB2CREATEDB2 PKG_DB2NSF+107
+ errortext(ERR_DB2CREATEDB2, "Failed creating DB2 Database.")
+#define ERR_DB2NSF_WRONGSCHEMA PKG_DB2NSF+108
+ errortext(ERR_DB2NSF_WRONGSCHEMA, "DB2 Database has the incorrect schema level and cannot be used by this server." )
+#define ERR_DB2ACC_CN_NAME PKG_DB2NSF+109
+ errortext(ERR_DB2ACC_CN_NAME, "Failed to obtain full canonical name from person document." )
+#define ERR_DB2ACC_DB2_NAME PKG_DB2NSF+110
+ errortext(ERR_DB2ACC_DB2_NAME, "Failed to obtain DB2 account name from person document." )
+#define ERR_DB2_MULTIPLENAMES PKG_DB2NSF+111
+ errortext(ERR_DB2_MULTIPLENAMES, "Invalid DB2 user name mapping. Multiple Notes users mapped to a single DB2 user are not allowed. Contact your administrator.")
+#define ERR_DB2_DB2ACCESSMAPPEDERR PKG_DB2NSF+112
+ errortext(ERR_DB2_DB2ACCESSMAPPEDERR, "A DB2 Access Error occurred. Server log will contain more information.")
+#define ERR_DB2NSF_DB2_CFG_SET PKG_DB2NSF+113
+ errortext(ERR_DB2NSF_DB2_CFG_SET, "Error setting configuration parms for DB2 database." )
+#define ERR_DB2NSF_FORMAT PKG_DB2NSF+114
+ errortext(ERR_DB2NSF_FORMAT, "%s %s %s: %s - %s - %s" )
+
+/* there may be some available PKG_DB2NSF offsets above... */
+/* this is the *current* max; PKG_DB2NSF offsets range from 0 to 255 */
+#define ERR_DB2NSF_MAX PKG_DB2NSF+115
+ errortext(ERR_DB2NSF_MAX, "This is the last error message in the DB2NSF error range")
+
+/* #endif */
+
+/* End of Error Codes */
+
+/* Formula Compiler Error Codes */
+
+#define ERR_FORMULA_COMPILATION PKG_FORMULA+1
+ errortext(ERR_FORMULA_COMPILATION, "Formula Error")
+#define ERR_INVALID_OPERATOR PKG_FORMULA+2
+ errortext(ERR_INVALID_OPERATOR, "Invalid operator")
+#define ERR_INVALID_ARG_TYPE PKG_FORMULA+3
+ errortext(ERR_INVALID_ARG_TYPE, "Invalid type of argument")
+#define ERR_TOO_MANY_ARGS PKG_FORMULA+4
+ errortext(ERR_TOO_MANY_ARGS, "Too many arguments for @Function")
+#define ERR_FN_OR_OP_EXPECTED PKG_FORMULA+5
+ errortext(ERR_FN_OR_OP_EXPECTED, "@Function or operator expected, or @Function does not require an argument")
+#define ERR_INSUFFICIENT_ARGS PKG_FORMULA+6
+ errortext(ERR_INSUFFICIENT_ARGS, "Insufficient arguments for @Function")
+#define ERR_NOT_UNARY PKG_FORMULA+7
+ errortext(ERR_NOT_UNARY, "Inappropriate (unary) usage of an operator")
+#define ERR_NOT_BINARY PKG_FORMULA+8
+ errortext(ERR_NOT_BINARY, "Inappropriate (binary) usage of an operator")
+#define ERR_NESTED_ASSIGN PKG_FORMULA+9
+ errortext(ERR_NESTED_ASSIGN,"Assignment operators must not be preceded by other operators")
+#define ERR_PREMATURE_EOI PKG_FORMULA+10
+ errortext(ERR_PREMATURE_EOI,"Formula incomplete")
+#define ERR_OP_EXPECTED PKG_FORMULA+11
+ errortext(ERR_OP_EXPECTED, "An operator or semicolon was expected but none was encountered")
+#define ERR_INVALID_FORMULA PKG_FORMULA+12
+ errortext(ERR_INVALID_FORMULA, "Invalid formula structure")
+#define ERR_PAREN_EXPECTED PKG_FORMULA+13
+ errortext(ERR_PAREN_EXPECTED, "Left parenthesis expected")
+#define ERR_EXTRA_RPAREN PKG_FORMULA+14
+ errortext(ERR_EXTRA_RPAREN, "Extra right parenthesis")
+#define ERR_MISSING_RPAREN PKG_FORMULA+15
+ errortext(ERR_MISSING_RPAREN, "Missing right parenthesis")
+#define ERR_ASSIGNMENT_POS PKG_FORMULA+16
+ errortext(ERR_ASSIGNMENT_POS, "FIELD must be followed by a variable name and :=")
+#define ERR_ASSIGNMENT_TARGET PKG_FORMULA+17
+ errortext(ERR_ASSIGNMENT_TARGET, ":= must be immediately preceded by a field or variable name")
+#define ERR_ASSIGNMENT_MODIFIER PKG_FORMULA+18
+ errortext(ERR_ASSIGNMENT_MODIFIER, "Only ENVIRONMENT, DEFAULT, or FIELD can be used as a modifier to :=")
+#define ERR_MISSING_ASS_SEP PKG_FORMULA+19
+ errortext(ERR_MISSING_ASS_SEP, "Missing semicolon")
+#define ERR_REM_FORMAT PKG_FORMULA+20
+ errortext(ERR_REM_FORMAT, "REM must be followed by a quoted string containing the remark.")
+#define ERR_NO_MAIN_EXPRESSION PKG_FORMULA+21
+ errortext(ERR_NO_MAIN_EXPRESSION, "No main or selection expression in formula")
+#define ERR_NOT_A_FUNCTION PKG_FORMULA+22
+ errortext(ERR_NOT_A_FUNCTION, "Passing arguments to a non-@Function or to an @Function that doesn't require arguments")
+#define ERR_UNTERMINATED_LITERAL PKG_FORMULA+23
+ errortext(ERR_UNTERMINATED_LITERAL, "End of formula reached before end of quoted string, date/time or array accessor")
+#define ERR_IF_ODD_ARGS PKG_FORMULA+24
+ errortext(ERR_IF_ODD_ARGS, "@If must have an odd number of arguments")
+#define ERR_ONE_MAIN_EXPR PKG_FORMULA+25
+ errortext(ERR_ONE_MAIN_EXPR, "Only one SELECT expression is allowed")
+#define ERR_NO_FORMULA PKG_FORMULA+26
+ errortext(ERR_NO_FORMULA, "No formula specified")
+#define ERR_UNKNOWN_FUNCTION PKG_FORMULA+27
+ errortext(ERR_UNKNOWN_FUNCTION, "Unknown @Function")
+#define ERR_SUMMITEMS_MERGE PKG_FORMULA+28
+ debugtext(ERR_SUMMITEMS_MERGE, "EXPRESSION_SUMMITEMS present multiple times!")
+#define ERR_DUPLICATE_IVAR PKG_FORMULA+29
+ errortext(ERR_DUPLICATE_IVAR, "Variable already defined")
+#define ERR_ARGS_EXPECTED PKG_FORMULA+30
+ errortext(ERR_ARGS_EXPECTED, "@Function arguments expected but none were supplied")
+#define ERR_BIG_LITERAL PKG_FORMULA+31
+ errortext(ERR_BIG_LITERAL, "Quoted string is too long.")
+#define ERR_MISSING_ASS PKG_FORMULA+32
+ errortext(ERR_MISSING_ASS, ":= must be used in conjunction with FIELD, ENVIRONMENT, or DEFAULT")
+#define ERR_UNKNOWN_FKWD PKG_FORMULA+33
+ errortext(ERR_UNKNOWN_FKWD, "Unknown [KeyWord] for @Function")
+#define ERR_NO_SELECT_EXPR PKG_FORMULA+34
+ errortext(ERR_NO_SELECT_EXPR, "SELECT is inappropriate for this type of formula")
+#define ERR_FORMULA_HIDDEN PKG_FORMULA+35
+ errortext(ERR_FORMULA_HIDDEN, "Formula is hidden")
+#define ERR_IVAR_NAME_TOO_LONG PKG_FORMULA+36
+ errortext(ERR_IVAR_NAME_TOO_LONG, "Variable name is too long")
+#define ERR_EXTRA_BRACKET PKG_FORMULA+37
+ errortext(ERR_EXTRA_BRACKET, "Extra right bracket found")
+#define ERR_FIELD_HAS_NO_VALUE PKG_FORMULA+38
+ errortext(ERR_FIELD_HAS_NO_VALUE, "Field name requires a value")
+
+/* Compute Error Codes */
+
+#define ERR_OP_INVALID PKG_FORMULA+50
+ errortext(ERR_OP_INVALID, "Invalid formula: unknown function/operator")
+#define ERR_OP_UNIMPLEMENTED PKG_FORMULA+51
+ errortext(ERR_OP_UNIMPLEMENTED, "Invalid formula: unimplemented function/operator")
+#define ERR_INVALID_TYPE_FOR_OP PKG_FORMULA+52
+ errortext(ERR_INVALID_TYPE_FOR_OP, "Incorrect data type for operator or @Function")
+#define ERR_ARGS_INVALID PKG_FORMULA+53
+ errortext(ERR_ARGS_INVALID, "Invalid formula format: bad number of arguments")
+#define ERR_FORMULA_GENERATED PKG_FORMULA+54
+ errortext(ERR_FORMULA_GENERATED, "ERROR specified in formula")
+#define ERR_STRING_TOO_LONG PKG_FORMULA+55
+ errortext(ERR_STRING_TOO_LONG, "String values cannot be longer than 65535 bytes")
+#define ERR_NO_MAIN_RESULT PKG_FORMULA+56
+ errortext(ERR_NO_MAIN_RESULT, "unable to compute formula value")
+#define ERR_USERNAME PKG_FORMULA+57
+ errortext(ERR_USERNAME, "USERNAME is not configured properly")
+#define ERR_SUBSET PKG_FORMULA+58
+ errortext(ERR_SUBSET, "The second argument to @Subset must not be zero")
+#define ERR_FORMULA_EXEC PKG_FORMULA+59
+ errortext(ERR_FORMULA_EXEC, "Indirect Formula Computation not allowed")
+#define ERR_TEXT_EXPECTED PKG_FORMULA+60
+ errortext(ERR_TEXT_EXPECTED, "Incorrect data type for operator or @Function: Text expected")
+#define ERR_NUMBER_EXPECTED PKG_FORMULA+61
+ errortext(ERR_NUMBER_EXPECTED, "Incorrect data type for operator or @Function: Number expected")
+#define ERR_TIME_EXPECTED PKG_FORMULA+62
+ errortext(ERR_TIME_EXPECTED, "Incorrect data type for operator or @Function: Time/Date expected")
+#define ERR_NTD_EXPECTED PKG_FORMULA+63
+ errortext(ERR_NTD_EXPECTED, "Incorrect data type: Text, Number, or Time/Date expected")
+#define ERR_DATETIME_FMT PKG_FORMULA+64
+ errortext(ERR_DATETIME_FMT, "The @Date and @Time functions must have exactly 1, 3, or 6 arguments.")
+#define ERR_BINOP_TYPES PKG_FORMULA+65
+ errortext(ERR_BINOP_TYPES, "Comparison operators must be supplied two values of the same data type.")
+#define ERR_NONAMES PKG_FORMULA+66
+ errortext(ERR_NONAMES, "This view is obsolete and requires missing field list. Please edit and re-save the view.")
+#define ERR_COMPUTE_LOCALMEM PKG_FORMULA+67
+ errortext(ERR_COMPUTE_LOCALMEM, "Formula or value requires too much memory")
+#define ERR_COMPUTE_FULL PKG_FORMULA+68
+ errortext(ERR_COMPUTE_FULL, "Too many concurrent formula evaluations; please retry")
+#define ERR_COMPUTE_EXTENSION PKG_FORMULA+69
+ errortext(ERR_COMPUTE_EXTENSION,"Unknown @Function Extension")
+#define ERR_KEYWORD_EXPECTED PKG_FORMULA+70
+ errortext(ERR_KEYWORD_EXPECTED, "Incorrect data type for operator or @Function: [KeyWord] expected")
+#define ERR_KEYWORD_CONTEXT PKG_FORMULA+71
+ errortext(ERR_KEYWORD_CONTEXT, "The specified [KeyWord] is not appropriate when used with this @Function")
+#define ERR_PROMPT PKG_FORMULA+72
+ errortext(ERR_PROMPT, "The first argument to @Prompt must be between 1 and 6")
+#define ERR_TOTIME PKG_FORMULA+73
+ errortext(ERR_TOTIME, "The value cannot be converted to a Time/Date.")
+#define ERR_UNAVAILABLE PKG_FORMULA+74
+ internaltext(ERR_UNAVAILABLE, "formula has encountered @DeleteField or @Unavailable")
+#define ERR_TONUMBER PKG_FORMULA+75
+ errortext(ERR_TONUMBER, "The value cannot be converted to a Number.")
+#define ERR_GETDOCFIELD_NOTENOTFOUND PKG_FORMULA+76
+ errortext(ERR_GETDOCFIELD_NOTENOTFOUND, "Document could not be found.")
+#define ERR_COMPUTE_FIELD_TOO_BIG PKG_FORMULA+77
+ errortext(ERR_COMPUTE_FIELD_TOO_BIG,"Fields referenced or generated by a formula may not exceed 20,000 bytes.")
+#define ERR_ARCHIVE_NO_ARCH_CRITERA PKG_FORMULA+78
+ errortext(ERR_ARCHIVE_NO_ARCH_CRITERA,"No archive criteria found")
+#define ERR_DESCENDANTS PKG_FORMULA+79
+ errortext(ERR_DESCENDANTS,"This database must be compacted to support the use of @AllChildren or @AllDescendants in a formula.")
+#define ERR_PICK_LIST_STYLE PKG_FORMULA+80
+ errortext(ERR_PICK_LIST_STYLE, "The first argument to @PickList must specify a valid @PickList style.")
+#define ERR_STRING_BADUNID PKG_FORMULA+81
+ errortext(ERR_STRING_BADUNID, "Invalid UNID; UNID must be a 32-digit hex string.")
+#define ERR_ABSTRACT_BADSIZE PKG_FORMULA+82
+ errortext(ERR_ABSTRACT_BADSIZE, "The buffer size argument of @Abstract must be greater than zero")
+#define ERR_EXPLODE_BADRANGE PKG_FORMULA+83
+ errortext(ERR_EXPLODE_BADRANGE, "The time-date range argument of @Explode spans too many days")
+#define ERR_COMPUTE_LENGTH_WORD PKG_FORMULA+84
+ errortext(ERR_COMPUTE_LENGTH_WORD, "The result of a computation cannot exceed 65535 bytes")
+#define ERR_ADMIN_SELECTION PKG_FORMULA+85
+ errortext(ERR_ADMIN_SELECTION, "The currently selected note is not from the correct view.")
+#define ERR_URLHISTORY PKG_FORMULA+86
+ errortext(ERR_URLHISTORY, "The first argument to @URLHistory must be between 1 and 5")
+#define ERR_ADMIN_NO_REQ_FIELD PKG_FORMULA+87
+ errortext(ERR_ADMIN_NO_REQ_FIELD, "A selected note is missing a required field and cannot be acted upon by the Administration Process.")
+#define ERR_FUNCTION_CONTEXT PKG_FORMULA+88
+ errortext(ERR_FUNCTION_CONTEXT, "@Function is not valid in this context")
+#define ERR_FUNCTION_NOUICOMMANDS PKG_FORMULA+89
+ errortext(ERR_FUNCTION_NOUICOMMANDS, "@Commands and other UI functions are not allowed in this context")
+#define ERR_NSF_COMPUTE_NOASSIGN PKG_FORMULA+90
+ errortext(ERR_NSF_COMPUTE_NOASSIGN, "You are not allowed to modify fields in this context.")
+#define ERR_NSF_COMPUTE_NOSIDE PKG_FORMULA+91
+ errortext(ERR_NSF_COMPUTE_NOSIDE, "Formulas with side-effects are not allowed in this context.")
+#define LOG_MAILSEND_NO_MATCH PKG_FORMULA+92
+ errortext(LOG_MAILSEND_NO_MATCH, "Unable to send mail to %s, no match found in Name & Address Book(s)")
+#define LOG_MAILSEND_AMBIG_MATCH PKG_FORMULA+93
+ errortext(LOG_MAILSEND_AMBIG_MATCH, "Unable to send mail to %s, multiple matches found in Name & Address Book(s)")
+#define ERR_TOO_MANY_ELEMENTS PKG_FORMULA+94
+ errortext(ERR_TOO_MANY_ELEMENTS, "List values cannot have more than 65535 elements when storing in an item")
+#define ERR_ARRAY_INDEX PKG_FORMULA+95
+ errortext(ERR_ARRAY_INDEX, "Array index out of bounds")
+#define ERR_EVAL_RECURSION_DEPTH PKG_FORMULA+96
+ errortext(ERR_EVAL_RECURSION_DEPTH, "@Eval has exceeded the maximum number of recursive calls.")
+#define ERR_COMPUTE_RECURSE_LIMIT PKG_FORMULA+97
+ errortext(ERR_COMPUTE_RECURSE_LIMIT, "Too many recursive formula evaluations.")
+#define ERR_COMPUTE_TIMEOUT PKG_FORMULA+98
+ errortext(ERR_COMPUTE_TIMEOUT, "The formula has exceeded the maximum execution time.")
+#define ERR_COMPUTE_MEMORY_MAX PKG_FORMULA+99
+ errortext(ERR_COMPUTE_MEMORY_MAX, "The formula has exceeded the maximum allowable memory usage.")
+#define ERR_ARCHIVE_SRC_IS_DEST PKG_FORMULA+100
+ errortext(ERR_ARCHIVE_SRC_IS_DEST,"You are not allowed to archive to and from the same database.")
+#define ERR_ARC_NO_PROFILE PKG_FORMULA+101
+ errortext(ERR_ARC_NO_PROFILE, "Archive profile note not found.")
+
+#define ERR_ARCHIVE_NOT_MIN_SERVER_VER PKG_FORMULA+102
+ errortext(ERR_ARCHIVE_NOT_MIN_SERVER_VER, "This action is not supported on this version of the Domino Server.")
+#define ERR_ARCHIVE_FIELDS_NOT_SIGNED PKG_FORMULA+103
+ errortext(ERR_ARCHIVE_FIELDS_NOT_SIGNED, "All of the required fields in your archive settings have not been properly signed. Please re-save your archive settings to correct this problem.")
+
+#define ERR_ARCHIVE_FIELDS_NOT_FOUND PKG_FORMULA+104
+ errortext(ERR_ARCHIVE_FIELDS_NOT_FOUND, "All of the required fields in your archive settings have not been found. Please re-save your archive settings to correct this problem.")
+#define ERR_COMPUTE_CHARSET_CONVERSION PKG_FORMULA+105
+ errortext(ERR_COMPUTE_CHARSET_CONVERSION, "Error converting string from LMBCS to UNICODE")
+#define ERR_ARCHIVE_NOT_ON_SRC_SRV PKG_FORMULA+106
+ errortext(ERR_ARCHIVE_NOT_ON_SRC_SRV, "The source server specified in your archive settings is not this server. Archiving will not be performed.")
+#define ERR_CORRUPTED_COMPUTE_INSTANCE PKG_FORMULA+107
+ errortext(ERR_CORRUPTED_COMPUTE_INSTANCE, "Internal error: Corrupted formula instance detected")
+#define ERR_COMPUTE_STACK_OVERFLOW PKG_FORMULA+108
+ errortext(ERR_COMPUTE_STACK_OVERFLOW, "Stack overflow evaluating formula. Try simplifying the formula.")
+#define ERR_ARCHIVE_CRIT_NO_SUP_ON_SRC PKG_FORMULA+109
+ errortext(ERR_ARCHIVE_CRIT_NO_SUP_ON_SRC, "'Older than' selection criteria is not supported on the server chosen to archive from, because its version is prior to 7.0. One or more enabled criteria use this selection criteria and will not be executed.")
+
+/* Note PKG_FORMULA is limited to 0 - 127 */
+
+/* Note Storage File Error Code Definitions */
+
+#define ERR_RM_FAIL_RESTART_OPEN PKG_NSF+0
+ errortext(ERR_RM_FAIL_RESTART_OPEN, "Recovery Manager: Logged Database cannot be accessed during Restart/Media Recovery Phase")
+#define ERR_NOT_NSF PKG_NSF+1
+ errortext(ERR_NOT_NSF, "File is not a database")
+#define ERR_IGNORE_NOTE PKG_NSF+2
+ internaltext(ERR_IGNORE_NOTE, "ignore this note during copy")
+#define ERR_WRITEONLY PKG_NSF+3
+ errortext(ERR_WRITEONLY,"Write-only database")
+#define ERR_READONLY PKG_NSF+4
+ errortext(ERR_READONLY, "Read-only database")
+#define ERR_CONFLICT PKG_NSF+5
+ errortext(ERR_CONFLICT, "Someone else modified this document at the same time")
+#define ERR_STRUCT PKG_NSF+6
+ errortext(ERR_STRUCT, "The program cannot interpret this file due to an invalid structure")
+#define ERR_DOC_STRUCT PKG_NSF+7
+ errortext(ERR_DOC_STRUCT,"Document has invalid structure")
+#define ERR_VALUE_FLAGS PKG_NSF+8
+ internaltext(ERR_VALUE_FLAGS,"Invalid combination of flags")
+#define ERR_BUCKET_FULL PKG_NSF+9
+ errortext(ERR_BUCKET_FULL,"The text fields of the document are too large to be stored. Please reduce their size.")
+#define ERR_UNK PKG_NSF+10
+ internaltext(ERR_UNK, "UNK does not exist")
+#define ERR_BUCKET PKG_NSF+11
+ internaltext(ERR_BUCKET,"Invalid pos, not in BUCKET areas")
+#define ERR_BUCKET_NOT_IN_MEM PKG_NSF+12
+ internaltext(ERR_BUCKET_NOT_IN_MEM, "(bucket not found)")
+#define ERR_NO_FILE_SHARING PKG_NSF+13
+ errortext(ERR_NO_FILE_SHARING, "This database is currently being used by someone else. In order to share a Notes database, all users must use a Domino Server instead of a File Server.")
+#define ERR_NSF_NOTE_POOLFULL PKG_NSF+14
+ errortext(ERR_NSF_NOTE_POOLFULL, "Insufficient memory - Open Note Pool is full.")
+#define ERR_NOTE_EMPTY PKG_NSF+15
+ errortext(ERR_NOTE_EMPTY, "Document has nothing to undelete")
+#define ERR_NO_MORE_MATCHES PKG_NSF+16
+ internaltext(ERR_NO_MORE_MATCHES, "(Search status - no more to do)")
+#define ERR_FORMULA PKG_NSF+17
+ errortext(ERR_FORMULA, "Invalid formula format")
+#define ERR_RM_PARTIAL_WRITE_DETECTED PKG_NSF+18
+ errortext(ERR_RM_PARTIAL_WRITE_DETECTED, "Recovery Manager: Partial Write detected during Redo, marking database Corrupt.")
+#define ERR_OPERATOR PKG_NSF+19
+ errortext(ERR_OPERATOR, "Invalid operator for data type")
+#define ERR_NOTE_ID PKG_NSF+20
+ errortext(ERR_NOTE_ID, "Invalid document identifier")
+#define ERR_NEW_NAME_KEY PKG_NSF+21
+ internaltext(ERR_NEW_NAME_KEY,"New name key being added")
+#define ERR_EVENT_TOO_BIG PKG_NSF+22
+ apitext(ERR_EVENT_TOO_BIG,"Event struct size plus data is bigger than 256 bytes")
+#define DBD_NOCACHE_STRING PKG_NSF+23
+ stringtext(DBD_NOCACHE_STRING,"NoCache")
+#define ERR_DBD_TOO_MANY_DRIVERS PKG_NSF+24
+ errortext(ERR_DBD_TOO_MANY_DRIVERS,"You may not use that many different database drivers in any one application.")
+#define ERR_NSF_VERSION PKG_NSF+25
+ errortext(ERR_NSF_VERSION, "Invalid NSF version")
+#define ERR_SEARCH_FLAGS PKG_NSF+26
+ apitext(ERR_SEARCH_FLAGS, "Search flags are incompatible")
+#define ERR_FULL_RECALC PKG_NSF+27
+ internaltext(ERR_FULL_RECALC, "(full recalc necessary)")
+#define ERR_DIRECTORY PKG_NSF+28
+ errortext(ERR_DIRECTORY, "This function is inappropriate for file system directories.")
+#define ERR_NOT_DIRECTORY PKG_NSF+29
+ errortext(ERR_NOT_DIRECTORY, "This function is only appropriate for directories.")
+#define ERR_ITEM_DEF_TYPE PKG_NSF+30
+ internaltext(ERR_ITEM_DEF_TYPE, "Cannot add item def - type unknown")
+#define ERR_BUCKET_STRUCT PKG_NSF+31
+ internaltext(ERR_BUCKET_STRUCT, "Invalid structure in bucket")
+#define ERR_NOT_LOCAL PKG_NSF+32
+ apitext(ERR_NOT_LOCAL, "Function is not supported for remote databases")
+#define ERR_DUP_SUMM_ITEM PKG_NSF+33
+ errortext(ERR_DUP_SUMM_ITEM, "Duplicate field in document")
+#define ERR_ITEM_NOT_FOUND PKG_NSF+34
+ apitext(ERR_ITEM_NOT_FOUND,"Note item not found")
+#define ERR_ENTRY_NOT_FOUND PKG_NSF+35
+ apitext(ERR_ENTRY_NOT_FOUND, "Cache entry not found")
+#define ERR_FMARKER PKG_NSF+36
+ internaltext(ERR_FMARKER,"Missing formula marker in merge formula")
+#define ERR_NOTE_DELETED PKG_NSF+37
+ errortext(ERR_NOTE_DELETED, "Document has been deleted")
+#define ERR_UNK_TYPE PKG_NSF+38
+ errortext(ERR_UNK_TYPE, "Field type (UNK) stored in document is invalid")
+#define ERR_INVALID_NOTE PKG_NSF+39
+ errortext(ERR_INVALID_NOTE, "Invalid or nonexistent document")
+#define ERR_AUXCLASS PKG_NSF+40
+ internaltext(ERR_AUXCLASS, "Invalid usage of Auxiliary Class Field")
+#define ERR_NSFOPEN PKG_NSF+41
+ errortext(ERR_NSFOPEN, "Database is currently in use by you or another user")
+#define ERR_NOTE_NOT_EMPTY PKG_NSF+42
+ internaltext(ERR_NOTE_NOT_EMPTY,"note pool not deleted because it is not empty")
+#define ERR_NOTE_NONDISCARDABLE PKG_NSF+43
+ internaltext(ERR_NOTE_NONDISCARDABLE,"note pool not discardable")
+#define ERR_NOTE_DISCARDED PKG_NSF+44
+ internaltext(ERR_NOTE_DISCARDED,"note pool has been discarded")
+#define ERR_NSF_INFO_SIZE PKG_NSF+45
+ errortext(ERR_NSF_INFO_SIZE,"Database title is too large; please use a shorter title.")
+#define ERR_NSF_IN_USE PKG_NSF+46
+ errortext(ERR_NSF_IN_USE,"Cannot do that to an NSF that may be in use")
+#define ERR_INVALID_NAME PKG_NSF+47
+ errortext(ERR_INVALID_NAME,"Remote pathname must be relative to Data Directory")
+#define ERR_NSF_POOLFULL PKG_NSF+48
+ errortext(ERR_NSF_POOLFULL, "Insufficient memory - NSF pool is full.")
+#define ERR_SUMMARY_TOO_BIG PKG_NSF+49
+ errortext(ERR_SUMMARY_TOO_BIG,"Field is too large (32K) or View's column & selection formulas are too large")
+#define ERR_DBCLASS PKG_NSF+50
+ errortext(ERR_DBCLASS, "Invalid NSF Class")
+#define ERR_TOOHUGE PKG_NSF+51
+ errortext(ERR_TOOHUGE, "Object too large to allocate given file params")
+#define ERR_NIFNOTE PKG_NSF+52
+ errortext(ERR_NIFNOTE, "Cannot create document in this type of file")
+#define ERR_NOFILESPACE PKG_NSF+53
+ errortext(ERR_NOFILESPACE,"Cannot allocate database object - database space exhausted")
+#define ERR_BADOBJECT PKG_NSF+54
+ internaltext(ERR_BADOBJECT,"Invalid Object ID")
+#define ERR_TRANSLOG_MISSING_SEGS PKG_NSF+55
+ errortext(ERR_TRANSLOG_MISSING_SEGS, "Missing or damaged transaction log segment.")
+#define ERR_NSF_CORRUPT PKG_NSF+56
+ errortext(ERR_NSF_CORRUPT,"Database is corrupt -- Cannot allocate space")
+#define ERR_SOURCE_DB_CLOSED PKG_NSF+57
+ errortext(ERR_SOURCE_DB_CLOSED,"Cannot access the document's original database to copy attachments")
+#define ERR_ENCODING PKG_NSF+58
+ errortext(ERR_ENCODING,"Unknown type of compression technique")
+#define ERR_NO_CLIENT PKG_NSF+59
+ debugtext(ERR_NO_CLIENT,"Remote operations not allowed in standalone programs")
+#define ERR_NO_MODIFIED_NOTES PKG_NSF+60
+ errortext(ERR_NO_MODIFIED_NOTES,"No documents have been modified since specified time.")
+#define ERR_NO_STAMPED_NOTES PKG_NSF+61
+ errortext(ERR_NO_STAMPED_NOTES,"No documents were categorized")
+#define ERR_NO_ITEM_IN_NOTE PKG_NSF+62
+ internaltext(ERR_NO_ITEM_IN_NOTE,"(no such item in document)")
+#define ERR_ITEM_DATATYPE PKG_NSF+63
+ errortext(ERR_ITEM_DATATYPE,"field in note has wrong datatype")
+#define ERR_ITEM_LENGTH PKG_NSF+64
+ errortext(ERR_ITEM_LENGTH,"Field length stored in document is incorrect")
+#define ERR_BAD_PARAM PKG_NSF+65
+ internaltext(ERR_BAD_PARAM, "(invalid usage - see NSF documentation)")
+#define ERR_SPECIAL_ID PKG_NSF+66
+ errortext(ERR_SPECIAL_ID, "Special database object cannot be located")
+#define ERR_INVALID_ITEMLEN PKG_NSF+67
+ errortext(ERR_INVALID_ITEMLEN, "Document is damaged or obsolete (incorrect field length)")
+#define ERR_INVALID_ITEMTYPE PKG_NSF+68
+ errortext(ERR_INVALID_ITEMTYPE, "Document is damaged or obsolete (unrecognized data type)")
+#define ERR_COMPILER_LOAD PKG_NSF+69
+ errortext(ERR_COMPILER_LOAD, "Insufficient memory to load Formula Compiler/Decompiler, or cannot locate the appropriate program file")
+#define ERR_NOACCESS PKG_NSF+70
+ errortext(ERR_NOACCESS, "You are not authorized to perform that operation")
+#define ERR_NO_HELP_INDEX PKG_NSF+71
+ errortext(ERR_NO_HELP_INDEX, "Help Index cannot be located")
+#define ERR_HELP_SECTION PKG_NSF+72
+ errortext(ERR_HELP_SECTION, "Notes can't automatically display Help on this section, but you can open the Notes Help database and search its Index.")
+#define ERR_HELP_CATEGORY PKG_NSF+73
+ errortext(ERR_HELP_CATEGORY, "Notes can't automatically display Help on this subject, but you can open the Notes Help database and search its Index. For Help on server administration, add and open the Domino Administrator Help database.")
+#define ERR_HELP_TOOBIG PKG_NSF+74
+ internaltext(ERR_HELP_TOOBIG, "(help string too large)")
+#define ERR_OPEN_FILE PKG_NSF+75
+ errortext(ERR_OPEN_FILE, "You are not authorized to access that database")
+#define ERR_DEL_FILE PKG_NSF+76
+ errortext(ERR_DEL_FILE, "You are not authorized to delete that database")
+#define ERR_UPDATE_CLASS PKG_NSF+77
+ internaltext(ERR_UPDATE_CLASS, "(you cannot change the class of a note once stored)")
+#define ERR_NOT_AUTHOR PKG_NSF+78
+ errortext(ERR_NOT_AUTHOR, "You cannot update or delete the document(s) since you are not listed as an allowable Author for this document")
+#define ERR_OBJECT_TRUNCATED PKG_NSF+79
+ errortext(ERR_OBJECT_TRUNCATED, "File object is truncated - file may have been damaged")
+#define ERR_DBFREE_ARGS PKG_NSF+80
+ debugtext(ERR_DBFREE_ARGS, "(DbFree: Invalid Disk Position/Size)")
+#define ERR_NTUPDATE_0OID PKG_NSF+81
+ debugtext(ERR_NTUPDATE_0OID,"(NSFNoteUpdate: 0 OID field!)")
+#define ERR_NO_HELP_LINKS PKG_NSF+82
+ errortext(ERR_NO_HELP_LINKS,"Help Indexing Information is not available")
+#define ERR_FMARKERSRC PKG_NSF+83
+ apitext(ERR_FMARKERSRC, "Formula markers not allowed in merge source formula")
+#define ERR_EXISTS_DIR PKG_NSF+84
+ errortext(ERR_EXISTS_DIR, "Cannot create database - the specified filename is a directory")
+#define ERR_NTCREATE_LICENSE PKG_NSF+85
+ errortext(ERR_NTCREATE_LICENSE, "Cannot create a document without a valid user license")
+#define ERR_CREATE_FILE PKG_NSF+86
+ errortext(ERR_CREATE_FILE, "You are not authorized to create new databases on this server")
+#define ERR_CREATE_REP_FILE PKG_NSF+87
+ errortext(ERR_CREATE_REP_FILE,"You are not authorized to create new replica databases on this server")
+#define ERR_DIGEST_LENGTH PKG_NSF+88
+ debugtext(ERR_DIGEST_LENGTH,"Message digest overflowed buffer!")
+#define ERR_NOTE_NOT_SIGNED PKG_NSF+89
+ errortext(ERR_NOTE_NOT_SIGNED,"Document is not signed.")
+#define ERR_NOTE_INVSIG1 PKG_NSF+90
+ errortext(ERR_NOTE_INVSIG1, "Signature on document is invalid (digest length)")
+#define ERR_NOTE_INVSIG2 PKG_NSF+91
+ errortext(ERR_NOTE_INVSIG2, "Document has been modified or corrupted since signed! (data)")
+#define ERR_NOTE_INVSIG3 PKG_NSF+92
+ errortext(ERR_NOTE_INVSIG3,"You and signer have no Certificates in common; signer cannot be assumed to be trustworthy.")
+#define ERR_NOTE_INVSIG4 PKG_NSF+93
+ errortext(ERR_NOTE_INVSIG4, "Signature on document is invalid (certifier digest length)")
+#define ERR_NOTE_INVSIG5 PKG_NSF+94
+ errortext(ERR_NOTE_INVSIG5, "Signature has been modified or corrupted since document was signed!")
+#define ERR_NOTE_INVSIG6 PKG_NSF+95
+ errortext(ERR_NOTE_INVSIG6, "Signature on document is invalid (digest length)")
+#define ERR_NOTE_INVSIG7 PKG_NSF+96
+ errortext(ERR_NOTE_INVSIG7, "Document has been modified or corrupted since signed! (signature)")
+#define ERR_NOTE_BADATTSIGN PKG_NSF+97
+ errortext(ERR_NOTE_BADATTSIGN, "Attachment has been modified or corrupted since signed!")
+#define ERR_NOTE_NOT_SEALED PKG_NSF+98
+ errortext(ERR_NOTE_NOT_SEALED, "Document is not encrypted.")
+#define ERR_NOTE_ALREADY_SEALED PKG_NSF+99
+ errortext(ERR_NOTE_ALREADY_SEALED,"You cannot encrypt a document that is already encrypted.")
+#define ERR_NOEXTRACT_ENCRYPTED PKG_NSF+100
+ errortext(ERR_NOEXTRACT_ENCRYPTED,"You must supply the bulk decryption key in order to extract this file object.")
+#define ERR_NOT_SEALED_FOR_YOU PKG_NSF+101
+ errortext(ERR_NOT_SEALED_FOR_YOU,"You cannot access portions of this document because it is encrypted and was not intended for you, or you do not have the decryption key.")
+#define ERR_ALREADY_LOCKED PKG_NSF+102
+ errortext(ERR_ALREADY_LOCKED,"Database is currently being replicated or copied elsewhere")
+#define LOG_OVERDBSIZEWARNTHRESHOLD PKG_NSF+103
+ errortext(LOG_OVERDBSIZEWARNTHRESHOLD, "Warning, database %s has exceeded its warning size threshold of %d KB by %k.")
+#define ERR_DB_NOT_OPEN PKG_NSF+104
+ errortext(ERR_DB_NOT_OPEN,"Specified database is not currently open")
+#define ERR_STS_STRINGTOOLONG PKG_NSF+105
+ errortext(ERR_STS_STRINGTOOLONG,"Text search string is too long")
+#define ERR_NOACTIVITY PKG_NSF+106
+ errortext(ERR_NOACTIVITY, "User activity recording is disabled")
+#define ERR_FIELDNAME_TOO_LONG PKG_NSF+107
+ errortext(ERR_FIELDNAME_TOO_LONG,"Field names must be 250 characters or less")
+#define ERR_COMPHALT1 PKG_NSF+108
+ debugtext(ERR_COMPHALT1, "(not enough items written)")
+#define ERR_COMPHALT2 PKG_NSF+109
+ debugtext(ERR_COMPHALT2, "(incorrect length written)")
+#define ERR_COMPHALT3 PKG_NSF+110
+ debugtext(ERR_COMPHALT3, "(unevaluated default summary value)")
+#define ERR_NO_DELETED_NOTES PKG_NSF+111
+ errortext(ERR_NO_DELETED_NOTES,"No documents were deleted")
+#define ERR_DATA_ONLY PKG_NSF+112
+ internaltext(ERR_DATA_ONLY, "(only data notes may be deleted using this call)")
+#define ERR_REMOTE_UNID PKG_NSF+113
+ internaltext(ERR_REMOTE_UNID,"(you cannot obtain the UNIDs using this call to remote databases)")
+#define ERR_MISSING_PRIVS PKG_NSF+114
+ errortext(ERR_MISSING_PRIVS,"All privileges are required for this operation")
+#define ERR_INVALID_ITEMUNK PKG_NSF+115
+ errortext(ERR_INVALID_ITEMUNK, "Document is damaged or obsolete (unrecognized field)")
+#define ERR_FIXUP_DOC PKG_NSF+116
+ errortext(ERR_FIXUP_DOC, "Document NT%08lx in database %p is damaged: %e")
+#define ERR_FIXUP_DOC_DELETED PKG_NSF+117
+ errortext(ERR_FIXUP_DOC_DELETED,"Document (UNID OF%08lx:%08lx-ON%08lx:%08lx) in database %p has been deleted")
+#define ERR_INVALID_UNK_TBL PKG_NSF+118
+ errortext(ERR_INVALID_UNK_TBL, "Field name table (UNK table) is damaged")
+#define ERR_UNK_TBL_REPAIRED PKG_NSF+119
+ errortext(ERR_UNK_TBL_REPAIRED, "Field name table (UNK table) has been repaired")
+#define ERR_NO_NAMED_KEY PKG_NSF+120
+ errortext(ERR_NO_NAMED_KEY, "You cannot access portions of this document because it was encrypted and you do not have any of the keys")
+#define ERR_BAD_KEY_DATA PKG_NSF+121
+ errortext(ERR_BAD_KEY_DATA, "You are unable to decrypt this document because your key is incorrect")
+#define ERR_FIXUP_DOC_ITEM PKG_NSF+122
+ errortext(ERR_FIXUP_DOC_ITEM, "Document NT%08lx in database %p is damaged: %e (Field %s, Datatype %04x)")
+#define ERR_PURGING PKG_NSF+123
+ stringtext(ERR_PURGING, "Releasing unused storage in database %s...")
+#define ERR_PURGING_DOCS PKG_NSF+124
+ stringtext(ERR_PURGING_DOCS, "Purging old documents from database %s...")
+#define ERR_PURGE_QUERY PKG_NSF+125
+ errortext(ERR_PURGE_QUERY, "The Replication Cutoff Date indicates that documents before %z should be purged from the database %s. Would you like it to be done now?")
+#define ERR_ITEM_NAME_HUGE PKG_NSF+126
+ errortext(ERR_ITEM_NAME_HUGE, "You can only Sign documents whose Field names are < 512 bytes.")
+#define ERR_NO_ENCRYPT_FIELDS PKG_NSF+127
+ errortext(ERR_NO_ENCRYPT_FIELDS,"Document does not specify any fields to be encrypted")
+#define ERR_FIXING PKG_NSF+128
+ stringtext(ERR_FIXING, "Performing consistency check on %s...")
+#define ERR_OBJ_GONE PKG_NSF+129
+ errortext(ERR_OBJ_GONE, "Database object has been deleted")
+#define ERR_FORM_DELETED PKG_NSF+130
+ errortext(ERR_FORM_DELETED,"Form has been deleted")
+#define ERR_NULL_ITEM_HANDLE PKG_NSF+131
+ debugtext(ERR_NULL_ITEM_HANDLE,"NSFItemAppendByBLOCKID: bhValue of NULL")
+#define ERR_FIXUP_BUCKET_REPAIRED PKG_NSF+132
+ errortext(ERR_FIXUP_BUCKET_REPAIRED,"Partially-saved document in database %p has been deleted")
+#define ERR_FILEMAX PKG_NSF+133
+ errortext(ERR_FILEMAX, "Database (.nsf) has grown too large; use compact to reduce the file size or use use File New Replica to recreate your file with larger capacity.")
+#define ERR_NSF_CORRUPT2 PKG_NSF+134
+ errortext(ERR_NSF_CORRUPT2,"Database has been corrupted and can't be repaired; cannot open")
+#define ERR_NSF_UNKTBL2BIG PKG_NSF+135
+ errortext(ERR_NSF_UNKTBL2BIG,"Cannot store document - database has too many unique field names. Please set the 'Allow more fields in database' option or ask your administrator to compact the database.")
+#define ERR_FILEMAXV1 PKG_NSF+136
+ errortext(ERR_FILEMAXV1, "Notes Version 1 database (.nsf) has grown larger than 40MB; use File Replication New Replica to recreate your file as a Notes Version 4 database (.nsf) capable of 4GB.")
+#define ERR_DESKMAXV1 PKG_NSF+137
+ errortext(ERR_DESKMAXV1, "Notes Version 1 workspace file (DESKTOP.DSK) has grown larger than 1MB; you can delete DESKTOP.DSK if you wish a new one to be created that is capable of 50MB of private views.")
+#define ERR_DESKMAX PKG_NSF+138
+ errortext(ERR_DESKMAX, "Workspace file (DESKTOP.DSK) has grown too large; remove some of your private views or icons.")
+#define ERR_TBD PKG_NSF+139
+ errortext(ERR_TBD, "Function to-be-defined")
+#define ERR_BTNODE_TOO_SMALL PKG_NSF+140
+ errortext(ERR_BTNODE_TOO_SMALL, "B-tree node too small - Can't hold 3 entries")
+#define ERR_BTNODE_TOO_BIG PKG_NSF+141
+ errortext(ERR_BTNODE_TOO_BIG, "B-tree node is larger than the maximum slot size")
+#define ERR_INVALID_BTREE PKG_NSF+142
+ errortext(ERR_INVALID_BTREE, "B-tree structure is invalid")
+#define ERR_NO_BUFFER PKG_NSF+143
+#ifdef MAC
+ errortext(ERR_NO_BUFFER,"There is not enough memory for a view or database buffer. Please close any unneeded windows. You may also increase Notes' available memory by quitting and choosing 'Get Info...' from the Finder.")
+#else
+ errortext(ERR_NO_BUFFER,"There is not enough memory for a view or database buffer. Increase NSF_BUFFER_POOL_SIZE.")
+#endif
+#define ERR_INVALID_PAGE PKG_NSF+144
+ errortext(ERR_INVALID_PAGE, "Page format is incorrect")
+#define ERR_MAXBTDEPTH PKG_NSF+145
+ errortext(ERR_MAXBTDEPTH, "Maximum depth of b-tree index reached")
+#define ERR_SHARE_CONFLICT PKG_NSF+146
+ errortext(ERR_SHARE_CONFLICT, "Operation can't be performed while container is in use")
+#define ERR_BAD_SNO PKG_NSF+147
+ errortext(ERR_BAD_SNO, "Attempt to use an invalid slot number")
+#define ERR_RM_CANNOT_RECOVER PKG_NSF+148
+ errortext(ERR_RM_CANNOT_RECOVER, "Recovery Manager: Unable to recover DB")
+#define ERR_BAD_DBP PKG_NSF+149
+ errortext(ERR_BAD_DBP, "Attempt to use an invalid database pointer")
+#define ERR_BT_NOTOPEN PKG_NSF+150
+ errortext(ERR_BT_NOTOPEN, "B-tree index has not been opened")
+#define ERR_BAD_PNOVEC PKG_NSF+151
+ errortext(ERR_BAD_PNOVEC, "Invalid PNO vector - position == 0")
+#define ERR_NOTA_IDB PKG_NSF+152
+ debugtext(ERR_NOTA_IDB, "Block is not a IDB")
+#define ERR_NOTA_DBBUF PKG_NSF+153
+ debugtext(ERR_NOTA_DBBUF, "Block is not a DBBUF")
+#define ERR_NOTA_DBBUFCTL PKG_NSF+154
+ debugtext(ERR_NOTA_DBBUFCTL, "Block is not a DBBUFCTL")
+#define ERR_NOTA_DBCONT PKG_NSF+155
+ debugtext(ERR_NOTA_DBCONT, "Block is not a DBCONT")
+#define ERR_FILE_ALLOCATED PKG_NSF+156
+ errortext(ERR_FILE_ALLOCATED, "Container not found - new context allocated")
+#define ERR_NOTA_DBB_HASH PKG_NSF+157
+ debugtext(ERR_NOTA_DBB_HASH, "Block is not a DBB_HASH")
+#define ERR_NO_SPACE PKG_NSF+158
+ errortext(ERR_NO_SPACE, "No space on page for slot")
+#define ERR_INTEGRITY PKG_NSF+159
+ errortext(ERR_INTEGRITY, "The integrity of a database storage container has been lost - the container will be rebuilt.")
+#define ERR_NSF_NOV2 PKG_NSF+160
+ errortext(ERR_NSF_NOV2, "This function cannot be performed in conjunction with a Notes Version 2 Server")
+#define ERR_NSF_INTERRUPT PKG_NSF+161
+ errortext(ERR_NSF_INTERRUPT,"Your connection to the server unexpectedly dropped; please retry the operation")
+#define NSFSTR_LINK_STR1 PKG_NSF+162
+ stringtext(NSFSTR_LINK_STR1,"Database")
+#define NSFSTR_LINK_STR2 PKG_NSF+163
+ stringtext(NSFSTR_LINK_STR2,"View")
+#define NSFSTR_LINK_STR3 PKG_NSF+164
+ stringtext(NSFSTR_LINK_STR3,"Document")
+#define ERR_ALREADY_ALLOC PKG_NSF+165
+ internaltext(ERR_ALREADY_ALLOC, "(RRV already allocated)")
+#define ERR_COMPACT_MODE PKG_NSF+166
+ errortext(ERR_COMPACT_MODE, "Function cannot be performed while database is being compacted")
+#define ERR_DBD_NON_NOTES PKG_NSF+167
+ errortext(ERR_DBD_NON_NOTES,"You may not use that database driver")
+#define NSFSTR_COMPACT_PROGRESS PKG_NSF+168
+ stringtext(NSFSTR_COMPACT_PROGRESS,"Compacting database")
+#define STR_FILTER_NEVER PKG_NSF+169
+ stringtext(STR_FILTER_NEVER,"Never")
+#define STR_FILTER_HOURLY PKG_NSF+170
+ stringtext(STR_FILTER_HOURLY,"hourly")
+#define STR_FILTER_DAILY PKG_NSF+171
+ stringtext(STR_FILTER_DAILY,"daily")
+#define STR_FILTER_WEEKLY PKG_NSF+172
+ stringtext(STR_FILTER_WEEKLY,"weekly")
+#define ERR_OBJECT_LENGTH PKG_NSF+173
+ errortext(ERR_OBJECT_LENGTH,"Document attachment is invalid")
+#define ERR_BUFPOOL_TOO_SMALL PKG_NSF+174
+#ifdef MAC
+ errortext(ERR_BUFPOOL_TOO_SMALL,"Insufficient memory for a view or database buffer. Please close any unneeded windows. You may also increase Notes' available memory by quitting and choosing 'Get Info...' from the Finder.")
+#else
+ errortext(ERR_BUFPOOL_TOO_SMALL,"Insufficient memory for a view or database buffer.")
+#endif
+#define ERR_NSF_CORRUPT_RRVMAP PKG_NSF+175
+ errortext(ERR_NSF_CORRUPT_RRVMAP,"Database is damaged and can't be repaired (RRV buckets bad)")
+#define ERR_HDL_LVL0 PKG_NSF+176
+ errortext(ERR_HDL_LVL0, "Maximum number of concurrently open objects has been exceeded")
+#define ERR_HDL_PARAM PKG_NSF+177
+ errortext(ERR_HDL_PARAM, "No associated pointer to object")
+#define ERR_HDL_NULL PKG_NSF+178
+ errortext(ERR_HDL_NULL, "Null object handle")
+#define ERR_HDL_OOR PKG_NSF+179
+ errortext(ERR_HDL_OOR, "Object handle out of range")
+#define ERR_HDL_DEALLOC PKG_NSF+180
+ errortext(ERR_HDL_DEALLOC, "Object handle is invalid")
+#define ERR_CANNOT_OPEN_NSF PKG_NSF+181
+ errortext(ERR_CANNOT_OPEN_NSF, "File not found or not a Notes database")
+#define ERR_REALLOC_PNOVEC PKG_NSF+182
+ errortext(ERR_REALLOC_PNOVEC, "Unable to enlarge a view container. Increase NSF_BUFFER_POOL_SIZE.")
+#define ERR_BAD_PNO PKG_NSF+183
+ errortext(ERR_BAD_PNO, "Attempt to use an invalid page number")
+#define ERR_DUPLICATE_UNID PKG_NSF+184
+ errortext(ERR_DUPLICATE_UNID,"Database already contains a document with this ID (UNID)")
+#define ERR_DB_NOT_LOADED PKG_NSF+185
+ internaltext(ERR_DB_NOT_LOADED,"(DbDemandLoadByHandle must be called)")
+#define ERR_FIXUP_UNID_CHANGED PKG_NSF+186
+ errortext(ERR_FIXUP_UNID_CHANGED,"Document NT%08lx in database %p has been assigned a new UNID")
+#define ERR_NO_UNID_INDEX PKG_NSF+187
+ internaltext(ERR_NO_UNID_INDEX,"(UNID index has not been created or opened)")
+#define ERR_NSF_CORRUPT_UNIDIDX PKG_NSF+188
+ errortext(ERR_NSF_CORRUPT_UNIDIDX,"Database is damaged and can't be repaired (UNID index)")
+#define ERR_FIXUP_REBUILD_UNID PKG_NSF+189
+ errortext(ERR_FIXUP_REBUILD_UNID,"Rebuild UNID index in database %p")
+#define ERR_INVALID_EHASH PKG_NSF+190
+ errortext(ERR_INVALID_EHASH, "Extendible hash index structure is invalid")
+#define ERR_USERDATA_TRUNC PKG_NSF+191
+ errortext(ERR_USERDATA_TRUNC, "Container user data buffer will be truncated")
+#define ERR_EH_CORRUPT PKG_NSF+192
+ errortext(ERR_EH_CORRUPT, "Extendible hash index is corrupt and can't be used")
+#define ERR_CANT_CHANGE_UNID PKG_NSF+193
+ apitext(ERR_CANT_CHANGE_UNID,"Can't change document's UNID")
+#define ERR_EXP_DATE PKG_NSF+194
+ errortext(ERR_EXP_DATE, "Database's expiration date has passed")
+#define ERR_DUP_TPL PKG_NSF+195
+ errortext(ERR_DUP_TPL, "WARNING: Both %p and %p claim to be Design Template '%.*s'")
+#define ERR_CONTAINER_LIMIT PKG_NSF+196
+ errortext(ERR_CONTAINER_LIMIT, "Maximum size of a storage container reached")
+#define ERR_OBJECT_CANNOT_BE_ZERO PKG_NSF+197
+ errortext(ERR_OBJECT_CANNOT_BE_ZERO, "Object size cannot be zero")
+#define ERR_NOTE_INVSIG8 PKG_NSF+198
+ errortext(ERR_NOTE_INVSIG8, "The Address Book does not contain any cross certificates capable of validating the signature.")
+#define ERR_BC_POOL_FULL PKG_NSF+199
+ errortext(ERR_BC_POOL_FULL, "Insufficient memory - The NSF buffer control pool is full.")
+#define ERR_UPDATE_ATT PKG_NSF+200
+ errortext(ERR_UPDATE_ATT, "One or more of the source document's attachment are missing. Run Fixup to delete the document in the source database.")
+#define ERR_LINK_STR1 PKG_NSF+201
+ stringtext(ERR_LINK_STR1, "Database")
+#define ERR_LINK_STR2 PKG_NSF+202
+ stringtext(ERR_LINK_STR2, "View")
+#define ERR_LINK_STR3 PKG_NSF+203
+ stringtext(ERR_LINK_STR3, "Document")
+#define ERR_NSFOPENEXCLUSIVE PKG_NSF+204
+ errortext(ERR_NSFOPENEXCLUSIVE, "Database is being Compacted; Compact must finish before use.")
+/* The following status is 'sent' to the replicator via a break procedure */
+/* to partially cancel the replication. The replicator should stop */
+/* processing the current database and start processing the next database. */
+/* This is used by background/briefcase to skip to the next database in */
+/* the replication list. As it turns out, the replicator carries on for */
+/* errors other than CANCEL and SERVER_NOT_RESPONDING. It does not */
+/* specifically look for this error code. */
+#define ERR_SKIP PKG_NSF+205
+ errortext(ERR_SKIP, "Next operation started at your request")
+#define ERR_ASYNC_DELIVERY_SEQNO PKG_NSF+206
+ internaltext(ERR_ASYNC_DELIVERY_SEQNO,"(no need to do this transaction in V4)")
+#define ERR_DBCLOSE_THREAD PKG_NSF+207
+ errortext(ERR_DBCLOSE_THREAD,"NSFDbClose THREADID != NSFDbOpen THREADID!")
+#define ERR_EM_ILLEGALAID PKG_NSF+208
+ errortext(ERR_EM_ILLEGALAID,"Illegal or uninitialized addin id")
+#define ERR_EM_ILLEGAL PKG_NSF+209
+ errortext(ERR_EM_ILLEGAL,"Extension number out of bounds")
+#define ERR_EM_ILLEGALFLAGS PKG_NSF+210
+ errortext(ERR_EM_ILLEGALFLAGS,"Extension registration flags illegal")
+#define ERR_EM_TOOMANYADDINS PKG_NSF+211
+ errortext(ERR_EM_TOOMANYADDINS,"Extension Manager has maximum addins already")
+#define ERR_EM_NOTAUTHORIZED PKG_NSF+212
+ errortext(ERR_EM_NOTAUTHORIZED,"Not authorized to register extension")
+#define ERR_EM_CONTINUE PKG_NSF+213
+ internaltext(ERR_EM_CONTINUE,"continue")
+#define ERR_EVENTQUEUE_NOTOPENED PKG_NSF+214
+ errortext(ERR_EVENTQUEUE_NOTOPENED,"Event Manager Queue not opened")
+#define ERR_EVENTQNEEDS_RESET PKG_NSF+215
+ errortext(ERR_EVENTQNEEDS_RESET,"Event Manager data structures in error")
+#define ERR_EVENTQUEUE_ISFULL PKG_NSF+216
+ errortext(ERR_EVENTQUEUE_ISFULL,"Event Manager Queue is full")
+#define ERR_EVENTQUEUE_MEMORY PKG_NSF+217
+ errortext(ERR_EVENTQUEUE_MEMORY,"Event Manager Queue memory full")
+#define ERR_REPL_UPDATE_RACE PKG_NSF+218
+ errortext(ERR_REPL_UPDATE_RACE, "Multiple replicator update race")
+#define ERR_NO_INCR_UPDATE PKG_NSF+219
+ errortext(ERR_NO_INCR_UPDATE, "Incremental updates disallowed")
+#define ERR_NOTE_INVSIG9 PKG_NSF+220
+ errortext(ERR_NOTE_INVSIG9, "Signature on document is invalid (inconsistent field signatures)")
+#define ERR_BTVERIFY PKG_NSF+221
+ errortext(ERR_BTVERIFY, "NSF BT: Verification error in view %s in database %s. See NOTES.BRP for dump.")
+#define ERR_BTVERIFY_NODESIZE PKG_NSF+222
+ errortext(ERR_BTVERIFY_NODESIZE, "BTVerifyNode: ERROR in %s, node size is %d - expected %d")
+#define ERR_BTVERIFY_LEVEL PKG_NSF+223
+ errortext(ERR_BTVERIFY_LEVEL, "BTVerifyNode: ERROR in %s, level is %d - expected %d")
+#define ERR_BTVERIFY_PASTEND PKG_NSF+224
+ errortext(ERR_BTVERIFY_PASTEND, "BTVerifyNode: ERROR in %s, entry %d is past the end of the node")
+#define ERR_BTVERIFY_DATA_PASTEND PKG_NSF+225
+ errortext(ERR_BTVERIFY_DATA_PASTEND, "BTVerifyNode: ERROR in %s, Data for entry %d is past the end of the node")
+#define ERR_BTVERIFY_PIN_DATA PKG_NSF+226
+ errortext(ERR_BTVERIFY_PIN_DATA, "BTVerifyNode: ERROR %e pinning BT_DATA %s in node %s")
+#define ERR_BTVERIFY_LDATA_SIZE PKG_NSF+227
+ errortext(ERR_BTVERIFY_LDATA_SIZE, "BTVerifyNode: ERROR BT_DATA %s in node %s has size %d, sum of chunks is %d")
+#define ERR_BTVERIFY_UNPIN_DATA PKG_NSF+228
+ errortext(ERR_BTVERIFY_UNPIN_DATA, "BTVerifyNode: ERROR %e unpinning BT_DATA %s in node %s")
+#define ERR_BTVERIFY_CARDINALITY PKG_NSF+229
+ errortext(ERR_BTVERIFY_CARDINALITY, "BTVerifyNode: ERROR in %s, cardinality is %lu - expected %lu")
+#define ERR_BTVERIFY_MAXFALSE PKG_NSF+230
+ errortext(ERR_BTVERIFY_MAXFALSE, "BTVerifyNode: ERROR in %s, MaxEntry is FALSE - expected TRUE")
+#define ERR_BTVERIFY_MAXTRUE PKG_NSF+231
+ errortext(ERR_BTVERIFY_MAXTRUE, "BTVerifyNode: ERROR in %s, MaxEntry is TRUE - expected FALSE")
+#define ERR_BTVERIFY_MAXKEYSIZE PKG_NSF+232
+ errortext(ERR_BTVERIFY_MAXKEYSIZE, "BTVerifyNode: ERROR in %s, MaxKeySize is %d - expected %d")
+#define ERR_BTVERIFY_MAXKEYVALUE PKG_NSF+233
+ errortext(ERR_BTVERIFY_MAXKEYVALUE, "BTVerifyNode: ERROR in %s, maximum key value is wrong")
+#define ERR_BTVERIFY_PINSUBINDEX PKG_NSF+234
+ errortext(ERR_BTVERIFY_PINSUBINDEX, "BTVerifyNode: ERROR %e pinning sub-index descriptor %s in node %s")
+#define ERR_BTVERIFY_UNPINSUBINDEX PKG_NSF+235
+ errortext(ERR_BTVERIFY_UNPINSUBINDEX, "BTVerifyNode: ERROR %e unpinning sub-index descriptor %s in node %s")
+#define ERR_FILEEXT_INVALID_READCOUNT PKG_NSF+236
+ errortext(ERR_FILEEXT_INVALID_READCOUNT, "Extendable File object: invalid read count")
+#define ERR_FILEEXT_ALREADY_OPEN PKG_NSF+237
+ errortext(ERR_FILEEXT_ALREADY_OPEN, "Extendable File object: already open")
+#define ERR_FILEEXT_NOT_OPEN PKG_NSF+238
+ errortext(ERR_FILEEXT_NOT_OPEN, "Extendable File object: object must be open to perform this function")
+#define ERR_DIRMAN_NOT_INITIALIZED PKG_NSF+239
+ errortext(ERR_DIRMAN_NOT_INITIALIZED,"Directory Manager Not Initialized.")
+#define ERR_NOSTUB_HAS_RESPONSES PKG_NSF+240
+ errortext(ERR_NOSTUB_HAS_RESPONSES, "A note with responses cannot be deleted with UPDATE_NOSTUB")
+#define ERR_RESPONSE_CYCLE PKG_NSF+241
+ errortext(ERR_RESPONSE_CYCLE, "This operation creates a cycle in the response hierarchy")
+#define ERR_NSF_DIRMAN_POOLFULL PKG_NSF+242
+ errortext(ERR_NSF_DIRMAN_POOLFULL, "Insufficient memory - NSF directory manager pool is full.")
+#define ERR_NSF_BUF_POOLFULL PKG_NSF+243
+ errortext(ERR_NSF_BUF_POOLFULL, "Insufficient memory - NSF buffer pool is full. Increase the value of the NSF_BUFFER_POOL_SIZE environment variable.")
+#define ERR_EVENTQ_POOLFULL PKG_NSF+244
+ errortext(ERR_EVENTQ_POOLFULL, "Insufficient memory - Event Manager Pool is full.")
+#define ERR_DBINDEX_POOLFULL PKG_NSF+245
+ errortext(ERR_DBINDEX_POOLFULL, "Insufficient memory - too many databases on server - Database List Pool is full.")
+#define ERR_SYNC_POOLFULL PKG_NSF+246
+ errortext(ERR_SYNC_POOLFULL, "Insufficient memory - Database Sync Pool is full.")
+#define ERR_EM_POOLFULL PKG_NSF+247
+ errortext(ERR_EM_POOLFULL, "Insufficient memory - Extension Manager Data Pool is full.")
+#define ERR_LOCALSEC_DBOPENFAILURE PKG_NSF+248
+ errortext(ERR_LOCALSEC_DBOPENFAILURE, "This database has local access protection and you are not authorized to access it")
+#define ERR_LOCALSEC_NOTSUPPORTED PKG_NSF+249
+ errortext(ERR_LOCALSEC_NOTSUPPORTED, "The local security feature is not supported for the database or server")
+#define ERR_LOCALSEC_ALREADYSET PKG_NSF+250
+ errortext(ERR_LOCALSEC_ALREADYSET, "This database already has local security set up and can not be set again")
+#define ERR_LOCALSEC_NOUSERPUBKEY PKG_NSF+251
+ errortext(ERR_LOCALSEC_NOUSERPUBKEY, "Can not find the user or public key information in the Name and Address Book")
+#define ERR_LOCALSEC_INVALIDSTATE PKG_NSF+252
+ errortext(ERR_LOCALSEC_INVALIDSTATE, "Invalid local security state")
+#define ERR_FIXUP_DUP_DELETED PKG_NSF+253
+ errortext(ERR_FIXUP_DUP_DELETED,"A duplicate of document NT%08lx in database %p has been deleted")
+#define ERR_OVERDISKQUOTA PKG_NSF+254
+ errortext(ERR_OVERDISKQUOTA,"Unable to write to database because database would exceed its disk quota.")
+#define LOG_OVERDISKQUOTA PKG_NSF+255
+ errortext(LOG_OVERDISKQUOTA,"Unable to write to database - database %s would exceed its disk quota of %d KB by %k.")
+
+/* We're full here for PKG_NSF - Max is 255! Start using PKG_NSF2 below...*/
+
+
+/* More Note Storage File Error Code Definitions */
+
+#define NSFSTR_TRANSLOG_FORMATTING PKG_NSF2+0
+ stringtext(NSFSTR_TRANSLOG_FORMATTING, "Please wait, creating new transaction logs in directory: ")
+#define ERR_LOCAL_ENCRYPT_MUST_COMPACT PKG_NSF2+1
+ errortext(ERR_LOCAL_ENCRYPT_MUST_COMPACT, "You must compact the database in order to encrypt all documents.")
+#define ERR_LOCAL_DECRYPT_MUST_COMPACT PKG_NSF2+2
+ errortext(ERR_LOCAL_DECRYPT_MUST_COMPACT, "You must compact the database in order to decrypt all documents.")
+#define ERR_IS_OBJSTORE PKG_NSF2+3
+ errortext(ERR_IS_OBJSTORE, "The database required for this operation is an object store.")
+#define ERR_OBJSTORE_UPD_REPLICA PKG_NSF2+4
+ errortext(ERR_OBJSTORE_UPD_REPLICA, "The database and the object store for this update are replicas.")
+#define ERR_ITEM_MISMATCH PKG_NSF2+5
+ errortext(ERR_ITEM_MISMATCH, "An item's value or datatype differs from the same item in the object store note.")
+#define ERR_LOCALSEC_NEEDCOMPACT PKG_NSF2+6
+ errortext(ERR_LOCALSEC_NEEDCOMPACT, "You should compact your database in order to complete the local security setting")
+#define ERR_LOCALSEC_UNKNOWNMETHOD PKG_NSF2+7
+ errortext(ERR_LOCALSEC_UNKNOWNMETHOD, "The specified encryption method is invalid or not supported by this version of software")
+#define ERR_OBJSTORE_NOTSPLIT PKG_NSF2+8
+ errortext(ERR_OBJSTORE_NOTSPLIT, "Cannot split note (NoteID %d) between database %p and object store %p ")
+#define ERR_BAD_DBUHASHTBL_DELETION PKG_NSF2+9
+ internaltext(ERR_BAD_DBUHASHTBL_DELETION, "The wrong entry was deleted from the dbu hash table.")
+#define ERR_EM_MAX_EXTENSIONS PKG_NSF2+10
+ errortext(ERR_EM_MAX_EXTENSIONS, "Extension Manager exceeded maximum number of Recursion IDs")
+#define ERR_NAMED_OBJECT_CORRUPT PKG_NSF2+11
+ errortext(ERR_NAMED_OBJECT_CORRUPT, "Named Object corrupt.")
+#define ERR_COMPACT_INTERRUPTED PKG_NSF2+12
+ errortext(ERR_COMPACT_INTERRUPTED, "Compaction of the database was stopped prematurely because another user modified it while it was being compacted.")
+#define ERR_VALIDATION_FAILED PKG_NSF2+13
+ apitext(ERR_VALIDATION_FAILED, "Validation failed.")
+#define ERR_NSF_HEADER_CORRUPTED PKG_NSF2+14
+ errortext(ERR_NSF_HEADER_CORRUPTED, "The Notes database file header is corrupted")
+#define ERR_NO_SHARED_ITEMS PKG_NSF2+15
+ errortext(ERR_NO_SHARED_ITEMS, "The note contains no items that can be shared with the note in the object store.")
+#define ERR_LOCAL_ACCESS_AUTHN PKG_NSF2+16
+ errortext(ERR_LOCAL_ACCESS_AUTHN, "Your ID failed authentication check. Access is denied")
+#define ERR_IDTABLE_LENGTH_MISMATCH PKG_NSF2+17
+ errortext(ERR_IDTABLE_LENGTH_MISMATCH, "The internal length of the ID table does not match the length expected")
+#define ERR_FOLDER_DIRECTORY_CORRUPT PKG_NSF2+18
+ errortext(ERR_FOLDER_DIRECTORY_CORRUPT, "Folder is damaged. Please close and reopen database to repair it.")
+#define ERR_FOLDER_NOFREESPACE PKG_NSF2+19
+ errortext(ERR_FOLDER_NOFREESPACE, "Folder has no free space but should have.")
+#define ERR_REPL_BLOCK_FULL PKG_NSF2+20
+ errortext(ERR_REPL_BLOCK_FULL, "Folder replication block is full, will be reallocated.")
+#define ERR_ILLEGAL_FOLDER_COPY PKG_NSF2+21
+ errortext(ERR_ILLEGAL_FOLDER_COPY, "Source and destination folders must reside in same DB.")
+#define ERR_FOLDER_CORRUPT PKG_NSF2+22
+ errortext(ERR_FOLDER_CORRUPT, "Folder has been damaged. Please close and reopen database to have it repaired.")
+#define ERR_FOLDER_TOO_BIG PKG_NSF2+23
+ errortext(ERR_FOLDER_TOO_BIG, "Folder is larger than supported, cannot perform operation.")
+#define ERR_NO_FOLDER_REPLICATION PKG_NSF2+24
+ errortext(ERR_NO_FOLDER_REPLICATION, "Folder replication not supported by remote server.")
+#define ERR_TOO_MANY_FOLDER_UPDATES PKG_NSF2+25
+ errortext(ERR_TOO_MANY_FOLDER_UPDATES, "Too many folder additions or removals at one time")
+#define ERR_FOLDER_ACCESS_DENIED PKG_NSF2+26
+ errortext(ERR_FOLDER_ACCESS_DENIED, "No privilege to update folder")
+#define ERR_NOTE_CANT_BE_FOLDER PKG_NSF2+27
+ errortext(ERR_NOTE_CANT_BE_FOLDER, "Note must be public or private view to be a folder")
+#define ERR_MAXSIZE_NOTSUPPORTED PKG_NSF2+28
+ errortext(ERR_MAXSIZE_NOTSUPPORTED, "The server does not support Notes database with maximum size greater than 1 GB")
+#define ERR_OBJSTORE_NOACCESS PKG_NSF2+29
+ errortext(ERR_OBJSTORE_NOACCESS, "You do not have access to the object store that is used by this note")
+#define ERR_OBJSTORE_NOT_FOUND PKG_NSF2+30
+ errortext(ERR_OBJSTORE_NOT_FOUND, "The object store note that is used by this note was not found. Run the object store COLLECT task on this database.")
+#define ERR_CANNOT_OPEN_OBJSTORE PKG_NSF2+31
+ errortext(ERR_CANNOT_OPEN_OBJSTORE, "The object store that is used by this note was not found or is not a Notes database")
+#define ERR_OBJSTORE_NOTE_NOACCESS PKG_NSF2+32
+ errortext(ERR_OBJSTORE_NOTE_NOACCESS, "You do not have access to the object store note that is used by this note")
+#define ERR_OBJSTORE_NOTE_DELETED PKG_NSF2+33
+ errortext(ERR_OBJSTORE_NOTE_DELETED, "The object store note that is used by this note has been deleted. Run the object store COLLECT task on this database.")
+#define ERR_USER_HANDLED_CONFLICT PKG_NSF2+34
+ errortext(ERR_USER_HANDLED_CONFLICT,"User Has Handled their own Conflict.")
+#define ERR_FIXUP_GHOST PKG_NSF2+35
+ errortext(ERR_FIXUP_GHOST, "Fixed header of document NT%08lx in database %p so it will replicate properly.")
+#define ERR_INVALID_CD_FILE PKG_NSF2+36
+ errortext(ERR_INVALID_CD_FILE, "Incorrectly formatted Composite records in file.")
+#define ERR_FIXUP_FOUND_UNREADLIST PKG_NSF2+37
+ errortext(ERR_FIXUP_FOUND_UNREADLIST, "Unread list for user %a in database %p is damaged: %e")
+#define ERR_DELETE_ENTRY PKG_NSF2+38
+ errortext(ERR_DELETE_ENTRY, "Internal only - delete named table entry.")
+#define ERR_UPDATE_ENTRY PKG_NSF2+39
+ errortext(ERR_UPDATE_ENTRY, "Internal only - update named table entry.")
+#define ERR_TOO_MANY_FOLDERS PKG_NSF2+40
+ errortext(ERR_TOO_MANY_FOLDERS, "Exceeded maximum folder count in database.")
+#define ERR_FIXUP_DEL_UNREADLIST PKG_NSF2+41
+ errortext(ERR_FIXUP_DEL_UNREADLIST, "Unread list for user %a in database %p is damaged and has been deleted: %e")
+#define ERR_FIXUP_NAMEDNOTE PKG_NSF2+42
+ errortext(ERR_FIXUP_NAMEDNOTE, "Named note NT%08lx in database %p is damaged.")
+#define ERR_NSF_FOLDER_POOLFULL PKG_NSF2+43
+ errortext(ERR_NSF_FOLDER_POOLFULL, "Insufficient memory - NSF folder pool is full.")
+#define ERR_FIXUP_FOLDER_PURGED PKG_NSF2+44
+ errortext(ERR_FIXUP_FOLDER_PURGED, "Folder NT%08lx in database %p has been purged due to corruption: %s")
+#define ERR_FIXUP_FOLDER_IDTABLE PKG_NSF2+45
+ errortext(ERR_FIXUP_FOLDER_IDTABLE, "Folder NT%08lx in database %p has corrupt ID table, will be rebuilt. Error: %e.")
+#define ERR_FOLDERS_UPTODATE PKG_NSF2+46
+ errortext(ERR_FOLDERS_UPTODATE, "Folders in database are up to date")
+#define ERR_RTR_NOTSET PKG_NSF2+47
+ errortext(ERR_RTR_NOTSET, "RTR Context not set for this database")
+#define ERR_RTR_ALREADYSET PKG_NSF2+48
+ errortext(ERR_RTR_ALREADYSET, "RTR Context already set for this database")
+#define ERR_NSF_COMPUTE_NOENVIRONMENT PKG_NSF2+49
+ errortext(ERR_NSF_COMPUTE_NOENVIRONMENT, "You are not allowed to modify environment variables.")
+#define ERR_NSF_REMOTE_URL_QUEUE PKG_NSF2+50
+ errortext(ERR_NSF_REMOTE_URL_QUEUE, "Cannot queue a URL Note Open to a remote database.")
+#define ERR_NOTE_NOT_FOLDER PKG_NSF2+51
+ errortext(ERR_NOTE_NOT_FOLDER, "Attempt to perform folder operation on non-folder note.")
+#define ERR_NO_VIEWS_IN_OBJSTORE PKG_NSF2+52
+ errortext(ERR_NO_VIEWS_IN_OBJSTORE, "Views cannot be added to an object store.")
+#define ERR_NOTE_INVSIG10 PKG_NSF2+53
+ errortext(ERR_NOTE_INVSIG10, "Document has been modified or corrupted since signed! (extended signature)")
+#define ERR_NEEDS_FIXUP PKG_NSF2+54
+ errortext(ERR_NEEDS_FIXUP, "This database cannot be opened because a consistency check of it is needed.")
+#define ERR_FIXUP_IN_PROGRESS PKG_NSF2+55
+ errortext(ERR_FIXUP_IN_PROGRESS, "This database cannot be opened because a consistency check of it is in progress.")
+#define ERR_FILTER_CONTINUING PKG_NSF2+56
+ errortext(ERR_FILTER_CONTINUING, "Error running agent on NoteID %lu - %e. Continuing...")
+#define ERR_OBJSTORE_TITLE PKG_NSF2+57
+ errortext(ERR_OBJSTORE_TITLE, "Object Store for ")
+#define ERR_NSF_CORRUPT_ACL PKG_NSF2+58
+ errortext(ERR_NSF_CORRUPT_ACL, "Database ACL is damaged and can't be repaired.")
+#define ERR_CONTVERIFY_FREESPACEWRONG PKG_NSF2+59
+ errortext(ERR_CONTVERIFY_FREESPACEWRONG, "BufAllocSpace: Mismatch in free space, container: %d, (%s).")
+#define ERR_DBUHASH_POOLFULL PKG_NSF2+60
+ errortext(ERR_DBUHASH_POOLFULL, "NSF DBU hash table pool is full.")
+#define ERR_RSP_ADDTO_HIERFOLD PKG_NSF2+61
+ errortext(ERR_RSP_ADDTO_HIERFOLD, "To move a response document to a folder that shows response hierarchy you need to move the topmost parent of the response")
+#define ERR_RSP_REMFROM_HIERFOLD PKG_NSF2+62
+ errortext(ERR_RSP_REMFROM_HIERFOLD, "To remove a response document from a folder that shows response hierarchy you must also remove the topmost parent of the response")
+#define ERR_RSP_REMFROM_HIERFOLD_WARN PKG_NSF2+63
+ errortext(ERR_RSP_REMFROM_HIERFOLD_WARN, "All related response documents are being removed from this folder along with their parents.")
+#define ERR_RSP_ADDTO_HIERFOLD_WARN PKG_NSF2+64
+ errortext(ERR_RSP_ADDTO_HIERFOLD_WARN, "All related response documents are being added to this folder along with their parents.")
+#define NSFSTR_ENCRYPT_PROGRESS PKG_NSF2+65
+ stringtext(NSFSTR_ENCRYPT_PROGRESS,"Encrypting database")
+#define NSFSTR_DECRYPT_PROGRESS PKG_NSF2+66
+ stringtext(NSFSTR_DECRYPT_PROGRESS,"Decrypting database")
+#define ERR_NOT_OBJSTORE PKG_NSF2+67
+ errortext(ERR_NOT_OBJSTORE, "The object store required for this operation is not an object store.")
+#define ERR_VIEW_UPDATE PKG_NSF2+68
+ errortext(ERR_VIEW_UPDATE, "View and Design notes can only be deleted by using NIFUpdateNote or NIFDeleteNote.")
+#define ERR_NOTE_CLASS PKG_NSF2+69
+ errortext(ERR_NOTE_CLASS, "Document has invalid Note Class")
+#define ERR_RM_DOING_RESTART PKG_NSF2+70
+ errortext(ERR_RM_DOING_RESTART, "Recovery Manager: Recovery being performed for DB")
+#define ERR_BDB_CORRUPT PKG_NSF2+71
+ errortext(ERR_BDB_CORRUPT, "Database is damaged and can't be repaired (BDB)")
+#define ERR_INVALID_PARENT_NOTE PKG_NSF2+72
+ errortext(ERR_INVALID_PARENT_NOTE, "Invalid or nonexistent parent document")
+#define ERR_NOT_CHILD_NOTE PKG_NSF2+73
+ errortext(ERR_NOT_CHILD_NOTE, "This document is not a child of its parent document")
+#define ERR_LINK_FORMAT PKG_NSF2+74
+ errortext(ERR_LINK_FORMAT, "Notes Document Link is not formatted properly, or it is not a Notes Document Link")
+#define ERR_DB_MARKED_FOR_DELETE PKG_NSF2+75
+ errortext(ERR_DB_MARKED_FOR_DELETE, "This database has been marked for delete and cannot be modified")
+#define ERR_RETRY_RW PKG_NSF2+76
+ internaltext(ERR_RETRY_RW, "Retry this operation with the RW sem")
+#define ERR_UNAME_TEXT PKG_NSF2+77
+ errortext(ERR_UNAME_TEXT, "Invalid type of data for a Unique Document Name")
+#define ERR_UNAME_LENGTH PKG_NSF2+78
+ errortext(ERR_UNAME_LENGTH, "Unique Document Name is too long")
+#define ERR_UNAME_DIRFULL PKG_NSF2+79
+ errortext(ERR_UNAME_DIRFULL, "Insufficient space in Unique Document Name Directory Pool")
+#define ERR_UNAME_NO_DB PKG_NSF2+80
+ errortext(ERR_UNAME_NO_DB, "Document Database Not Found")
+#define ERR_UNAME_NO_DOC PKG_NSF2+81
+ errortext(ERR_UNAME_NO_DOC, "Document Not Found")
+#define ERR_NSF_SCHED_POOLFULL PKG_NSF2+82
+ errortext(ERR_NSF_SCHED_POOLFULL, "Insufficient memory - Schedule vpool is full.")
+#define ERR_NSF_NO_WEB_CACHE PKG_NSF2+83
+errortext( ERR_NSF_NO_WEB_CACHE, "The Web retriever database cache could not be opened. Please check your InterNotes Server value in your current location.")
+#define ERR_FIXUP_FOUND_HUGE_UNREADLIST PKG_NSF2+84
+ errortext(ERR_FIXUP_FOUND_HUGE_UNREADLIST, "Unread list for user %a in database %p is in the new format")
+#define ERR_FIXUP_UNLATCH_FAILED PKG_NSF2+85
+ errortext(ERR_FIXUP_UNLATCH_FAILED, "Unable to change unread list for user %a in database %p to the old format: %e")
+#define ERR_FIXUP_UNLATCHED PKG_NSF2+86
+ errortext(ERR_FIXUP_UNLATCHED, "Changed unread list for user %a in database %p to the old format")
+/* NOTE class names */
+#define ERR_NOTE_DESIGN_CLASS_NAME PKG_NSF2+87
+ errortext(ERR_NOTE_DESIGN_CLASS_NAME,"design")
+#define ERR_NOTE_VIEW_CLASS_NAME PKG_NSF2+88
+ errortext(ERR_NOTE_VIEW_CLASS_NAME, "view")
+#define ERR_NOTE_DVIEW_CLASS_NAME PKG_NSF2+89
+ errortext(ERR_NOTE_DVIEW_CLASS_NAME,"default view")
+#define ERR_NOTE_CLASS_NAME PKG_NSF2+90
+ errortext(ERR_NOTE_CLASS_NAME, "class")
+#define ERR_NOTE_DDESIGN_CLASS_NAME PKG_NSF2+91
+ errortext(ERR_NOTE_DDESIGN_CLASS_NAME,"default design")
+#define ERR_NOTE_PVIEW_CLASS_NAME PKG_NSF2+92
+ errortext(ERR_NOTE_PVIEW_CLASS_NAME,"private view")
+#define ERR_NOTE_NO_CLASS_NAME PKG_NSF2+93
+ errortext(ERR_NOTE_NO_CLASS_NAME, "private design")
+#define ERR_FTM_NOTSET PKG_NSF2+94
+ errortext(ERR_FTM_NOTSET, "FTM Context not set for this database")
+#define ERR_FTM_ALREADYSET PKG_NSF2+95
+ errortext(ERR_FTM_ALREADYSET, "FTM Context already set for this database")
+#define ERR_SCHOBJCNTNR PKG_NSF2+96
+ errortext(ERR_SCHOBJCNTNR, "schedule object container error")
+#define ERR_SCHOBJCNTNR_GATEWAY PKG_NSF2+97
+ errortext(ERR_SCHOBJCNTNR_GATEWAY, "schedule object container gateway error")
+#define ERR_SCHOBJCNTNR_PARTIAL PKG_NSF2+98
+ errortext(ERR_SCHOBJCNTNR_PARTIAL, "schedule container partially filled")
+#define ERR_SCHED_INVALIDDOMAIN PKG_NSF2+99
+ errortext(ERR_SCHED_INVALIDDOMAIN, "Invalid domain type for scheduling request")
+#define ERR_SCHED_NAMENOTUNIQUE PKG_NSF2+100
+ errortext(ERR_SCHED_NAMENOTUNIQUE, "User name in scheduling request not unique in Name and Address Book")
+#define ERR_SCHED_NOSUCHUSER PKG_NSF2+101
+ errortext(ERR_SCHED_NOSUCHUSER, "User name in scheduling request not found in Name and Address Book")
+#define ERR_SCHED_NOGROUP PKG_NSF2+102
+ errortext(ERR_SCHED_NOGROUP, "Error processing scheduling request, group name not supported")
+#define ERR_SCHED_DOMAINNOTFOUND PKG_NSF2+103
+ errortext(ERR_SCHED_DOMAINNOTFOUND, "Can't find domain document in Domino Directory for the scheduling request")
+#define ERR_SCHED_CANTFINDSCHEDULE PKG_NSF2+104
+ errortext(ERR_SCHED_CANTFINDSCHEDULE, "Can't find schedule record for requested user")
+#define ERR_SCHOBJ_NOCOMPOSITE PKG_NSF2+105
+ errortext(ERR_SCHOBJ_NOCOMPOSITE, "No composite schedule was generated")
+#define ERR_SCHOBJ_NOSCHEDLIST PKG_NSF2+106
+ errortext(ERR_SCHOBJ_NOSCHEDLIST, "No schedule list entry is available for this object")
+#define ERR_SCHOBJ_LOCALNOCOMPOSITE PKG_NSF2+107
+ errortext(ERR_SCHOBJ_LOCALNOCOMPOSITE, "No composite schedule was generated locally")
+#define ERR_SCHED_APPT_NOTFOUND PKG_NSF2+108
+ errortext(ERR_SCHED_APPT_NOTFOUND, "Appointment record not found")
+#define ERR_SCHRQST_TIMEOUT PKG_NSF2+109
+ errortext(ERR_SCHRQST_TIMEOUT, "schedule request timed out")
+#define ERR_SCHOBJ_NOTEXIST PKG_NSF2+110
+ errortext(ERR_SCHOBJ_NOTEXIST, "schedule object doesn't exist")
+#define ERR_SCHED_CHAIN_LOOP PKG_NSF2+111
+ errortext(ERR_SCHED_CHAIN_LOOP, "Schedule request chaining loop detected")
+#define ERR_NSF_CORRUPT_ECL PKG_NSF2+112
+ errortext(ERR_NSF_CORRUPT_ECL, "ECL is damaged and can't be repaired")
+#define ERR_NSF_COMPUTE_ECL_ABORT PKG_NSF2+113
+ errortext(ERR_NSF_COMPUTE_ECL_ABORT, "Operation aborted at your request")
+#define ERR_BITMAPCHECKSUM_BAD PKG_NSF2+114
+ errortext(ERR_BITMAPCHECKSUM_BAD, "Bitmap checksum is incorrect")
+#define ERR_BAD_BUCKETPOS PKG_NSF2+115
+ internaltext(ERR_BAD_BUCKETPOS, "Bad bucket position")
+#define ERR_DBCACHE_ENTRY_RESERVED PKG_NSF2+116
+ internaltext(ERR_DBCACHE_ENTRY_RESERVED, "DbCache entry reserved")
+#define ERR_BUCKET_CORRUPT PKG_NSF2+117
+ internaltext(ERR_BUCKET_CORRUPT, "Bucket is corrupt, perhaps partially written")
+#define ERR_RM_STOP_LOGGING PKG_NSF2+118
+ errortext(ERR_RM_STOP_LOGGING, "Recovery Manager: Transactional Logging being disabled after this restart")
+#define ERR_NSF_BUCKET_POOLFULL PKG_NSF2+119
+ errortext(ERR_NSF_BUCKET_POOLFULL, "Insufficient memory - NSF bucket buffer pool is full.")
+#define ERR_INVALID_BUCKET_TYPE PKG_NSF2+120
+ errortext(ERR_INVALID_BUCKET_TYPE, "Invalid Bucket Type")
+#define ERR_NETACCOUNT_LASTNAME PKG_NSF2+121
+ errortext(ERR_NETACCOUNT_LASTNAME, "A valid last name string must be supplied for the second parameter of @NetAccount")
+#define ERR_CANTINVALIDATE_BUFFER PKG_NSF2+122
+ internaltext(ERR_CANTINVALIDATE_BUFFER, "Can't invalidate buffer, pin count > 1")
+#define ERR_WRONG_PROCESSGROUP PKG_NSF2+123
+ internaltext(ERR_WRONG_PROCESSGROUP, "Ager is in wrong process group")
+#define ERR_ITEM_TIME_CORRUPT PKG_NSF2+124
+ internaltext(ERR_ITEM_TIME_CORRUPT, "Item does not have a valid time")
+#define ERR_SYNC_TIME_NOT_FOUND PKG_NSF2+125
+ internaltext(ERR_SYNC_TIME_NOT_FOUND, "Documents do not have a common revision time")
+#define STR_FREE_TIME_DB_TITLE PKG_NSF2+126
+ stringtext(STR_FREE_TIME_DB_TITLE, "Local free time info")
+#define ERR_SCHED_MULTIPLE_DOMAINS PKG_NSF2+127
+ errortext(ERR_SCHED_MULTIPLE_DOMAINS, "Warning: Multiple documents detected for domain '%s' in Domino Directory for the scheduling request.")
+/* PKG_NSF2 codes limited to 0-127 */
+
+
+#define ERR_TRANSLOG_NO_SPACE PKG_NSF3+0
+ errortext(ERR_TRANSLOG_NO_SPACE, "Insufficient disk space to create transaction log.")
+#define ERR_SCHED_QUERY_SMALLER_DATE_RANGE PKG_NSF3+1
+ errortext(ERR_SCHED_QUERY_SMALLER_DATE_RANGE, "The date range for this busy time query contains too much busy time data. Query a shorter range of days.")
+#define ERR_SCHED_RANGEFULL PKG_NSF3+2
+ errortext(ERR_SCHED_RANGEFULL, "The range is full.")
+#define ERR_SCHED_TOOMUCHDATA PKG_NSF3+3
+ errortext(ERR_SCHED_TOOMUCHDATA, "Too much data is being added to this object. Please break it up into chunks.")
+#define ERR_NULL_DBHANDLE PKG_NSF3+4
+ errortext(ERR_NULL_DBHANDLE, "The database handle is NULL")
+#define ERR_INVALID_BUCKET_NUMBER PKG_NSF3+5
+ errortext(ERR_INVALID_BUCKET_NUMBER,"Invalid Bucket Number")
+#define ERR_SCHED_WARNING PKG_NSF3+6
+ errortext(ERR_SCHED_WARNING, "Warning: schedule retrieval error for %s - ")
+#define ERR_PROFILE_ENUM_POOLFULL PKG_NSF3+7
+ errortext(ERR_PROFILE_ENUM_POOLFULL,"Profile document enumeration pool is full")
+#define ERR_OBJSTORE_NOT_ENCRYPTED PKG_NSF3+8
+ internaltext(ERR_OBJSTORE_NOT_ENCRYPTED,"Object Store not marked encrypted and must be")
+#define ERR_DBCACHE_TOO_BIG PKG_NSF3+9
+ errortext(ERR_DBCACHE_TOO_BIG, "NSF_DBCACHE_MAX_ENTRIES parameter too large, memory request failed")
+#define ERR_NOLOCKINPAGECOMPRESS PKG_NSF3+10
+ errortext(ERR_NOLOCKINPAGECOMPRESS,"Db write semaphore not held during attempted page compression")
+#define ERR_CANTDOINPLACECOMPACT PKG_NSF3+11
+ errortext(ERR_CANTDOINPLACECOMPACT,"In-place database compaction can only be done with V5 and beyond databases")
+#define ERR_NOBUCKETSKIMMING PKG_NSF3+12
+ errortext(ERR_NOBUCKETSKIMMING, "Operation cannot be performed at the current time - database compaction in progress.")
+#define ERR_CANTCOPYUNKTABLE PKG_NSF3+13
+ internaltext(ERR_CANTCOPYUNKTABLE, "Unable to copy UNK table")
+#define ERR_UBMPOOLFULL PKG_NSF3+14
+ errortext(ERR_UBMPOOLFULL,"The buffer pool is too full to bring in another page.")
+#define ERR_UBMPOOLMAXED PKG_NSF3+15
+ errortext(ERR_UBMPOOLMAXED,"The buffer pool is extremely full; delay the thread.")
+#define ERR_UBMBACKOFF PKG_NSF3+16
+ errortext(ERR_UBMBACKOFF,"Buffer manager clock failed to find a buffer. Retry pin operation.")
+#define ERR_UBMPAGENOTFOUND PKG_NSF3+17
+ errortext(ERR_UBMPAGENOTFOUND,"Page is not currently buffered.")
+#define ERR_UBMBADPAGESIZE PKG_NSF3+18
+ errortext(ERR_UBMBADPAGESIZE,"Page size requested is not allowed.")
+#define ERR_UBMGROUPTBLFULL PKG_NSF3+19
+ errortext(ERR_UBMGROUPTBLFULL,"Universal Buffer Manager group table is full.")
+#define ERR_UBMBADGROUPID PKG_NSF3+20
+ errortext(ERR_UBMBADGROUPID,"Using invalid (old) group id.")
+#define ERR_UBMPAGEPINNED PKG_NSF3+21
+ errortext(ERR_UBMPAGEPINNED,"Page pinned during group operation.")
+#define ERR_BKTDESCPAGE_CORRUPT PKG_NSF3+22
+ internaltext(ERR_BKTDESCPAGE_CORRUPT, "Bucket descriptor page is corrupt, perhaps partially written")
+#define ERR_UBMTEST PKG_NSF3+23
+ errortext(ERR_UBMTEST,"Miscellaneous error running testnsf for ubm.")
+#define ERR_NOINCREMENTALANTIFOLDER PKG_NSF3+24
+ errortext(ERR_NOINCREMENTALANTIFOLDER, "Anti-folder view must be rebuilt")
+#define ERR_UBMBADGAD PKG_NSF3+25
+ errortext(ERR_UBMBADGAD,"Group Access Data structure size is too large.")
+#define ERR_UBMNOGROUPINFO PKG_NSF3+26
+ errortext(ERR_UBMNOGROUPINFO,"Group Access Data cannot be found.")
+#define ERR_UBMNOSPACE PKG_NSF3+27
+ errortext(ERR_UBMNOSPACE,"Group Access Data bpool cannot be created.")
+#define ERR_CANNOT_COMPACT_DB_VERSION PKG_NSF3+28
+ errortext(ERR_CANNOT_COMPACT_DB_VERSION, "Cannot compact pre-V3 databases to V5 or later databases - use New Replica instead.")
+#define ERR_CANT_COMPACT_INDEX_VERSION PKG_NSF3+29
+ errortext(ERR_CANT_COMPACT_INDEX_VERSION, "Cannot compact database. Please use compact -d or updall -r followed by compact.")
+#define ERR_RRVBKT_CORRUPT PKG_NSF3+30
+ errortext(ERR_RRVBKT_CORRUPT, "RRV bucket is corrupt.")
+#define ERR_BITMAP_CORRUPT PKG_NSF3+31
+ errortext(ERR_BITMAP_CORRUPT, "Allocation bitmap is corrupt.")
+#define ERR_SALVAGE_FAILED PKG_NSF3+32
+ internaltext(ERR_SALVAGE_FAILED, "Salvage attempt failed, database severely corrupted.")
+#define ERR_UBMBUFFERTOOSMALL PKG_NSF3+33
+ errortext(ERR_UBMBUFFERTOOSMALL,"Group Data buffer provided by caller is too small.")
+#define ERR_UBMCANTLOCK PKG_NSF3+34
+ errortext(ERR_UBMCANTLOCK,"UBM I/O Method could not get conditional semaphore.")
+#define ERR_UBMNOFD PKG_NSF3+35
+ errortext(ERR_UBMNOFD,"UBM I/O Method thread does not have file open.")
+#define ERR_UBMWRITEBACKANDDISCARD PKG_NSF3+36
+ errortext(ERR_UBMWRITEBACKANDDISCARD,"Simultaneous setting of writeback and discard on buffer.")
+#define ERR_UBMTOOMANYPAGES PKG_NSF3+37
+ errortext(ERR_UBMTOOMANYPAGES,"Too many pages in prefetch page list - list truncated.")
+#define ERR_PAGE_PINNED PKG_NSF3+38
+ internaltext(ERR_PAGE_PINNED, "Operation cannot be performed because the page is pinned")
+#define ERR_UBMPAGENOTPINNED PKG_NSF3+39
+ errortext(ERR_UBMPAGENOTPINNED,"Trying to unpinned an unpinned page.")
+#define ERR_UBMBADGTABLESEG PKG_NSF3+40
+ errortext(ERR_UBMBADGTABLESEG,"Universal Buffer Manager group table segment is null.")
+#define ERR_NSF_CANT_BACKUP PKG_NSF3+41
+ errortext(ERR_NSF_CANT_BACKUP,"Cannot perform write due to error recording before image for full backup.")
+#define ERR_CANT_BACKUP_DURING_COMPACT PKG_NSF3+42
+ errortext(ERR_CANT_BACKUP_DURING_COMPACT, "Cannot backup a database while it is being compacted.")
+
+#define ERR_BAD_SUPERBLOCK PKG_NSF3+43
+ errortext(ERR_BAD_SUPERBLOCK, "SuperBlock is corrupt on disk - Restart recovery is required.")
+#define ERR_MQ_POOL_FULL PKG_NSF3+44
+ errortext(ERR_MQ_POOL_FULL,"Logger memory pool is full.")
+#define ERR_UNABLE_TO_RENAME PKG_NSF3+45
+ errortext(ERR_UNABLE_TO_RENAME, "Compaction failed: Unable to rename %p back to %p: %e - You must rename it yourself.")
+#define ERR_UNABLE_TO_DELETE PKG_NSF3+46
+ errortext(ERR_UNABLE_TO_DELETE, "Compaction failed: Unable to delete %p")
+#define ERR_DB_ALREADY_OPEN PKG_NSF3+47
+ errortext(ERR_DB_ALREADY_OPEN, "Database is already open")
+#define ERR_UNAME_NOT_UNIQUE PKG_NSF3+48
+ errortext(ERR_UNAME_NOT_UNIQUE, "Unique Document Name is already used")
+#define ERR_UNAME_ALREADY_NAMED PKG_NSF3+49
+ errortext(ERR_UNAME_ALREADY_NAMED, "Note already has a Unique Document Name")
+#define ERR_NOTE_ALREADY_OPEN PKG_NSF3+50
+ errortext(ERR_NOTE_ALREADY_OPEN, "Note is already open")
+#define ERR_FIXUP_FOLDER_PURGED_NO_DELETE PKG_NSF3+51
+ errortext(ERR_FIXUP_FOLDER_PURGED_NO_DELETE, "Folder %s (NT%08lx) in database %p is corrupted. This folder will be purged on the next access of this database: %s")
+#define ERR_UNABLE_TO_CREATE_MSGID PKG_NSF3+52
+ errortext(ERR_UNABLE_TO_CREATE_MSGID, "Unable to create a message-id")
+#define ERR_NNTP_IN_DB_INDEX PKG_NSF3+53
+ internaltext(ERR_NNTP_IN_DB_INDEX, "The News/NNTP database name was found in the db index")
+#define ERR_NNTP_NO_MORE_DBNAMES PKG_NSF3+54
+ errortext(ERR_NNTP_NO_MORE_DBNAMES, "Could not create a News/NNTP database name")
+#define ERR_NOTE_HIT_64K_COMPUTE_LIMIT PKG_NSF3+55
+ errortext(ERR_NOTE_HIT_64K_COMPUTE_LIMIT, "Note ID %lu has items that are causing the Compute subsystem to generate a 64K error. This note will not be included in search results.")
+#define ERR_NNTP_NEWSGROUP_EXISTS PKG_NSF3+56
+ errortext(ERR_NNTP_NEWSGROUP_EXISTS,"An NNTP Newsgroup of that name already exists")
+#define ERR_NNTP_BAD_NEWSGROUP_NAME PKG_NSF3+57
+ errortext(ERR_NNTP_BAD_NEWSGROUP_NAME,"Invalid characters in Newsgroup name")
+#define MSG_NNTP_ARCHIVE_HELPER PKG_NSF3+58
+ errortext(MSG_NNTP_ARCHIVE_HELPER, "An existing archive database has been specified. Please use the following options to specify what should be done to the original archive database.")
+#define ERR_NULL_NOTEHANDLE PKG_NSF3+59
+ errortext(ERR_NULL_NOTEHANDLE, "The note handle is NULL.")
+#define ERR_ITEM_NEWNAME_TOO_LONG PKG_NSF3+60
+ errortext(ERR_ITEM_NEWNAME_TOO_LONG,"The new item name is too long to fit over the existing name.")
+#define ERR_DBALLOC_SIZE_ZERO PKG_NSF3+61
+ errortext(ERR_DBALLOC_SIZE_ZERO, "Detected zero length file space allocation.")
+#define ERR_FILE_MODIFIED_ATOS PKG_NSF3+62
+ errortext(ERR_FILE_MODIFIED_ATOS, "File modified at operating-system level while cached, please retry open.")
+#define ERR_FIXUP_NEEDED PKG_NSF3+63
+ errortext(ERR_FIXUP_NEEDED, "Database Fixup needed: %s.")
+#define ERR_RM_FILTER_LOG_RECORD PKG_NSF3+64
+ internaltext(ERR_RM_FILTER_LOG_RECORD, "Recovery Manager: Filtered current Log Record")
+#define ERR_RM_FIXUP_DB PKG_NSF3+65
+ errortext(ERR_RM_FIXUP_DB, "Recovery Manager: Database is damaged and requires Fixup -j or Media Recovery")
+#define ERR_RM_DOT_ENTRY_NOT_FOUND PKG_NSF3+66
+ internaltext(ERR_RM_DOT_ENTRY_NOT_FOUND, "Recovery Manager: Dirty Object not found it table")
+#define ERR_RM_DOT_POOL_FAILURE PKG_NSF3+67
+ errortext(ERR_RM_DOT_POOL_FAILURE, "Recovery Manager: Insufficient memory - Dirty Object Pool is full")
+#define ERR_RM_LOG_FULL PKG_NSF3+68
+ errortext(ERR_RM_LOG_FULL, "Recovery Manager: Log File is Full, try again later")
+#define ERR_RM_GENERAL_FAILURE PKG_NSF3+69
+ errortext(ERR_RM_GENERAL_FAILURE, "Recovery Manager: General failure")
+#define ERR_LR_RECOVERY_FAILURE PKG_NSF3+70
+ errortext(ERR_LR_RECOVERY_FAILURE, "Recovery : General failure")
+#define ERR_ONLY_V5_DATABASES PKG_NSF3+71
+ errortext(ERR_ONLY_V5_DATABASES, "Function not supported for pre-R5 format databases")
+#define ERR_NBRO_CORRUPT PKG_NSF3+72
+ internaltext(ERR_NBRO_CORRUPT, "Non-bucketized response object is corrupt, perhaps partially written")
+#define ERR_NBNS_CORRUPT PKG_NSF3+73
+ internaltext(ERR_NBNS_CORRUPT, "Non-bucketized nonsummary data is corrupt, perhaps partially written")
+#define ERR_DUPLICATE_ATTACHMENT PKG_NSF3+74
+ errortext(ERR_DUPLICATE_ATTACHMENT, "Attachment found on more than one document.")
+#define ERR_UBMLASTUNPIN PKG_NSF3+75
+ errortext(ERR_UBMLASTUNPIN, "Attempted last unpin of discarded buffer under roll forward")
+#define ERR_RUN_FIXUP PKG_NSF3+76
+ errortext(ERR_RUN_FIXUP, "Please run Fixup on database and retry operation.")
+#define ERR_NOFOLDERREORG_DURING_COMPACT PKG_NSF3+77
+ errortext(ERR_NOFOLDERREORG_DURING_COMPACT, "Folders may not be reorganized during compaction, please retry.")
+#define ERR_MONITORS_NOT_ALLOWED PKG_NSF3+78
+ errortext(ERR_MONITORS_NOT_ALLOWED, "Monitors are not allowed on this database.")
+#define ERR_MORE_EVENTS PKG_NSF3+79
+ errortext(ERR_MORE_EVENTS, "More events are available for this client.")
+#define ERR_NO_SUCH_CLIENT PKG_NSF3+80
+ errortext(ERR_NO_SUCH_CLIENT, "Monitor client not known by server.")
+#define ERR_NSF_MONITOR_POOLFULL PKG_NSF3+81
+ errortext(ERR_NSF_MONITOR_POOLFULL, "Insufficient memory - NSF monitor pool is full.")
+#define ERR_MONITOR_ALREADY_REGISTERED PKG_NSF3+82
+ errortext(ERR_MONITOR_ALREADY_REGISTERED, "Monitor has already been registered, no action taken.")
+#define ERR_UNKNOWN_MONITOR_CLIENT PKG_NSF3+83
+ errortext(ERR_UNKNOWN_MONITOR_CLIENT, "Monitor client not known.")
+#define ERR_OLD_INDEX_VERSION PKG_NSF3+84
+ internaltext(ERR_OLD_INDEX_VERSION, "Encountered old index (container) version - ignoring.")
+#define ERR_IGNORE_SRFILL_ERROR PKG_NSF3+85
+ errortext(ERR_IGNORE_SRFILL_ERROR, "Note ID NT%08lx - %e. This note will not be included in search results.")
+#define ERR_OLE_STORAGE_TYPE PKG_NSF3+86
+ internaltext(ERR_OLE_STORAGE_TYPE, "OLE storage type not correct.")
+#define ERR_MIME_PART_EXPECTED PKG_NSF3+87
+ errortext(ERR_MIME_PART_EXPECTED, "Incorrect data type: MIME part expected.")
+#define ERR_MIME_PARSE_MORE_DATA PKG_NSF3+88
+ internaltext(ERR_MIME_PARSE_MORE_DATA,"Internal only - MIME parser needs more data.")
+#define ERR_MIME_PARSE_BAD_DATA PKG_NSF3+89
+ errortext(ERR_MIME_PARSE_BAD_DATA, "Incorrect format in MIME data.")
+#define ERR_MIME_PARSE_NOT_FOUND PKG_NSF3+90
+ internaltext(ERR_MIME_PARSE_NOT_FOUND,"Internal only - String not found in MIME data.")
+#define ERR_MIME_PART_OVERFLOW PKG_NSF3+91
+ errortext(ERR_MIME_PART_OVERFLOW, "Data too large for MIME part item.")
+#define ERR_NO_SUCH_TRANSLOG PKG_NSF3+92
+ errortext(ERR_NO_SUCH_TRANSLOG, "The specified transaction log file is not in the list of files to be archived.")
+#define ERR_NO_ARCHIVED_EXTENT PKG_NSF3+93
+ errortext(ERR_NO_ARCHIVED_EXTENT, "No extent on the archive list has been archived.")
+#define ERR_NO_TRANSLOGS_TO_ARCHIVE PKG_NSF3+94
+ errortext(ERR_NO_TRANSLOGS_TO_ARCHIVE, "No transaction log files are waiting to be archived.")
+#define ERR_RM_LOG_FORMAT PKG_NSF3+95
+ errortext(ERR_RM_LOG_FORMAT, "Recovery Manager: Log format not supported.")
+#define ERR_NO_ARCHIVE_SPECIFIED PKG_NSF3+96
+ errortext(ERR_NO_ARCHIVE_SPECIFIED, "No archive database specified")
+#define ERR_CONTAINER_CORRUPT PKG_NSF3+97
+ internaltext(ERR_CONTAINER_CORRUPT, "Database container is corrupt and must be rebuilt.")
+#define ERR_DBCACHE_CLOSED PKG_NSF3+98
+ internaltext(ERR_DBCACHE_CLOSED, "Db Cache is not open")
+#define ERR_RM_MQ_LOG_ERROR PKG_NSF3+99
+ errortext(ERR_RM_MQ_LOG_ERROR, "Recovery Manager: Error from Logging Subsystem.")
+#define ERR_NSF_CORRUPT_NAMEDOBJECT PKG_NSF3+100
+ errortext(ERR_NSF_CORRUPT_NAMEDOBJECT, "Database is damaged and can't be repaired (Named Object Table).")
+#define ERR_EH_DELETE_ENTRY PKG_NSF3+101
+ internaltext(ERR_EH_DELETE_ENTRY, "Internal only - delete ehash entry.")
+#define ERR_EH_UPDATE_ENTRY PKG_NSF3+102
+ internaltext(ERR_EH_UPDATE_ENTRY, "Internal only - update ehash entry.")
+#define ERR_RM_END_OF_LOG PKG_NSF3+103
+ internaltext(ERR_RM_END_OF_LOG, "Recovery Manager: Read past End of Log.")
+#define ERR_RM_SCAN_IN_PROGRESS PKG_NSF3+104
+ errortext(ERR_RM_SCAN_IN_PROGRESS, "Recovery Manager: Log scan in progress, try again later.")
+#define ERR_RM_LOG_SPACE_CRITICAL PKG_NSF3+105
+ errortext(ERR_RM_LOG_SPACE_CRITICAL, "Recovery Manager: Log space is becoming critical.")
+#define ERR_DBINUSE PKG_NSF3+106
+ errortext(ERR_DBINUSE, "The database is in use and cannot be taken off-line.")
+#define ERR_RM_LATE_BACKUP PKG_NSF3+107
+ errortext(ERR_RM_LATE_BACKUP, "Recovery Manager: Backup was later than recovery point in time.")
+
+#define STR_ARC_CREATED_BY PKG_NSF3+108
+ stringtext(STR_ARC_CREATED_BY, "\t%s (created by %s on %z)\n\n|\tError creating document link for note ID %lu : %s\n\n")
+#define IDX_ARC_DOCLINK_CREATED_BY 1
+#define IDX_ARC_DOCLINK_ERROR 2
+
+/* Use OSLoadSubString to load substrings - english total length<80! */
+#define STR_ARC_MISC PKG_NSF3+109
+ stringtext(STR_ARC_MISC, "Local| (Archive) |DocLink to|Archive Logs|day|days|Archive Logs for %s")
+
+#define IDX_ARC_VALUE_LOCAL 1
+#define IDX_ARC_MISC_TITLE 2
+#define IDX_ARC_MISC_LINK 3
+#define IDX_ARC_LOG_TITLE 4
+#define IDX_ARC_MISC_DAY 5
+#define IDX_ARC_MISC_DAYS 6
+#define IDX_ARC_LOG_TITLE_FOR 7
+
+#define STR_ARC_TRAILER_TITLE PKG_NSF3+110
+ stringtext(STR_ARC_TRAILER_TITLE, "Archive log for documents")
+#define STR_ARC_COMPLETED PKG_NSF3+111
+ stringtext(STR_ARC_COMPLETED, "from %a (%p) to %a (%p) completed successfully on %z.")
+#define STR_ARC_EXPIRED_DOCS PKG_NSF3+112
+ stringtext(STR_ARC_EXPIRED_DOCS, "Expired documents are archived after")
+#define STR_ARC_INACTIVE_DOCS PKG_NSF3+113
+ stringtext(STR_ARC_INACTIVE_DOCS, "Inactive documents are archived after")
+#define STR_ARC_MODIFIED_DOCS PKG_NSF3+114
+ stringtext(STR_ARC_MODIFIED_DOCS, "Modified documents are archived after")
+#define ERR_RM_OPEN_BACKUP PKG_NSF3+115
+ errortext(ERR_RM_OPEN_BACKUP, "Recovery Manager: You must restore or fixup a logged backup before use.")
+#define ERR_RM_DBIID_IN_USE PKG_NSF3+116
+ errortext(ERR_RM_DBIID_IN_USE, "Recovery Manager: Database ID already in use, must use fixup to reassign.")
+#define ERR_RM_DOWN_LEVEL PKG_NSF3+117
+ errortext(ERR_RM_DOWN_LEVEL, "Recovery Manager: Database is not latest copy.")
+#define ERR_RM_NOTE_LRFAILURE PKG_NSF3+118
+ errortext(ERR_RM_NOTE_LRFAILURE, "Recovery Manager: General Failure doing Note Undo/Redo.")
+#define ERR_RM_ZAPLSN_NEEDED PKG_NSF3+119
+ internaltext(ERR_RM_ZAPLSN_NEEDED, "Recovery Manager: Database from different log cannot be verified until normal open.")
+#define ERR_RM_RECD_TRUNCATED PKG_NSF3+120
+ internaltext(ERR_RM_RECD_TRUNCATED, "Recovery Manager: Warning - Log Record Read was Truncated.")
+#define ERR_DBOFFLINE PKG_NSF3+121
+ errortext(ERR_DBOFFLINE, "The database is being taken off-line and cannot be opened.")
+#define ERR_RM_RECOVER_NONBACKUP PKG_NSF3+122
+ errortext(ERR_RM_RECOVER_NONBACKUP, "Recovery Manager: Recovery only supported for Backup Files.")
+#define ERR_NO_ARCHIVELOG_SPECIFIED PKG_NSF3+123
+ errortext(ERR_NO_ARCHIVELOG_SPECIFIED, "No archive log database specified")
+#define ERR_NOT_LOCK_DB PKG_NSF3+124
+ errortext(ERR_NOT_LOCK_DB, "Attempted a lock operation on a DB that doesn't support locking")
+#define ERR_NOTE_LOCKED PKG_NSF3+125
+ errortext(ERR_NOTE_LOCKED, "The document is already locked by %s")
+#define ERR_RM_LOG_PARSE_TRUNCATED PKG_NSF3+126
+ internaltext(ERR_RM_LOG_PARSE_TRUNCATED, "Recovery Manager: Log parse of segments was truncated.")
+#define ERR_SERVER_NOT_TRANSLOGGED PKG_NSF3+127
+ errortext(ERR_SERVER_NOT_TRANSLOGGED, "Transactional Logging must be enabled for this function.")
+
+/* PKG_NSF3 codes limited to 0-127 */
+
+#define ERR_RM_SKIP_FIXUP PKG_NSF4+0
+ errortext(ERR_RM_SKIP_FIXUP, "Recovery Manager: Preserving backups by skipping fixup of logged DB without -j switch, DB=%p")
+#define ERR_TRANSLOG_NOT_ARCHIVED PKG_NSF4+1
+ internaltext(ERR_TRANSLOG_NOT_ARCHIVED, "Transaction log not archived.")
+#define ERR_RM_NEW_DBIID PKG_NSF4+2
+ errortext(ERR_RM_NEW_DBIID, "Recovery Manager: Assigning new DBIID for %p (need new backup for media recovery).")
+#define ERR_RM_MEDIA_RECOVERY PKG_NSF4+3
+ errortext(ERR_RM_MEDIA_RECOVERY, "Recovery Manager: Media Recovery complete for %p, last update applied %z.")
+#define ERR_BACKUP_ALREADY_IN_PROGRESS PKG_NSF4+4
+ errortext(ERR_BACKUP_ALREADY_IN_PROGRESS, "Attempt to backup a database that is currently being backed up.")
+#define ERR_NOT_DOING_BACKUP PKG_NSF4+5
+ errortext(ERR_NOT_DOING_BACKUP, "Requested operation only allowed while database is being backed up.")
+#define ERR_INVALID_CHANGE_INFO_CONTEXT PKG_NSF4+6
+ errortext(ERR_INVALID_CHANGE_INFO_CONTEXT, "Change3 Information Context is invalid.")
+#define ERR_CORRUPT_CHANGE_INFO PKG_NSF4+7
+ errortext(ERR_CORRUPT_CHANGE_INFO, "The change information is corrupt or not associated with this file.")
+#define ERR_RM_RESTART_RECOVERY PKG_NSF4+8
+ errortext(ERR_RM_RESTART_RECOVERY, "Recovery Manager: Restart Recovery complete. (%d/%d databases needed full/partial recovery)")
+#define ERR_RM_DUP_DBIID PKG_NSF4+9
+ errortext(ERR_RM_DUP_DBIID, "Recovery Manager: Warning duplicate DBIID detected: DB1=%p DB2=%p")
+#define ERR_RM_STATUS_ANALYSIS PKG_NSF4+10
+ errortext(ERR_RM_STATUS_ANALYSIS, "Restart Analysis")
+#define ERR_RM_DB_MISSING PKG_NSF4+11
+ errortext(ERR_RM_DB_MISSING, "Recovery Manager: Database Instance ID not found for what was")
+#define ERR_ADMIN_REQ_DB_NOT_INIT PKG_NSF4+12
+ errortext(ERR_ADMIN_REQ_DB_NOT_INIT,"The Administration Request Database cannot be opened; it has not yet been initialized by the Administration Process.")
+#define ERR_SELF_REFERENCING_DOCUMENT PKG_NSF4+13
+ errortext(ERR_SELF_REFERENCING_DOCUMENT ,"Attempt to create a self-referencing document.")
+#define ERR_TRANSLOG_ARCHIVE_IN_PROGRESS PKG_NSF4+14
+ errortext(ERR_TRANSLOG_ARCHIVE_IN_PROGRESS, "Archiving of transaction logs already in progress.")
+#define ERR_UBMCANTEVICT PKG_NSF4+15
+ errortext(ERR_UBMCANTEVICT, "UBM I/O Method could not evict page.")
+#define ERR_FILEDOCMAX PKG_NSF4+16
+ errortext(ERR_FILEDOCMAX, "Database (.nsf) has too many documents.")
+#define ERR_RM_STATUS_REDO PKG_NSF4+17
+ errortext(ERR_RM_STATUS_REDO, "Restart Replay")
+#define ERR_RM_STATUS_MREDO PKG_NSF4+18
+ errortext(ERR_RM_STATUS_MREDO, "Media Recovery Replay")
+#define ERR_EH_AT_MAX PKG_NSF4+19
+ internaltext(ERR_EH_AT_MAX, "Operation cannot be performed because ehash has reached max size.")
+#define ERR_EH_DATA_TOO_BIG PKG_NSF4+20
+ internaltext(ERR_EH_DATA_TOO_BIG, "Data is too large for ehash")
+#define ERR_STOP_ENUM PKG_NSF4+21
+ internaltext(ERR_STOP_ENUM, "Internal only - stop enumeration (of design notes, named object, ehash, etc)")
+#define ERR_BUFFER_TOO_SMALL PKG_NSF4+22
+ internaltext(ERR_BUFFER_TOO_SMALL, "Internal only - buffer caller provided is too small")
+#define STR_RM_CHECKPOINT_THREAD PKG_NSF4+23
+ stringtext(STR_RM_CHECKPOINT_THREAD, "Recovery Manager Checkpoint Thread")
+#define STR_RM_FLUSH_THREAD PKG_NSF4+24
+ stringtext(STR_RM_FLUSH_THREAD, "Recovery Manager DB Flushing Thread")
+#define ERR_CVS_INIT_FAILED PKG_NSF4+25
+ errortext(ERR_CVS_INIT_FAILED, "CVS initialization failed.")
+#define ERR_DUPLICATE_NOTEID PKG_NSF4+26
+ errortext(ERR_DUPLICATE_NOTEID, "Database already contains a document with this ID (NOTEID)")
+#define ERR_ARC_INCORRECT_PROFILE PKG_NSF4+27
+ errortext(ERR_ARC_INCORRECT_PROFILE, "Incorrect archive profile.")
+#define ERR_ARC_REQ_SRC_ACCESS PKG_NSF4+28
+ errortext(ERR_ARC_REQ_SRC_ACCESS, "Signer does not have the required access rights to the source database.")
+#define ERR_ARC_REQ_ARC_ACCESS PKG_NSF4+29
+ errortext(ERR_ARC_REQ_ARC_ACCESS, "Signer does not have the required access rights to the archive database.")
+#define ERR_ARC_INCORRECT_SVR PKG_NSF4+30
+ errortext(ERR_ARC_INCORRECT_SVR, "Archiving server not configured properly.")
+#define ERR_ARC_ARCFILE_NOT_ON_SVR PKG_NSF4+31
+ errortext(ERR_ARC_ARCFILE_NOT_ON_SVR, "Archive must be on archiving server.")
+
+/* PKG_NSF4 codes limited to 0-31 */
+
+#define ERR_ARC_NOT_ENABLED PKG_NSF5+0
+ errortext(ERR_ARC_NOT_ENABLED, "Archiving is not enabled.")
+
+#define ERR_QUOTA_LESS_THAN_WARNING PKG_NSF5+1
+ errortext(ERR_QUOTA_LESS_THAN_WARNING, "Cannot set quota to less than warning.")
+
+/* Use OSLoadSubString to load substrings - english total length<80!
+ Append strings onto this guy but don't delete or change the order */
+#define STR_ADDIN_NSF_GEN_MSG_1 PKG_NSF5+2
+ stringtext(STR_ADDIN_NSF_GEN_MSG_1,"Creating Administration Requests database")
+#define IDX_GEN_CREATE_ADMIN4 1
+
+#define ERR_ADDRESS_MISMATCH PKG_NSF5+3
+ errortext(ERR_ADDRESS_MISMATCH, "Signer address mismatch")
+
+#define ERR_MIXED_SECURITY PKG_NSF5+4
+ errortext(ERR_MIXED_SECURITY, "Cannot SMIME encrypt a note that has already been Notes signed or encrypted.")
+#define NSFSTR_TRANSLOG_DAMAGED PKG_NSF5+5
+ stringtext(NSFSTR_TRANSLOG_DAMAGED, "Transaction log is damaged!")
+#define NSFSTR_TRANSLOG_BAD_LOCATION PKG_NSF5+6
+ stringtext(NSFSTR_TRANSLOG_BAD_LOCATION, "Transaction log path does not exist or is not accessible.")
+#define NSFSTR_TRANSLOG_NEW_PATH PKG_NSF5+7
+ stringtext(NSFSTR_TRANSLOG_NEW_PATH,"Unable to create or access transaction log path")
+#define NSFSTR_TRANSLOG_OLD_PATH PKG_NSF5+8
+ stringtext(NSFSTR_TRANSLOG_OLD_PATH,"Path to transaction log does not match actual path, using old path. Please UPDATE SERVER RECORD.")
+#define ERR_DUPLICATE_UNK PKG_NSF5+9
+ internaltext(ERR_DUPLICATE_UNK, "Duplicate UNK found in UNK table")
+#define ERR_CMD_SHOW_NSFPOOL PKG_NSF5+10
+ stringtext(ERR_CMD_SHOW_NSFPOOL, "NSFPOOL")
+#define ERR_HELP_SHOW_NSFPOOL PKG_NSF5+11
+ stringtext(ERR_HELP_SHOW_NSFPOOL, "* Show the contents of the Server's NSF pool.")
+#define ERR_MIME_NO_822HDR_NAME PKG_NSF5+12
+ errortext(ERR_MIME_NO_822HDR_NAME, "Invalid or missing RFC822 header name.")
+#define ERR_MIME_NO_822HDR_DELIM PKG_NSF5+13
+ errortext(ERR_MIME_NO_822HDR_DELIM, "Invalid or missing RFC822 header delimiter.")
+#define ERR_AGER_FILE_OPEN_FAILED PKG_NSF5+14
+ internaltext(ERR_AGER_FILE_OPEN_FAILED, "Ager failed to open database.")
+#define ERR_CHILD_MUST_BE_DATA_NOTE PKG_NSF5+15
+ errortext(ERR_CHILD_MUST_BE_DATA_NOTE, "Children of DATA notes must be DATA notes.")
+
+ /* PKG_NSF5 codes limited to 0-15 */
+
+#define ERR_EM_SUCCESS PKG_NSF6+0
+ internaltext(ERR_EM_SUCCESS, "success")
+#define ERR_NSF_NOT_SUPPORTED PKG_NSF6+1
+ errortext(ERR_NSF_NOT_SUPPORTED, "This routine is not supported on this platform.")
+#define ERR_LOG_RESPONSE_CYCLE PKG_NSF6+2
+ errortext(ERR_LOG_RESPONSE_CYCLE, "This operation on %p (NoteID = %lu) creates a cycle in the response hierarchy")
+#define ERR_INVALID_BT_CONTEXT_SIG PKG_NSF6+3
+ errortext(ERR_INVALID_BT_CONTEXT_SIG, "Invalid btree context signature")
+#define ERR_INVALID_BT_ENTRY PKG_NSF6+4
+ errortext(ERR_INVALID_BT_ENTRY, "Invalid btree entry")
+#define ERR_INVALID_BT_LEVEL PKG_NSF6+5
+ errortext(ERR_INVALID_BT_LEVEL, "Invalid btree level")
+#define ERR_INVALID_BT_SIBLING_DIR PKG_NSF6+6
+ errortext(ERR_INVALID_BT_SIBLING_DIR, "Invalid btree sibling direction")
+#define ERR_CORRUPT_BT_CONTEXT_SIG PKG_NSF6+7
+ errortext(ERR_CORRUPT_BT_CONTEXT_SIG, "Btree context signature marked corrupt")
+#define ERR_NULL_BT_CONTEXT_SIG PKG_NSF6+8
+ errortext(ERR_NULL_BT_CONTEXT_SIG, "Btree context signature is NULL")
+#define ERR_INVALID_BT_NODESIZE PKG_NSF6+9
+ errortext(ERR_INVALID_BT_NODESIZE, "Invalid btree node size")
+#define ERR_INVALID_LONGDATA_SIZE PKG_NSF6+10
+ errortext(ERR_INVALID_LONGDATA_SIZE, "Invalid btree longdata size")
+#define ERR_BT_ENTRY_NOT_MAX PKG_NSF6+11
+ errortext(ERR_BT_ENTRY_NOT_MAX, "Invalid btree max entry")
+#define ERR_INVALID_BT_SUBINDEX_REFCNT PKG_NSF6+12
+ errortext(ERR_INVALID_BT_SUBINDEX_REFCNT, "Invalid btree subindex reference count")
+#define ERR_INVALID_BT_DESC_DATASIZE PKG_NSF6+13
+ errortext(ERR_INVALID_BT_DESC_DATASIZE, "Invalid btree descriptor data size")
+#define ERR_INVALID_BT_DATASIZE PKG_NSF6+14
+ errortext(ERR_INVALID_BT_DATASIZE, "Invalid btree entry data size")
+#define ERR_INVALID_BT_KEYSIZE PKG_NSF6+15
+ errortext(ERR_INVALID_BT_KEYSIZE, "Invalid btree entry key size")
+
+ /* PKG_NSF6 codes limited to 0-15 */
+
+#define ERR_BT_SPLIT_SLOTTED_NODE PKG_NSF7+0
+ errortext(ERR_BT_SPLIT_SLOTTED_NODE, "Invalid btree split of a slotted node")
+#define ERR_BT_SPLIT_POINT PKG_NSF7+1
+ errortext(ERR_BT_SPLIT_POINT, "Invalid btree split point")
+#define ERR_BT_BAD_POSITION PKG_NSF7+2
+ errortext(ERR_BT_BAD_POSITION, "Invalid btree node position")
+#define ERR_BT_DELETE_NONEMPTY_ROOT PKG_NSF7+3
+ errortext(ERR_BT_DELETE_NONEMPTY_ROOT, "Invalid btree delete of a nonempty root node")
+#define ERR_BT_TRAVERSAL_BROKEN PKG_NSF7+4
+ errortext(ERR_BT_TRAVERSAL_BROKEN, "Invalid btree traversal")
+#define ERR_BT_BAD_CARDINALITY PKG_NSF7+5
+ errortext(ERR_BT_BAD_CARDINALITY, "Invalid btree cardinality")
+#define ERR_INVALID_BT_DESC PKG_NSF7+6
+ errortext(ERR_INVALID_BT_DESC, "Invalid btree descriptor")
+#define ERR_INVALID_BT_ADDR PKG_NSF7+7
+ errortext(ERR_INVALID_BT_ADDR, "Invalid btree address")
+#define ERR_CMD_SET_SCOS PKG_NSF7+8
+ stringtext(ERR_CMD_SET_SCOS,"SCOS [Database Path] [Active/Inactive]")
+#define ERR_HELP_SET_SCOS PKG_NSF7+9
+ stringtext(ERR_HELP_SET_SCOS,"Activate/Inactivate SCOS database")
+#define ERR_ROUTER_SCOS_INVALID (PKG_NSF7+10)
+ errortext(ERR_ROUTER_SCOS_INVALID, "\nRouter: obsolete shared mail command.")
+#define ERR_SCOS_NUM_FILES_REQ PKG_NSF7+11
+ errortext(ERR_SCOS_NUM_FILES_REQ, "\nRequested files (%d) for %s exceeds the server maximum %d files.\nCreating: %d file(s).\n")
+#define ERR_SCOS_DIR_MAX_FILE_SPEC PKG_NSF7+12
+ errortext(ERR_SCOS_DIR_MAX_FILE_SPEC, "SCOS_DIR_MAX_FILES_%d")
+#define ERR_SCOS_DIR_MAX_SIZE_SPEC PKG_NSF7+13
+ errortext(ERR_SCOS_DIR_MAX_SIZE_SPEC, "SCOS_DIR_MAX_SIZE_MB_%d")
+#define ERR_SCOS_DIR_MAX_FILE_SIZE_SPEC PKG_NSF7+14
+ errortext(ERR_SCOS_DIR_MAX_FILE_SIZE_SPEC, "SCOS_DIR_MAX_FILE_SIZE_MB_%d")
+#define ERR_SCOS_NOT_RUNNING PKG_NSF7+15
+ errortext(ERR_SCOS_NOT_RUNNING, "The SCOS database is not running.\n")
+#define ERR_DBG_SHOW_HEAD PKG_NSF7+16
+ errortext(ERR_DBG_SHOW_HEAD,"\n\nDatabase\t\tAvailability\tState\t\t\tSize\n")
+#define ERR_NOTE_ALREADY_LOCKED_BY_LOCKER PKG_NSF7+17
+ errortext(ERR_NOTE_ALREADY_LOCKED_BY_LOCKER, "You already have the document locked")
+#define ERR_NOTE_NOT_LOCKED_BY_LOCKER PKG_NSF7+18
+ errortext(ERR_NOTE_NOT_LOCKED_BY_LOCKER, "The document is not locked by you")
+#define ERR_DBG_KB PKG_NSF7+19
+ errortext(ERR_DBG_KB, "KB")
+#define ERR_DBG_MB PKG_NSF7+20
+ errortext(ERR_DBG_MB, "MB")
+#define ERR_DBG_INV_PATH PKG_NSF7+21
+ errortext(ERR_DBG_INV_PATH, "\nInvalid path: %s")
+#define ERR_DBG_ACTIVE PKG_NSF7+22
+ errortext(ERR_DBG_ACTIVE, "Active ")
+#define ERR_DBG_INACTIVE PKG_NSF7+23
+ errortext(ERR_DBG_INACTIVE, "Inactive")
+#define ERR_NO_MORE_RRVS PKG_NSF7+24
+ errortext(ERR_NO_MORE_RRVS, "Cannot allocate RRV, please create new replica.")
+#define ERR_IMAP_ALREADYENABLED PKG_NSF7+25
+ errortext(ERR_IMAP_ALREADYENABLED, "Database is already IMAP enabled")
+#define ERR_IMAP_ALREADYDISABLED PKG_NSF7+26
+ errortext(ERR_IMAP_ALREADYDISABLED, "Database is already IMAP disabled")
+#define ERR_INVALID_FOLDER_REFCOUNT_OP PKG_NSF7+27
+ errortext(ERR_INVALID_FOLDER_REFCOUNT_OP, "Invalid folder refcount operation")
+#define ERR_NOACCESS_FOR_REPORCOPY PKG_NSF7+28
+ errortext(ERR_NOACCESS_FOR_REPORCOPY, "You are not authorized to replicate or copy data from this database.")
+#define ERR_DBG_OPEN_DELIVERY PKG_NSF7+29
+ errortext(ERR_DBG_OPEN_DELIVERY , "open for delivery ")
+#define ERR_DBG_CLOSED_DELIVERY PKG_NSF7+30
+ errortext(ERR_DBG_CLOSED_DELIVERY , "closed for delivery")
+#define ERR_DBG_TOTAL_SIZE PKG_NSF7+31
+ errortext(ERR_DBG_TOTAL_SIZE, "\n\nTotal Database Disk Size in Directory: %d.%02d MB")
+
+ /* PKG_NSF7 codes limited to 0-31 */
+
+#define ERR_DBG_AVAIL_SIZE PKG_NSF8+0
+ errortext(ERR_DBG_AVAIL_SIZE, "\nTotal Database Disk Available in Directory: %d.%02d MB")
+#define ERR_DBG_FREE_SIZE PKG_NSF8+1
+ errortext(ERR_DBG_FREE_SIZE, "\n\nTotal Database Internal Free Space for Directory: %d.%02d MB\n\n")
+#define ERR_DBG_ENABLED PKG_NSF8+2
+ errortext(ERR_DBG_ENABLED , "Enabled ")
+#define ERR_DBG_DISABLED PKG_NSF8+3
+ errortext(ERR_DBG_DISABLED , "Error ")
+#define ERR_SCOS_DIR PKG_NSF8+4
+ errortext(ERR_SCOS_DIR, "\nRequested zero files (%d), or max size (%d) for the SCOS directory %s.\n")
+#define ERR_SCOS_FILE_SIZE PKG_NSF8+5
+ errortext(ERR_SCOS_FILE_SIZE,"\nSCOS database specification out of range in the notes.ini file. The size of the database is in megabyte units.")
+#define ERR_SCOS_SIZE_FILES PKG_NSF8+6
+ errortext(ERR_SCOS_SIZE_FILES, "\nSCOS directory %s - total size (%d) exceeds maximum (%d).\n")
+#define ERR_SCOS_NO_DIR PKG_NSF8+7
+ errortext(ERR_SCOS_NO_DIR, "\nDirectory %s ignored, the directory (or link) does not exist.\n")
+#define ERR_DBG_INV_SPEC PKG_NSF8+8
+ errortext(ERR_DBG_INV_SPEC, "\nDirectory %s ignored, invalid specification - %s\n")
+#define ERR_SCOS_CREATE PKG_NSF8+9
+ errortext(ERR_SCOS_CREATE, "\nCreating SCOS file: %s.\n")
+#define ERR_DBG_DUPE PKG_NSF8+10
+ errortext(ERR_DBG_DUPE, "Duplicate")
+#define ERR_SCOS_NO_CREATE PKG_NSF8+11
+ errortext(ERR_SCOS_NO_CREATE, "\nCould not create SCOS database %s.\n")
+#define ERR_SCOS_DIR_SPEC PKG_NSF8+12
+ errortext(ERR_SCOS_DIR_SPEC, "SCOS_DIR_%d")
+#define ERR_SCOS_DIR_NUM_FILE_SPEC PKG_NSF8+13
+ errortext(ERR_SCOS_DIR_NUM_FILE_SPEC, "SCOS_DIR_ACTIVE_FILES_%d")
+#define ERR_DBG_SHOW_DIR PKG_NSF8+14
+ errortext(ERR_DBG_SHOW_DIR, "\n\nDirectory: %s - %s")
+#define ERR_DBG_SHOW_REQ PKG_NSF8+15
+ errortext(ERR_DBG_SHOW_REQ, "\nNumber of delivery databases requested: %d.\nNumber of databases: %d\nMaximum Directory Size: %d MB")
+#define ERR_CMD_SHOW_SCOS PKG_NSF8+16
+ stringtext(ERR_CMD_SHOW_SCOS,"SCOS")
+#define ERR_HELP_SHOW_SCOS PKG_NSF8+17
+ stringtext(ERR_HELP_SHOW_SCOS,"Single copy object store information")
+#define ERR_NSFIMAP_FOLDERSLIST_POOLFULL PKG_NSF8+18
+ errortext(ERR_NSFIMAP_FOLDERSLIST_POOLFULL, "AVL tree for IMAP folder names is full.")
+#define ERR_NSFIMAP_INVALID_ARG PKG_NSF8+19
+ errortext(ERR_NSFIMAP_INVALID_ARG, "Invalid IMAP command argument")
+#define ERR_NSFIMAP_INTERNAL_SEARCH (PKG_NSF8+20)
+ errortext(ERR_NSFIMAP_INTERNAL_SEARCH, "Internal IMAP search error")
+#define ERR_NSFIMAP_UNSUPPORTED_CHARSET (PKG_NSF8+21)
+ errortext(ERR_NSFIMAP_UNSUPPORTED_CHARSET, "Unsupported CHARSET")
+#define ERR_NSFIMAP_SEARCH_UNSUPPORTED_CRITERIA_SIZE (PKG_NSF8+22)
+ errortext(ERR_NSFIMAP_SEARCH_UNSUPPORTED_CRITERIA_SIZE, "Searching by size (SMALLER, LARGER) is not supported")
+#define ERR_NSFIMAP_SEARCH_UNSUPPORTED_CRITERIA (PKG_NSF8+23)
+ errortext(ERR_NSFIMAP_SEARCH_UNSUPPORTED_CRITERIA, "Unsupported search criteria")
+#define ERR_NOT_DBIMAP_ENABLED PKG_NSF8+24
+ errortext(ERR_NOT_DBIMAP_ENABLED, "the database has not been enabled for IMAP support")
+#define ERR_DBG_TOO_LARGE PKG_NSF8+25
+ errortext(ERR_DBG_TOO_LARGE , "\nTotal size of the databases in directory is too large.")
+#define ERR_IMAPFOLDER_NOT_FOUND PKG_NSF8+26
+ errortext(ERR_IMAPFOLDER_NOT_FOUND, "Folder not found in IMAP name space")
+#define ERR_INVALID_IMAP_FLAGS PKG_NSF8+27
+ errortext(ERR_INVALID_IMAP_FLAGS, "Invalid IMAP flags value")
+#define ERR_INVALID_DBIMAP_CMD PKG_NSF8+28
+ errortext(ERR_INVALID_DBIMAP_CMD, "Invalid IMAP command flag")
+#define ERR_EM_RELOAD_NOTE PKG_NSF8+29
+ internaltext(ERR_EM_RELOAD_NOTE, "Reload hNote after NSFNoteUpdate")
+#define ERR_SCOS_DUPE_FILE PKG_NSF8+30
+ errortext(ERR_SCOS_DUPE_FILE, "\nSCOS database ignored: %s duplicate name to: %s\n")
+#define ERR_NO_SERVER_FOR_DB PKG_NSF8+31
+ errortext(ERR_NO_SERVER_FOR_DB, "No server containing a replica of the database is available")
+#define ERR_DB_NOT_LOCATED PKG_NSF8+32
+ errortext(ERR_DB_NOT_LOCATED, "Database can not be located in the Cluster")
+#define ERR_ENTRY_NOT_HASHED PKG_NSF8+33
+ errortext(ERR_ENTRY_NOT_HASHED, "Entry is not Hashed")
+#define ERR_HASH_NOT_CLEANED PKG_NSF8+34
+ errortext(ERR_HASH_NOT_CLEANED, "There are no entries to be cleaned from Hash")
+#define ERR_NSFXACL_OBJXACL_NOT_FOUND PKG_NSF8+35
+ errortext(ERR_NSFXACL_OBJXACL_NOT_FOUND, "extended ACL not found in the object")
+#define ERR_NSF_XACL_POOLFULL PKG_NSF8+36
+ errortext(ERR_NSF_XACL_POOLFULL, "Insufficient memory - NSF extended ACL pool is full.")
+#define ERR_SERVER_NOT_CLUSTERED PKG_NSF8+37
+ errortext(ERR_SERVER_NOT_CLUSTERED, "Server is not in the Cluster")
+#define ERR_CLCACHE_NOT_INITIALIZED PKG_NSF8+38
+ errortext(ERR_CLCACHE_NOT_INITIALIZED, "NSF Cluster Name Cache is not initialized yet")
+#define ERR_NSF_XACL_UNIDREBUILD PKG_NSF8+39
+ errortext(ERR_NSF_XACL_UNIDREBUILD, "Extended access control option has changed. Rebuilding UNID Index in database %s...")
+#define ERR_XML_EXCEPTION PKG_NSF8+40
+ errortext(ERR_XML_EXCEPTION, "\nXML parser exception occurred")
+#define ERR_XML_BUF_TOO_SMALL PKG_NSF8+41
+ errortext(ERR_XML_BUF_TOO_SMALL, "\nAllocated buffer too small")
+#define ERR_XML_WRONG_NODE_TYPE PKG_NSF8+42
+ errortext(ERR_XML_WRONG_NODE_TYPE, "\nUnrecognized node type")
+#define ERR_XML_CANNOT_OPEN_FILE PKG_NSF8+43
+ errortext(ERR_XML_CANNOT_OPEN_FILE, "\nCannot open the file")
+#define ERR_NOINPLACECOMPACT PKG_NSF8+44
+ errortext(ERR_NOINPLACECOMPACT, "In-place database compaction could not be performed as requested")
+#define ERR_INVALID_SEQNUM PKG_NSF8+45
+ errortext(ERR_INVALID_SEQNUM, "Invalid IMAP sequence number")
+#define ERR_DN_NOT_FOUND PKG_NSF8+46
+ errortext(ERR_DN_NOT_FOUND, "Note DN not found")
+#define ERR_XML_ITEM_NOT_FOUND PKG_NSF8+47
+ errortext(ERR_XML_ITEM_NOT_FOUND, "\nNote Item could not be found")
+#define ERR_XML_ITEM_EXISTS PKG_NSF8+48
+ errortext(ERR_XML_ITEM_EXISTS, "\nNote Item already exists")
+#define ERR_XML_SAXEXCEPTION PKG_NSF8+49
+ errortext(ERR_XML_SAXEXCEPTION, "\nXML SAX parser exception")
+#define ERR_SCHED_CANT_LOOKUP_USER PKG_NSF8+50
+ errortext(ERR_SCHED_CANT_LOOKUP_USER, "Error looking up user %a in Domino Directory for scheduling request")
+#define ERR_SCHED_USER_NOT_IN_NAB PKG_NSF8+51
+ errortext(ERR_SCHED_USER_NOT_IN_NAB, "Cannot find user in Domino Directory")
+#define ERR_SCHED_MULTIPLE_USERS PKG_NSF8+52
+ errortext(ERR_SCHED_MULTIPLE_USERS, "Warning: Multiple matches found for %a in Domino Directory, using first one found")
+#define ERR_SCHED_USER_IS_FORWARDED PKG_NSF8+53
+ errortext(ERR_SCHED_USER_IS_FORWARDED, "User's mail is being forwarded to another location")
+#define ERR_SCHED_USER_NOT_IN_CALDOMAIN PKG_NSF8+54
+ errortext(ERR_SCHED_USER_NOT_IN_CALDOMAIN, "User's calendar is not in this domain")
+#define ERR_NO_MASTER_LOCK_DB PKG_NSF8+55
+ errortext(ERR_NO_MASTER_LOCK_DB, "Unable to connect to Master Lock Database")
+#define ERR_LOCK_PROMOTED PKG_NSF8+56
+ errortext(ERR_LOCK_PROMOTED, "A provisional lock in database '%s' has been promoted to a hard lock. Document link is attached to this message")
+#define ERR_LOCK_NOT_PROMOTED PKG_NSF8+57
+ errortext(ERR_LOCK_NOT_PROMOTED, "A provisional lock in database '%s' has NOT been promoted to a hard lock. There was a conflict detected. Your changes may be found in body of this message. A document link to the original document is attached to the end of the message")
+#define ERR_CHANGES_PROMOTED PKG_NSF8+58
+ errortext(ERR_CHANGES_PROMOTED, "Changes made to database '%s' have been incorporated into the database with no conflicts. Document link is attached to message")
+#define ERR_CHANGES_NOT_PROMOTED PKG_NSF8+59
+ errortext(ERR_CHANGES_NOT_PROMOTED, "Changes made to database '%s' have NOT been incorporated into the database. There was a conflict detected. Your changes may be found in body of this message. A document link to the original document is attached to the end of the message.")
+#define ERR_NO_CLHASH PKG_NSF8+60
+ errortext(ERR_NO_CLHASH, "Cluster Hash Table has not been Initialized yet")
+#define ERR_DUP_SINGLE_COPY_TEMPLATE PKG_NSF8+61
+ errortext(ERR_DUP_SINGLE_COPY_TEMPLATE, "Multiple single copy templates with the same name are not allowed.")
+#define ERR_SINGLE_COPY_TEMPLATE_NAME PKG_NSF8+62
+ errortext(ERR_SINGLE_COPY_TEMPLATE_NAME, "Single copy template must have a unique master template name, and the file name must end in '.nt*'.")
+#define ERR_RESYNC_SINGLE_COPY_TEMPLATE PKG_NSF8+63
+ errortext(ERR_RESYNC_SINGLE_COPY_TEMPLATE, "Need to run design refresh on database %s to bring it up to date with its single copy template.")
+#define ERR_FIXING_DONE PKG_NSF8+64
+ errortext(ERR_FIXING_DONE, "Completed consistency check on %s")
+#define ERR_LKMGR_NOT_FOUND PKG_NSF8+65
+ internaltext(ERR_LKMGR_NOT_FOUND, "Lock Manager: Lock Not Found")
+#define ERR_LKMGR_DEADLOCK PKG_NSF8+66
+ errortext(ERR_LKMGR_DEADLOCK, "Lock Manager: Deadlock detected, retry transaction latter")
+#define ERR_FALSE_DEADLOCK PKG_NSF8+67
+ internaltext(ERR_FALSE_DEADLOCK, "Lock Manager: False Deadlock detected")
+#define ERR_LKMGR_POOL_FAILURE PKG_NSF8+68
+ errortext(ERR_LKMGR_POOL_FAILURE, "Lock Manager: Insufficient memory - Lock Manager Pool is full")
+#define ERR_KEY_DELETED PKG_NSF8+69
+ internaltext(ERR_KEY_DELETED, "Found a Pseudo Deleted Key")
+#define ERR_FOLDERSLIST_TOO_BIG PKG_NSF8+70
+ errortext(ERR_FOLDERSLIST_TOO_BIG, "NSF Folders list for IMAP is too big")
+#define ERR_NSFXACL_INHERITED PKG_NSF8+71
+ errortext(ERR_NSFXACL_INHERITED, "Access Control Information was inherited from other object")
+#define ERR_ARCHIVE_NO_MATCH_FOR_SERVER PKG_NSF8+72
+ errortext(ERR_ARCHIVE_NO_MATCH_FOR_SERVER, "No match for server found")
+#define ERR_NOTE_DELETED_BY_RULE PKG_NSF8+73
+ errortext(ERR_NOTE_DELETED_BY_RULE, "Document has been rejected by mail rule")
+#define ERR_ARCHIVE_ON_SERVER_ENABLED PKG_NSF8+74
+ errortext(ERR_ARCHIVE_ON_SERVER_ENABLED, "Server based archiving enabled - unable to initiate archiving from local workstation")
+#define STR_LK_REPORTING_THREAD PKG_NSF8+75
+ internaltext(STR_LK_REPORTING_THREAD, "Lock Manager Reporting Thread")
+#define ERR_SCOS_DIR_NOT_CONFIGURED PKG_NSF8+76
+ errortext(ERR_SCOS_DIR_NOT_CONFIGURED, "SCOS_DIR_NOT_CONFIGURED_%d")
+#define ERR_DBG_CLOSED_CONFIG PKG_NSF8+77
+ errortext(ERR_DBG_CLOSED_CONFIG, "not configured ")
+#define ERR_DBG_SUMMARY_HDR PKG_NSF8+78
+ stringtext(ERR_DBG_SUMMARY_HDR, "\n\nDirectory\tAvailability\tRequested\t Actual\tMax Size\n\n")
+#define ERR_DBG_SUMMARY_INFO PKG_NSF8+79
+ stringtext(ERR_DBG_SUMMARY_INFO, "%s\n\t\t%s\t%d\t\t%d\t%d\n")
+#define ERR_DBG_SUMMARY_TAIL PKG_NSF8+80
+ stringtext(ERR_DBG_SUMMARY_TAIL, "\nTotals\t\t\t\t\t%d\t\t%d\t%d\n")
+#define ERR_SCOS_DIRLINK_CONFLICT PKG_NSF8+81
+ errortext(ERR_SCOS_DIRLINK_CONFLICT, "\nDirectory %s conflicts with SCOS directory link %s%s to directory %s.\n")
+#define ERR_DBG_DISABLED_DB PKG_NSF8+82
+ errortext(ERR_DBG_DISABLED_DB , "The object store database is disabled. ")
+#define ERR_SCOS_NUM_FILES_DIR PKG_NSF8+83
+ errortext(ERR_SCOS_NUM_FILES_DIR, "SCOS directory %s - the total number of specified files (%d) exceeds the maximum (%d).\n")
+#define ERR_ARCH_CANT_MOD_EFFECTIVE_POLICY PKG_NSF8+84
+ errortext(ERR_ARCH_CANT_MOD_EFFECTIVE_POLICY, "Cannot modify settings in the effective archive policy")
+#define ERR_NOT_AN_ADMINISTRATOR PKG_NSF8+85
+ errortext(ERR_NOT_AN_ADMINISTRATOR, "You must be a server administrator to perform this action")
+/* Logging for Roaming Users (NameLookupUserID) */
+#define STR_ROAMING_USER_ACCESS PKG_NSF8+86
+ errortext(STR_ROAMING_USER_ACCESS, "Roaming user %s password failed")
+#define ERR_RM_TRAN_NESTING PKG_NSF8+87
+ errortext(ERR_RM_TRAN_NESTING, "Recovery Manager: Transaction nesting exceeded supported maximum or no transaction in progress")
+#define ERR_RM_LONG_TRANSACTION_ABORT PKG_NSF8+88
+ errortext(ERR_RM_LONG_TRANSACTION_ABORT, "Recovery Manager: Transaction ran too long, must abort")
+#define ERR_ONLY_LOGGED_DATABASES PKG_NSF8+89
+ errortext(ERR_ONLY_LOGGED_DATABASES, "Function only supported for transaction logged databases")
+#define ERR_REPLACE PKG_NSF8+90
+ errortext(ERR_REPLACE,"Replace existing %p?")
+#define STR_SCOS_ONLINE_CFG PKG_NSF8+91
+ stringtext(STR_SCOS_ONLINE_CFG, "SCOS_ONLINE_%d")
+#define STR_SCOS_ACTIVE_CFG PKG_NSF8+92
+ stringtext(STR_SCOS_ACTIVE_CFG, "SCOS_ACTIVE_%d")
+#define STR_SCOS_OFFLINE PKG_NSF8+93
+ stringtext(STR_SCOS_OFFLINE, "offline ")
+#define ERR_DBG_DB_INACTIVE PKG_NSF8+94
+ errortext(ERR_DBG_DB_INACTIVE, "Object store database Inactive.")
+#define ERR_DBG_DIR_INACTIVE PKG_NSF8+95
+ errortext(ERR_DBG_DIR_INACTIVE, "Object store directory Inactive.")
+#define ERR_DBG_DIR_OFFLINE PKG_NSF8+96
+ errortext(ERR_DBG_DIR_OFFLINE, "Object store directory offline.")
+#define ERR_SOFTDELETE_EXPIRE_TIME PKG_NSF8+97
+ errortext(ERR_SOFTDELETE_EXPIRE_TIME, "Soft delete expire time must be a whole number greater than zero.")
+#define ERR_NOTE_INVSIG11 PKG_NSF8+98
+ errortext(ERR_NOTE_INVSIG11, "Data signature passed; object signature invalid")
+#define ERR_SWITCH_TO_COPYSTYLE PKG_NSF8+99
+ errortext(ERR_SWITCH_TO_COPYSTYLE, "Switching to copy-style compaction for %p due to unique fields names table size")
+#define ERR_USE_LARGEUNK_OR_COPYSTYLE PKG_NSF8+100
+ errortext(ERR_USE_LARGEUNK_OR_COPYSTYLE, "Unique field names table filling up for %p: Set 'Allow more fields in database' option or use copy-style compaction to reduce")
+#define ERR_USE_COPYSTYLE PKG_NSF8+101
+ errortext(ERR_USE_COPYSTYLE, "Unique field names table filling up for %p: Use copy-style compaction to reduce")
+#define ERR_IMAP_KEYWORD_TOO_LONG PKG_NSF8+102
+ errortext(ERR_IMAP_KEYWORD_TOO_LONG, "IMAP Keyword flag names cannot be longer than 31 bytes")
+#define ERR_DOCCACHE_POOLFULL PKG_NSF8+103
+ errortext(ERR_DOCCACHE_POOLFULL, "Insufficient memory - Document cache pool is full.")
+#define ERR_CANT_INIT_ASP_CONTEXT PKG_NSF8+104
+ errortext(ERR_CANT_INIT_ASP_CONTEXT, "Unable to initialize parse the DN %s")
+#define ERR_INVALID_ASP_USER_NAME PKG_NSF8+105
+ errortext(ERR_INVALID_ASP_USER_NAME, "%s is an invalid user name in an ASP configuration")
+#define ERR_EM_CONTINUE_VNOTE PKG_NSF8+106
+ internaltext(ERR_EM_CONTINUE_VNOTE, "Continue Virtual Note processing.")
+#define ERR_INVALID_VNOTE PKG_NSF8+107
+ errortext(ERR_INVALID_VNOTE, "Virtual Note has an invalid format.")
+#define ERR_COLLREBUILDEXTRACOL PKG_NSF8+108
+ errortext(ERR_COLLREBUILDEXTRACOL, "Informational, rebuilding view - external format note has been modified since last rebuild. (reading %s %s note Title:'%s')")
+#define ERR_TARGET_DB_CLOSED PKG_NSF8+109
+ errortext(ERR_TARGET_DB_CLOSED, "Cannot access the document's target database to copy attachments")
+#define ERR_NO_NOTE_UPDATE PKG_NSF8+110
+ errortext(ERR_NO_NOTE_UPDATE, "Cannot update note due to NOTE_FLAG2_NO_UPDATE being set")
+#define ERR_NO_NOTE_CHANGE PKG_NSF8+111
+ errortext(ERR_NO_NOTE_CHANGE, "Cannot modify note due to NOTE_FLAG2_NO_CHANGE being set")
+
+#define ERR_SIGNER_MUST_BE_POL_CREATOR_MOD (PKG_NSF8+112)
+ errortext(ERR_SIGNER_MUST_BE_POL_CREATOR_MOD, "The Policy and/or Settings Document assigned to you has been edited by an unauthorized person. Please notify your Administrator that you cannot proceed with the client setup.")
+#define ERR_POLICY_SIGNER_NOT_POL_CREATOR_MOD (PKG_NSF8+113)
+ errortext(ERR_POLICY_SIGNER_NOT_POL_CREATOR_MOD, "%s, the signer of policy document %s, does not have the required PolicyCreator or PolicyModifier role to the Domino Directory.")
+#define ERR_POLICY_SIGNATURE_MSG (PKG_NSF8+114)
+ errortext(ERR_POLICY_SIGNATURE_MSG, "The effective policy could not be derived - the following error was encountered while processing policy document %s: %e.")
+
+#define ERR_CANNOT_DELEGATE PKG_NSF8+115
+ errortext(ERR_CANNOT_DELEGATE,"You may not delegate to this person, as he/she has already been invited to this meeting. Please choose another delegee for this meeting.")
+
+#define ERR_MESSAGE_DO_NOT_DELIVER PKG_NSF8+116
+ errortext(ERR_MESSAGE_DO_NOT_DELIVER,"This message will not be delivered by the router because an error occurred in processing.")
+#define ERR_EH_PSEUDO_DELETED PKG_NSF8+117
+ internaltext(ERR_EH_PSEUDO_DELETED, "Key in Extensible hash exists but is flag deleted")
+
+#define ERR_NOTE_LOCKED_BYSOMEONE PKG_NSF8+118
+ errortext(ERR_NOTE_LOCKED_BYSOMEONE, "The document is already locked by someone else.")
+
+/* Logging for Roaming Users (NameLookupUserID) */
+#define STR_ROAMING_USER_ID_VIOLATION PKG_NSF8+119
+ errortext(STR_ROAMING_USER_ID_VIOLATION, "You are trying to access a roaming user id which has not been properly roamed. Please re-roam.")
+
+#define ERR_DBIMAP_MUST_BE_REENABLED PKG_NSF8+120
+ errortext(ERR_DBIMAP_MUST_BE_REENABLED, "Database %p must be re-enabled for IMAP support")
+
+#define ERR_ARC_REQ_SRC_USER_ACCESS PKG_NSF8+121
+ errortext(ERR_ARC_REQ_SRC_USER_ACCESS, "You do not have the required access rights to the source database.")
+#define ERR_ARC_REQ_ARC_USER_ACCESS PKG_NSF8+122
+ errortext(ERR_ARC_REQ_ARC_USER_ACCESS, "You do not have the required access rights to the archive database.")
+#define ERR_ARC_SETTINGS_SIGNATURE PKG_NSF8+123
+ errortext(ERR_ARC_SETTINGS_SIGNATURE, "Signature on archive settings is invalid")
+#define ERR_ARCHIVE_POLICY_PROHIBITED PKG_NSF8+124
+ errortext(ERR_ARCHIVE_POLICY_PROHIBITED , "Archiving is prohibited by a policy set by an administrator")
+
+#define ERR_IMAP_KEYWORDS_TOO_LARGE PKG_NSF8+125
+ errortext(ERR_IMAP_KEYWORDS_TOO_LARGE, "IMAP Keyword flags length cannot exceed 32 KB")
+
+#define ERR_ARC_RETRIEVE_SETTINGS PKG_NSF8+126
+ errortext(ERR_ARC_RETRIEVE_SETTINGS, "Unable to retrieve archiving settings")
+#define ERR_ARC_SELECTING_DOCS PKG_NSF8+127
+ errortext(ERR_ARC_SELECTING_DOCS, "Unable to select documents for archiving")
+
+/* PKG_NSF8 codes limited to 0-127 */
+
+#define ERR_ARC_COPY_DOCUMENTS PKG_NSF9+0
+ errortext(ERR_ARC_COPY_DOCUMENTS, "Unable to copy documents to archive database")
+#define ERR_ARC_DELETE_DOCUMENTS PKG_NSF9+1
+ errortext(ERR_ARC_DELETE_DOCUMENTS, "Unable to delete documents from source database")
+#define ERR_ARC_TRUNCATE_DOCUMENTS PKG_NSF9+2
+ errortext(ERR_ARC_TRUNCATE_DOCUMENTS, "Unable to truncate documents from source database")
+#define STR_ARC_ARCHIVING PKG_NSF9+3
+ stringtext(STR_ARC_ARCHIVING, "Archiving|Calendar Cleanup|Done.|done. %d docs deleted")
+#define IDX_ARCHIVING 1
+#define IDX_CAL_CLEANUP 2
+#define IDX_DONE 3
+#define IDX_DOCS_DEL 4
+#define STR_ARC_PROGRESS_STATES PKG_NSF9+4
+ stringtext(STR_ARC_PROGRESS_STATES, "%s|Retrieving settings|Creating Archive DB|Creating Log DB|Updating Log Design|Selecting Documents|Copying Documents|Deleting Documents|Truncating Documents|done. %d docs archived, %d docs deleted, %d docs truncated|Processing Documents for Preview")
+#define ERR_LOCATING_SCT PKG_NSF9+5
+ errortext(ERR_LOCATING_SCT, "The single copy template associated with this database cannot be located.")
+#define ERR_OPENING_SCT PKG_NSF9+6
+ errortext(ERR_OPENING_SCT, "Unable to open the single copy template associated with this database.")
+#define STR_ADDIN_NSF_DONTTRANS_MSG_1 PKG_NSF9+7
+ donottranslatetext(STR_ADDIN_NSF_DONTTRANS_MSG_1, "Administration Requests")
+#define ERR_EM_INVALID_CALLBACKPTR PKG_NSF9+8
+ errortext(ERR_EM_INVALID_CALLBACKPTR, "Extension registration contains NULL pointer to callback routine")
+#define IDX_GEN_ADMIN4_TITLE 1
+#define ERR_PAINDEX_CORRUPT PKG_NSF9+9
+ errortext(ERR_PAINDEX_CORRUPT, "Protected Attachments Index corrupt.")
+#define ERR_ARCHIVE_DATABASE_INVALID PKG_NSF9+10
+ errortext(ERR_ARCHIVE_DATABASE_INVALID, "Archive Database format is invalid")
+#define ERR_ARCHIVE_DATABASE_NO_MATCH_SRCREPID PKG_NSF9+11
+ errortext(ERR_ARCHIVE_DATABASE_NO_MATCH_SRCREPID, "Archive database specifies a different source database")
+#define ERR_OPT_UNREAD_SYNC PKG_NSF9+12
+ internaltext(ERR_OPT_UNREAD_SYNC, "Optimized unread synchronization performed.")
+#define ERR_NO_PROVISIONAL_ON_MASTERDB PKG_NSF9+13
+ errortext(ERR_NO_PROVISIONAL_ON_MASTERDB, "Provisional locks on the master lock database are not allowed")
+#define ERR_FILEEXT_FAILURE PKG_NSF9+14
+ errortext(ERR_FILEEXT_FAILURE, "Extendable File object: failure")
+#define ERR_URL_TOO_LONG PKG_NSF9+15
+ errortext(ERR_URL_TOO_LONG, "URL is too long")
+#define ERR_BACKUP_ABORTED PKG_NSF9+16
+ errortext(ERR_BACKUP_ABORTED, "Backup terminated due to timeout")
+#define ERR_PURGED_NOTES_MISSING PKG_NSF9+17
+ internaltext(ERR_PURGED_NOTES_MISSING, "Unable to determine what notes may have been purged before the search date")
+#define ERR_COMPACT_INTERRUPTED_MSG PKG_NSF9+18
+ errortext(ERR_COMPACT_INTERRUPTED_MSG, "Compaction of the database was stopped prematurely because another user modified it while it was being compacted (%s).")
+#define ERR_INSERT_DATANOTEID_TBL PKG_NSF9+19
+ errortext(ERR_INSERT_DATANOTEID_TBL, "Error inserting Note ID %X into data note ID table in %s: %e.")
+#define ERR_UNABLE_TO_BRING_ONLINE PKG_NSF9+20
+ errortext(ERR_UNABLE_TO_BRING_ONLINE, "Compaction failed: Unable to bring %p back online.")
+#define ERR_NSFIMAP_HAS_SUBFOLDERS PKG_NSF9+21
+ errortext(ERR_NSFIMAP_HAS_SUBFOLDERS, "One or more child mailbox(es) exists")
+#define ERR_CANT_CREATE_TEMPLATE PKG_NSF9+22
+ errortext(ERR_CANT_CREATE_TEMPLATE, "You do not have sufficient access to create master templates on this server.")
+#define ERR_DBU_WRONG_PROCESS PKG_NSF9+23
+ errortext(ERR_DBU_WRONG_PROCESS, "DBUs cannot be shared between Processes.")
+#define ERR_NSF_ARCH_SELDOCS_NOT_DELETED PKG_NSF9+24
+ errortext(ERR_NSF_ARCH_SELDOCS_NOT_DELETED, "Some of the selected documents were not deleted because they are still required in this database.")
+#define LOG_CREATING_DBDIRMAN_CACHE PKG_NSF9+25
+ errortext(LOG_CREATING_DBDIRMAN_CACHE, "Creating Database Directory Cache database (%s)...")
+#define ERR_TOO_MANY_RARELY_USED_ITEMS PKG_NSF9+26
+ errortext(ERR_TOO_MANY_RARELY_USED_ITEMS, "Cannot store document because it has too many unique field names.")
+#define ERR_NSF_UNABLE_TO_CHANGE_DBOPTION PKG_NSF9+27
+ errortext(ERR_NSF_UNABLE_TO_CHANGE_DBOPTION,"Cannot disable consistent access without turning off extended access control first.")
+#define ERR_SIGNDB_NOTE_CLASS_NOT_FOUND PKG_NSF9+28
+ errortext(ERR_SIGNDB_NOTE_CLASS_NOT_FOUND, "Specified note does not match note class requested.")
+#define ERR_DUPLICATE_TEMPLATE PKG_NSF9+29
+ errortext(ERR_DUPLICATE_TEMPLATE, "Cannot create template with duplicate name.")
+#define ERR_CACHEFAILURE PKG_NSF9+30
+ errortext(ERR_CACHEFAILURE, "An error has occurred which will affect performance. Please make a copy of the file %s and then delete the original which will correct the problem. Please report the problem to IBM.")
+#define ERR_DESIGN_REFRESH_NOT_ADMIN PKG_NSF9+32
+ errortext(ERR_DESIGN_REFRESH_NOT_ADMIN, "Design Refresh can only be done on the Administration server of this database.")
+#define ERR_ARCHIVING_NOT_ENABLED_ON_SVR PKG_NSF9+33
+ errortext(ERR_ARCHIVING_NOT_ENABLED_ON_SVR, "Server-based archiving not enabled on database.")
+#define ERR_BKTDSC_MODIFIED_BACKWARDS PKG_NSF9+34
+ errortext(ERR_BKTDSC_MODIFIED_BACKWARDS,"Bucket descriptor modified time is going backwards from %z to %z in %s.")
+#define ERR_CURRENT_UNIQUE_TIME PKG_NSF9+35
+ errortext(ERR_CURRENT_UNIQUE_TIME, "Database (%s) time is too far in the future.")
+#define ERR_FILEREAD PKG_NSF9+36
+ errortext(ERR_FILEREAD, "Hardware/OS error (%s) reading from database (%s), Length=%X (PID=%0X/TID=%0X)\n")
+#define ERR_FILEWRITE PKG_NSF9+37
+ errortext(ERR_FILEWRITE, "Hardware/OS error (%s) writing to database (%s), Length=%X (PID=%0X/TID=%0X)\n")
+#define ERR_NTUPDATE_MONITOR_ERROR PKG_NSF9+38
+ errortext(ERR_NTUPDATE_MONITOR_ERROR, "Monitor Error in Database %s:")
+#define ERR_NTUPDATE_FOLDER_ERROR PKG_NSF9+39
+ errortext(ERR_NTUPDATE_FOLDER_ERROR, "Unable to add note %x to folder in Database %s:")
+#define ERR_CMD_SHOW_MONITORPOOL PKG_NSF9+40
+ stringtext(ERR_CMD_SHOW_MONITORPOOL, "NSFMONITORPOOL")
+#define ERR_HELP_SHOW_MONITORPOOL PKG_NSF9+41
+ stringtext(ERR_HELP_SHOW_MONITORPOOL, "* Show the contents of the Server's MONITOR pool.")
+#define ERR_XACL_NOTSUPPORTED PKG_NSF9+42
+ errortext(ERR_XACL_NOTSUPPORTED, "The extended access control feature is not supported for the database.")
+#define ERR_DESIGN_IN_NAMOBJ PKG_NSF9+43
+ errortext(ERR_DESIGN_IN_NAMOBJ, "Design collection not in named object table.")
+#define ERR_DISK_SCOS PKG_NSF9+44
+ errortext(ERR_DISK_SCOS, "Insufficient disk space in shared mail directory.")
+#define ERR_FORCE_COMPACT PKG_NSF9+45
+ internaltext(ERR_FORCE_COMPACT, "Force compaction.")
+#define ERR_SUPERBLOCK_TOO_LARGE PKG_NSF9+46
+ internaltext(ERR_SUPERBLOCK_TOO_LARGE, "Superblock has exceeded its maximum allowable size.")
+#define ERR_CONFLICT_SCOS PKG_NSF9+47
+ errortext(ERR_CONFLICT_SCOS, "Shared mail note access conflict, retry in progress.")
+#define ERR_NOTE_MUST_BE_LOCKED_FOR_DELETE PKG_NSF9+48
+ errortext(ERR_NOTE_MUST_BE_LOCKED_FOR_DELETE, "Document locking is enabled. You must lock the document before deleting.")
+#define ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_MOD PKG_NSF9+49
+ stringtext(ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_MOD, "Default for Last Modified")
+#define ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_LA PKG_NSF9+50
+ stringtext(ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_LA, "Default for Last Accessed")
+#define ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_EXP PKG_NSF9+51
+ stringtext(ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_EXP, "Default for Expired")
+#define ERR_OVERWARNQUOTA PKG_NSF9+52
+ errortext(ERR_OVERWARNQUOTA, "Warning: Operation would put database over quota warning threshold.")
+#define LOG_CANT_CREATE_TEMPLATE PKG_NSF9+53
+ errortext(LOG_CANT_CREATE_TEMPLATE, "Attempt by %s to define database %s as template %s rejected.")
+#define LOG_DUPLICATE_TEMPLATE PKG_NSF9+54
+ errortext(LOG_DUPLICATE_TEMPLATE, "Attempt by %s to create duplicate template %s in database %s - rejected.")
+#define LOG_ALREADY_IS_A_CHILD PKG_NSF9+55
+ errortext(LOG_ALREADY_IS_A_CHILD, "Note %d already is a child of note %d in database %s.")
+#define ERR_NSF_MONITOR_EVENTSFULL PKG_NSF9+56
+ errortext(ERR_NSF_MONITOR_EVENTSFULL, "Insufficient memory - NSF monitor pool event space is full.")
+#define ERR_DBIMAP_FOLDER_UPDATE_FAILED PKG_NSF9+57
+ errortext(ERR_DBIMAP_FOLDER_UPDATE_FAILED, "Note NT%08lx was not updated in the IMAP btree for folder %s (NT%08lx) in database %s. Database should be re-enabled for IMAP support.")
+#define ERR_ARCHIVING_POLICY_EXISTS PKG_NSF9+58
+ errortext(ERR_ARCHIVING_POLICY_EXISTS, "An archive policy has been set by the administrator, cannot get archive settings.")
+#define STR_NSF_XACL_ENABLED PKG_NSF9+59
+ errortext(STR_NSF_XACL_ENABLED, "Extended access control feature is enabled for the database %s")
+#define STR_NSF_XACL_DISABLED PKG_NSF9+60
+ errortext(STR_NSF_XACL_DISABLED, "Extended access control feature is disabled for the database %s")
+#define ERR_NONSUMMARY_READAUTH PKG_NSF9+61
+ errortext(ERR_NONSUMMARY_READAUTH, "Update not allowed due to nonsummary author/reader names field. Saving may restrict access to this document.")
+
+#define ERR_BAD_IDTABLE_LENGTH PKG_NSF9+62
+ errortext(ERR_BAD_IDTABLE_LENGTH, "Bad idtable length detected in a super block.")
+#define ERR_DB_DELETE_IN_PROGRESS PKG_NSF9+63
+ errortext(ERR_DB_DELETE_IN_PROGRESS, "Database is being deleted.")
+
+#define ERR_ARCHIVE_LOG_TEMPLATE_NOT_FOUND PKG_NSF9+64
+ errortext(ERR_ARCHIVE_LOG_TEMPLATE_NOT_FOUND, "Archive log template (archlg50.ntf) not found, unable to create archive log database.")
+#define ERR_ARCHIVE_LOG_CREATE PKG_NSF9+65
+ errortext(ERR_ARCHIVE_LOG_CREATE, "Error creating archive log database")
+#define ERR_RM_LOGGER_RC PKG_NSF9+66
+ errortext(ERR_RM_LOGGER_RC, "Logger Failure: Func=%s RC=0x%08x File=%s\n")
+#define ERR_RM_UNDO_REDO_RC PKG_NSF9+67
+ errortext(ERR_RM_UNDO_REDO_RC, "Error from undo/redo LSN=%02x%02x%02x%02x-%02x%02x%02x%02x rc: %d %e Type=%02x/%02x DB=%s\n")
+#define ERR_INVALID_CONTAINER_OBJECT PKG_NSF9+68
+ errortext(ERR_INVALID_CONTAINER_OBJECT, "Container object is corrupt. Use compact -d to discard view indexes.")
+#define ERR_CMD_SHOW_DBG PKG_NSF9+69
+ stringtext(ERR_CMD_SHOW_DBG,"DBG")
+#define ERR_HELP_SHOW_DBG PKG_NSF9+70
+ stringtext(ERR_HELP_SHOW_DBG,"Database group information")
+#define ERR_LK_PER_TXN_LOCKS PKG_NSF9+71
+ errortext(ERR_LK_PER_TXN_LOCKS, "Maximum locks per explicit txn exceeded")
+#define ERR_LK_MAX_TXN_LOCKS PKG_NSF9+72
+ errortext(ERR_LK_MAX_TXN_LOCKS, "Maximum locks for explicit txns exceeded")
+#define ERR_RESOLVING_REF_NOTE PKG_NSF9+73
+ errortext(ERR_RESOLVING_REF_NOTE, "Error opening note unable to resolve the referenced note")
+#define ERR_CANNOT_SELECT_PROFILE_DOCS PKG_NSF9+74
+ stringtext(ERR_CANNOT_SELECT_PROFILE_DOCS, "Using a selection formula to filter profile documents is not supported by version 5 (or older) Domino servers.")
+#define ERR_NULL_PNOVEC_VARRAY PKG_NSF9+75
+ stringtext(ERR_NULL_PNOVEC_VARRAY, "Page vector array is NULL")
+#define ERR_CONT_REOPENED PKG_NSF9+76
+ stringtext(ERR_CONT_REOPENED, "Attempt to reopen an open container")
+#define ERR_UNREAD_LOG_CORRUPT PKG_NSF9+77
+ errortext(ERR_UNREAD_LOG_CORRUPT, "Unread Log is corrupt")
+#define ERR_FIXUP_FOUND_UNREADLOG PKG_NSF9+78
+ errortext(ERR_FIXUP_FOUND_UNREADLOG, "Unread activity log for user %a in database %p is damaged: %e")
+#define ERR_AUTHOR_UPDATED_ONLY_PROTECTED PKG_NSF9+79
+ errortext(ERR_AUTHOR_UPDATED_ONLY_PROTECTED, "NoteUpdate: ID[%s] with Author access tried to update *ONLY* protected fields, nothing updated; db=%s, NoteID=0x%lx\n")
+#define ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_SELECTED PKG_NSF9+80
+ stringtext(ERR_ARCHIVE_DEFAULT_PRIVATE_NAME_SELECTED, "Default for Selected (no aging)")
+#define LOG_REALLOC_UNREAD_LOG PKG_NSF9+81
+ errortext(LOG_REALLOC_UNREAD_LOG, "Unread log for user %a in database %p is being reallocated. ReasonCode:%d")
+#define LOG_REALLOC_UNREAD_ALLUSER PKG_NSF9+82
+ errortext(LOG_REALLOC_UNREAD_ALLUSER, "Unread all-user for database %p is being reallocated. ReasonCode:%d")
+#define LOG_UNREAD_CHUNK_BAD PKG_NSF9+83
+ errortext(LOG_UNREAD_CHUNK_BAD, "Unread chunk %d for user %a in database %p is bad. Object: %x. ReasonCode:%d")
+#define LOG_UNREAD_REPLICATION_OPTION_CHG PKG_NSF9+84
+ errortext(LOG_UNREAD_REPLICATION_OPTION_CHG, "%s Database Option: %s for database %s")
+#define LOG_ALLUSER_BAD_LOG PKG_NSF9+85
+ errortext(LOG_ALLUSER_BAD_LOG, "Invalid Object in Unread All-User table for database %p. Removing reference for index %d. %e")
+#define LOG_DDM_LOOK_AT_UPDATE PKG_NSF9+86
+ errortext(LOG_DDM_LOOK_AT_UPDATE, "NSFNoteUpdate may be working on an interesting note ... %s, %a")
+#define ERR_RM_XA_ERROR PKG_NSF9+87
+ errortext(ERR_RM_XA_ERROR, "An error occurred accessing the db2 datasource, xa error = %d")
+#define ERR_DB2_ADMIN_CATALOG_NODE PKG_NSF9+89
+ errortext(ERR_DB2_ADMIN_CATALOG_NODE, "Error attempting to catalog node.")
+#define ERR_DB2_ADMIN_CATALOG_DBALIAS PKG_NSF9+90
+ errortext(ERR_DB2_ADMIN_CATALOG_DBALIAS, "Error attempting to catalog db alias.")
+#define ERR_BKTDESC_CORRUPT PKG_NSF9+91
+ errortext(ERR_BKTDESC_CORRUPT, "Bucket descriptor corrupt.")
+#define ERR_DB2_ADMIN_LIB_NOT_AVAILABLE PKG_NSF9+92
+ errortext(ERR_DB2_ADMIN_LIB_NOT_AVAILABLE, "The DB2 library is not available.")
+#define ERR_NSF_ALREADY_DB2NSF PKG_NSF9+93
+ errortext(ERR_NSF_ALREADY_DB2NSF, "The database is already stored in DB2.")
+/* Available PKG_NSF9+94 - 99 */
+#define NSF_DB2_CLP_SQL_NO_DATA PKG_NSF9+100
+ errortext(NSF_DB2_CLP_SQL_NO_DATA, "Data not found.")
+#define ERR_FIXING_WAIT PKG_NSF9+101
+ errortext(ERR_FIXING_WAIT, "Performing consistency check. Please wait...")
+#define ERR_DB2_ADMIN_CREATE_DB2_GROUP PKG_NSF9+102
+ errortext(ERR_DB2_ADMIN_CREATE_DB2_GROUP, "Error attempting to add group to SYSCTRL_GROUP.")
+
+#define LOG_UNREAD_ROLLBACK PKG_NSF9+103
+ errortext(LOG_UNREAD_ROLLBACK, "Rolling back Unread Log for user %a in database %p.")
+#define STR_RM_INDOUBTPROC_THREAD PKG_NSF9+104
+ stringtext(STR_RM_INDOUBTPROC_THREAD, "Recovery Manager Indoubt resolution Thread")
+
+#define NSF_DB2_LOCAL_ENCRYPTION_UNAVAILABLE PKG_NSF9+105
+ errortext(NSF_DB2_LOCAL_ENCRYPTION_UNAVAILABLE, "Local encryption is not supported for a DB2 backed Notes database. %s will not be locally encrypted by Domino in DB2.")
+#define ERR_DB2NSF_FEDERATION PKG_NSF9+106
+ errortext(ERR_DB2NSF_FEDERATION, "Unable to set up federation to alternate recovery database")
+
+#define ERR_MONITOR_TOO_MUCH_SUMMARY PKG_NSF9+108
+ errortext(ERR_MONITOR_TOO_MUCH_SUMMARY, "Too much summary data returned for monitor in %p")
+
+#define NSF_DB2BACKUP_SERVERRUNNING PKG_NSF9+109
+ errortext(NSF_DB2BACKUP_SERVERRUNNING, "This API function cannot be called if Domino is running")
+#define CONTEXT_DB2UPDATE_FILE_HEADER PKG_NSF9+110
+ errortext(CONTEXT_DB2UPDATE_FILE_HEADER, "Failed to update system Catalog table")
+#define CONTEXT_DB2READ_CATALOG PKG_NSF9+111
+ errortext(CONTEXT_DB2READ_CATALOG, "Failed to read system Catalog table")
+#define CONTEXT_DB2READ_SCHEMATABLES PKG_NSF9+112
+ errortext(CONTEXT_DB2READ_SCHEMATABLES, "Failed to query DB2 system catalog for tables belonging to schema")
+#define ERR_DB2NSF_NOTDB2BACKED PKG_NSF9+113
+ errortext(ERR_DB2NSF_NOTDB2BACKED, "Invalid NSFDB2 database.")
+#define ERR_DB2NSF_SRC_AND_DESTINATION PKG_NSF9+114
+ errortext(ERR_DB2NSF_SRC_AND_DESTINATION, "The source and destination file specification cannot be the same")
+#define CONTEXT_DB2NSF_SQL_COPY_FAILURE PKG_NSF9+115
+ errortext(CONTEXT_DB2NSF_SQL_COPY_FAILURE, "Unable to perform a fast copy/move to target")
+#define ERR_DB2NSF_TABLESPACE_INFO PKG_NSF9+116
+ errortext(ERR_DB2NSF_TABLESPACE_INFO, "Failed to obtain tablespace information.")
+#define ERR_DB2NSF_ODS_NOT_SUPPORTED PKG_NSF9+117
+ errortext(ERR_DB2NSF_ODS_NOT_SUPPORTED, "NSFDB2 Databases require Notes/Domino 6.0 or later database versions.")
+
+/* Available PKG_NSF9+118 - 123 */
+
+#define ERR_DB2_ADMIN_EN_ACCOUNT_YES_NO PKG_NSF9+124
+ errortext(ERR_DB2_ADMIN_EN_ACCOUNT_YES_NO, "Server could not update user accounts. If you have already set up the user accounts, press 'Continue' to continue. Otherwise press 'Stop' to stop.\n\nContinue?\n")
+
+#define ERR_DB2_UDF_ADMIN_ERROR_RET PKG_NSF9+125
+ errortext(ERR_DB2_UDF_ADMIN_ERROR_RET, "DB2 Access admin returned error.")
+#define ERR_DB2_UDF_ADMIN_DLL_RET PKG_NSF9+126
+ stringtext(ERR_DB2_UDF_ADMIN_DLL_RET, "%d UDF Admin DLL: %s.|Update connection completed|Update connection returned error|Read connection returned error")
+#define IDX_DB2_UDF_DLL_PREF 1
+#define IDX_DB2_UDF_DLL_UPDT_OK 2
+#define IDX_DB2_UDF_DLL_UPDT_ERR 3
+#define IDX_DB2_UDF_DLL_READ_ERR 4
+
+#define ERR_DB2_ADMIN_EN_USER_ERROR PKG_NSF9+127
+ stringtext(ERR_DB2_ADMIN_EN_USER_ERROR, "- DB2 Server Enable could not set up user account.\n")
+
+#define ERR_DB2_ADMIN_EN_GROUP_EXISTS PKG_NSF9+128
+ stringtext(ERR_DB2_ADMIN_EN_GROUP_EXISTS, "- The SYSCTRL_GROUP, '%s' already exists.\n")
+
+#define ERR_DB2_ADMIN_EN_GROUP_GROUP PKG_NSF9+129
+ stringtext(ERR_DB2_ADMIN_EN_GROUP_GROUP, "- The user must be added to the SYSCTRL_GROUP '%s'.\n")
+
+#define DB2_ENABLE_TOOL_RAN PKG_NSF9+130
+ stringtext(DB2_ENABLE_TOOL_RAN, "This server is already running on DB2. Please make any changes to the DB2 configuration in the server document.")
+
+#define LOG_IGNORE_OLD_UNREAD_REPL_OPS PKG_NSF9+131
+ errortext(LOG_IGNORE_OLD_UNREAD_REPL_OPS, "Ignoring Pre-Cutoff Unread Replication Activities for user %a in database %p.")
+#define LOG_IGNORE_FUTURE_UNREAD_REPL_OPS PKG_NSF9+132
+ errortext(LOG_IGNORE_FUTURE_UNREAD_REPL_OPS, "Ignoring Unread Replication Activities dated in the future for user %a in database %p.")
+
+#define ERR_DB2NSF_IDENTIFIER_INVALID PKG_NSF9+133
+ errortext(ERR_DB2NSF_IDENTIFIER_INVALID, "The identifier specified does not exist in DB2 or does not contain the requested NSFDB2 data.")
+
+#define ERR_DB2_ADMIN_EN_ACCOUNT_RIGHTS_ERR2 PKG_NSF9+134
+ stringtext(ERR_DB2_ADMIN_EN_ACCOUNT_RIGHTS_ERR2, "- You must create the user account.\n- You also need to create the group 'DB2DOM', if it doesn't exist, \n- and add the DB2 user to it.\n")
+
+#define ERR_DB2NSF_SCHEMA_INUSE PKG_NSF9+135
+ errortext(ERR_DB2NSF_SCHEMA_INUSE, "The schema specified is in use by another NSFDB2 database.")
+#define ERR_DB2NSF_CATALOG_UPDATE_FAILURE PKG_NSF9+136
+ errortext(ERR_DB2NSF_CATALOG_UPDATE_FAILURE, "Failed to update row in system CATALOG for database %s in schema %s.")
+
+#define ERR_DB2NSF_NONXA_CONNECT PKG_NSF9+137
+ errortext(ERR_DB2NSF_NONXA_CONNECT, "Failed to create a non-XA connection to DB2 database")
+#define ERR_DB2NSF_CATALOG_REMOVE_ROW PKG_NSF9+138
+ errortext(ERR_DB2NSF_CATALOG_REMOVE_ROW, "Row in system CATALOG table for database %s in schema %s is invalid and was removed")
+#define CONTEXT_DB2DAVPOP PKG_NSF9+139
+ errortext(CONTEXT_DB2DAVPOP, "Error encountered in the DB2 Access View Populator.")
+#define CONTEXT_DB2NSF_UAV_CLEAR PKG_NSF9+140
+ errortext(CONTEXT_DB2NSF_UAV_CLEAR, "Error clearing UAVROOT from related NSFDB2 databases.")
+#define LOG_UNREAD_WRITE_ERROR PKG_NSF9+141
+ errortext(LOG_UNREAD_WRITE_ERROR, "Error writing unread log for database %p. User %a. Error: %e.")
+#define CONTEXT_DB2NSF_UAV_EXEMPT PKG_NSF9+142
+ errortext(CONTEXT_DB2NSF_UAV_EXEMPT, "Error flagging NSFDB2 database as exempt from the UAV.")
+#define ERR_DB2NSF_ACCESS_DELETE PKG_NSF9+143
+ errortext(ERR_DB2NSF_ACCESS_DELETE, "The exported NSFDB2 database access table entities could not be dropped.")
+#define ERR_INT_CONSTRAINT PKG_NSF9+144
+ errortext(ERR_INT_CONSTRAINT, "Error saving non integral value to a DB2 Access View INTEGER column.")
+#define ERR_BAD_DAV PKG_NSF9+145
+ errortext(ERR_BAD_DAV, "Invalid Access View definition.")
+#define ERR_NO_DAV_FORMS PKG_NSF9+146
+ errortext(ERR_NO_DAV_FORMS, "Access View definition must be associated with one or more forms on the infobox for the DB2 Access View.")
+#define CONTEXT_UPDATE_NSFID PKG_NSF9+147
+ errortext(CONTEXT_UPDATE_NSFID, "Error encountered modifying NSFID value for table after a conflict was detected updating system CATALOG table")
+#define ERR_NSF_DBCREATE_DDM PKG_NSF9+148
+ errortext(ERR_NSF_DBCREATE_DDM, "Database creation error: %s")
+#define ERR_NSF_DBDELETE_DDM PKG_NSF9+149
+ errortext(ERR_NSF_DBDELETE_DDM, "Database deletion error: %s")
+#define ERR_NSF_DBOPEN_DDM PKG_NSF9+150
+ errortext(ERR_NSF_DBOPEN_DDM, "Database open error: %s")
+#define ERR_NSF_NOTEOPEN_DDM PKG_NSF9+151
+ errortext(ERR_NSF_NOTEOPEN_DDM, "Database note open error: %s")
+#define ERR_NSF_NOTEUPDATE_DDM PKG_NSF9+152
+ errortext(ERR_NSF_NOTEUPDATE_DDM, "Database note update error: %s")
+#define ERR_NSF_DBFILEREAD_DDM PKG_NSF9+153
+ errortext(ERR_NSF_DBFILEREAD_DDM, "Database file read error: %s")
+#define ERR_NSF_DBFILEWRITE_DDM PKG_NSF9+154
+ errortext(ERR_NSF_DBFILEWRITE_DDM, "Database file write error: %s")
+#define ERR_NSF_DBCORRUPT_DDM PKG_NSF9+155
+ errortext(ERR_NSF_DBCORRUPT_DDM, "Database marked corrupt: %s")
+#define ERR_NSF_DBOBJREAD_DDM PKG_NSF9+156
+ errortext(ERR_NSF_DBOBJREAD_DDM, "Database object read error: %s")
+#define ERR_NSF_DBOBJWRITE_DDM PKG_NSF9+157
+ errortext(ERR_NSF_DBOBJWRITE_DDM, "Database object write error: %s")
+#define ERR_DB2_ADMIN_EN_SRV_RESTART PKG_NSF9+158
+ errortext(ERR_DB2_ADMIN_EN_SRV_RESTART, "The Domino server is being restarted.\n")
+#define ERR_DB2_ADMIN_EN_USER_SYSCTRL PKG_NSF9+159
+ stringtext(ERR_DB2_ADMIN_EN_USER_SYSCTRL, "- Could not add user, '%s' to DB2 SYSCTRL group, '%s'.\n You must manually add user to DB2 SYSCTRL group\nor add DB2DOM group to DB2 SYSCTRL group.\n")
+#define ERR_DB2_USER_MAPPING PKG_NSF9+160
+ errortext(ERR_DB2_USER_MAPPING, "Missing Domino to DB2 user mapping.")
+#define CONTEXT_DB2NSF_CLEAN_CONN PKG_NSF9+161
+ errortext(CONTEXT_DB2NSF_CLEAN_CONN, "Error encountered while cleaning up DB2 connection." )
+#define ERR_NOT_A_DB2NSF PKG_NSF9+162
+ errortext(ERR_NOT_A_DB2NSF, "This action only available with DB2NSF databases.")
+#define ERR_DAV_COL_NAME_LEN PKG_NSF9+163
+ errortext(ERR_DAV_COL_NAME_LEN, "Field name length exceeds maximum column name length (30 bytes), Fieldname: ")
+#define ERR_DAV_NOGEN PKG_NSF9+164
+ errortext(ERR_DAV_NOGEN, "Current DB2 table is compatible with the Access View definition. No changes needed to be made in DB2.")
+#define ERR_DAV_DUPCOL PKG_NSF9+165
+ errortext(ERR_DAV_DUPCOL, "Access View definition contains duplicate field names.")
+#define ERR_DAV_NEEDSPOP PKG_NSF9+166
+ errortext(ERR_DAV_NEEDSPOP, "Access Definition created successfully. You must populate the view before the view will be available in DB2.")
+#define ERR_DAV_LENGTH_REQD PKG_NSF9+167
+ errortext(ERR_DAV_LENGTH_REQD, "Text fields cannot have DB2 length of 0." )
+#define ERR_DAV_NODROP PKG_NSF9+168
+ errortext(ERR_DAV_NODROP, "This Access View definition is not active in DB2. No changes needed to be made in DB2.")
+#define CONTEXT_DB2ADMIN_CLP PKG_NSF9+169
+ errortext(CONTEXT_DB2ADMIN_CLP, "Failure processing admin SQL command line request")
+#define ERR_DB2_QV_NO_RESULT_SET PKG_NSF9+170
+ errortext(ERR_DB2_QV_NO_RESULT_SET, "The given query cannot generate a result set and therefore has not been executed.")
+#define ERR_DB2ADMIN_NO_UDF_INFO PKG_NSF9+171
+ errortext(ERR_DB2ADMIN_NO_UDF_INFO, "'DB2 ACCESS SET' failed. Please make sure that the DB2 Access information in the DB2 tab of the Server Document is up to date.")
+#define ERR_DB2_EN_DUP_DB PKG_NSF9+172
+ errortext(ERR_DB2_EN_DUP_DB, "The database, %s, exists in the DB2 context you are using. You must select another DB2 database name.")
+#define CONTEXT_DAV_ACTION PKG_NSF9+173
+ errortext(CONTEXT_DAV_ACTION, "DAV Action SQL error." )
+#define ERR_DAV_TOOBIG PKG_NSF9+174
+ errortext(ERR_DAV_TOOBIG, "DB2 Access View definition exceeds maximum supported length." )
+#define ERR_SERVER_NOT_UDFENABLED PKG_NSF9+175
+ errortext(ERR_SERVER_NOT_UDFENABLED, "Domino server is not DB2 Access View enabled." )
+#define ERR_NO_DAV_ANON_ACCESS PKG_NSF9+176
+ errortext(ERR_NO_DAV_ANON_ACCESS, "No matching Notes user found for DB2 user and anonymous access is disabled." )
+#define ERR_DB2_BACKLEVEL PKG_NSF9+177
+ errortext(ERR_DB2_BACKLEVEL, "WARNING: Domino minimum DB2 installation requirement not met. Upgrade your DB2 installation.")
+#define LOG_DB2NSF_POLL_TASK_PURGE PKG_NSF9+178
+ stringtext(LOG_DB2NSF_POLL_TASK_PURGE, "Domino is now purging the DB2 schema %s and table space %s")
+
+#define STR_UDF_SETUP_START PKG_NSF9+179
+ errortext(STR_UDF_SETUP_START, "Please wait while the server sets up the information for the DB2 Access DLL (%a)." )
+#define STR_UDF_SET_USER_DOC PKG_NSF9+180
+ errortext(STR_UDF_SET_USER_DOC, "Create user document for the DB2 Access DLL (%a)." )
+#define STR_UDF_SETUP_COMPLETE PKG_NSF9+181
+ errortext(STR_UDF_SETUP_COMPLETE, "DB2 Access DLL setup complete.\n" )
+#define ERR_DB2ADMIN_UDF_PROP PKG_NSF9+182
+ errortext(ERR_DB2ADMIN_UDF_PROP, "'DB2 ACCESS SET' failed while attempting to set the following property: \n%s")
+#define ERR_DB2ADMIN_UDF_DB2_NOT PKG_NSF9+183
+ errortext(ERR_DB2ADMIN_UDF_DB2_NOT, "This server does not have DB2 Access set up.")
+#define ERR_DB2ADMIN_UDF_INFO PKG_NSF9+184
+ errortext(ERR_DB2ADMIN_UDF_INFO, "'DB2 ACCESS SET' failed while attempting to execute the following command: \n%s")
+#define ERR_DB2ADMIN_UDF_NO_PATH PKG_NSF9+185
+ errortext(ERR_DB2ADMIN_UDF_NO_PATH, "'DB2 ACCESS SET' failed. 'DB2UDFPATH' could not be found in notes.ini")
+#define ERR_DB2ADMIN_UDF_NO_SERVER PKG_NSF9+186
+ errortext(ERR_DB2ADMIN_UDF_NO_SERVER, "'DB2 ACCESS SET' failed. 'DB2UDFSERVER' could not be found in notes.ini")
+
+#define ERR_RRM_NOTSET PKG_NSF9+187
+ errortext(ERR_RRM_NOTSET, "RRM Context not set for this database")
+#define ERR_RRM_ALREADYSET PKG_NSF9+188
+ errortext(ERR_RRM_ALREADYSET, "RRM Context already set for this database")
+#define NSFSTR_DB2CREATE_MESSAGE PKG_NSF9+189
+ stringtext(NSFSTR_DB2CREATE_MESSAGE, "Creating DB2 database '%s' in DB2 Instance '%s' with username '%s'...")
+#define NSFSTR_DB2CONNECT_MESSAGE PKG_NSF9+190
+ stringtext(NSFSTR_DB2CONNECT_MESSAGE, "Connecting to DB2 database '%s' in DB2 Instance '%s' with username '%s'...")
+#define ERR_SINGLEVAL_CONSTRAINT PKG_NSF9+191
+ errortext(ERR_SINGLEVAL_CONSTRAINT, "Cannot save a multi-value item to a DB2 Access View defined as 'single value only'.")
+#define CONTEXT_DB2NSF_USER_ACTIVITY_LOG PKG_NSF9+192
+ errortext(CONTEXT_DB2NSF_USER_ACTIVITY_LOG, "Error encountered in the DB2 User Activity Log.")
+#define CONTEXT_DB2NSF_DELETE_PROP PKG_NSF9+193
+ errortext(CONTEXT_DB2NSF_DELETE_PROP, "Failed when DB2 was deleting properties.")
+#define ERR_DAV_BAD_COLNAME PKG_NSF9+194
+ errortext(ERR_DAV_BAD_COLNAME, "Access View definition has an invalid name. The DB2 Access View name and the DB2 column names must begin with a letter.")
+#define ERR_DAV_NOFIELDS PKG_NSF9+195
+ errortext(ERR_DAV_NOFIELDS, "Access View Definition does not contain any fields.")
+#define NSFSTR_DB2_NO_USERNAME_PASSWORD PKG_NSF9+196
+ stringtext(NSFSTR_DB2_NO_USERNAME_PASSWORD,"WARNING: Could not retrieve DB2 username and password from the server ID file.")
+#define ERR_NO_POP_REQUEST PKG_NSF9+197
+ errortext(ERR_NO_POP_REQUEST, "DB2 Access View population is not currently required." )
+#define MSG_DAVPOP_SUCCESS PKG_NSF9+198
+ stringtext(MSG_DAVPOP_SUCCESS, "DB2 Access View population started successfully." )
+#define LOG_DAVPOP_INFO PKG_NSF9+199
+ stringtext(LOG_DAVPOP_INFO,"Failed populating Access Table - NoteID: %lu, Field Name: %s." )
+
+#define ERR_DB2_ADMIN_EN_ACCOUNT_RIGHTS_ERR3 PKG_NSF9+200
+ errortext(ERR_DB2_ADMIN_EN_ACCOUNT_RIGHTS_ERR3, "- You must create the user account to access DB2.\n You may have already done this. If so ignore this and continue.\n")
+
+#define ERR_DB2_ADMIN_EN_INVALID_INSTANCE PKG_NSF9+201
+ errortext(ERR_DB2_ADMIN_EN_INVALID_INSTANCE, "- DB2 enablement could not attach to the specified instance. You may have entered an invalid instance name or are setting up for remote and not entering the host information.\n")
+
+#define ERR_DB2ADMIN_UDF_NO_ACCESS PKG_NSF9+202
+ errortext(ERR_DB2ADMIN_UDF_NO_ACCESS, "'DB2 ACCESS SET' failed. DB2 Access could not access server %a. Server returned (%e).")
+#define ERR_DB2_NULL_LOAD_COMPUTED_COLUMN PKG_NSF9+203
+ errortext(ERR_DB2_NULL_LOAD_COMPUTED_COLUMN, "NULL CLI Load performed on table with computed column")
+#define CONTEXT_DB2_NULLLOAD PKG_NSF9+204
+ errortext(CONTEXT_DB2_NULLLOAD, "NULL CLI Load having problems bulk erasing table data")
+#define CONTEXT_DB2_RECLAIM_SPACE PKG_NSF9+205
+ errortext(CONTEXT_DB2_RECLAIM_SPACE, "Problems reclaiming space in a tablespace container")
+#define NSFSTR_DB2ATTACH_MESSAGE PKG_NSF9+206
+ stringtext(NSFSTR_DB2ATTACH_MESSAGE, "Attaching to DB2 Instance '%s' with username '%s'...")
+#define ERR_DAV_RECREATE_NEEDED PKG_NSF9+207
+ errortext(ERR_DAV_RECREATE_NEEDED, "DB2 Access View needs to be recreated before population." )
+
+#define STR_UDF_SETUP_TEST_OK PKG_NSF9+208
+ errortext(STR_UDF_SETUP_TEST_OK, "DB2 Access successfully connected to %a." )
+
+#define STR_UDF_SETUP_TEST_START PKG_NSF9+209
+ errortext(STR_UDF_SETUP_TEST_START, "DB2 Access testing connection and access to %a." )
+
+#define STR_UDF_SETUP_TEST_CONN_FAIL PKG_NSF9+210
+ errortext(STR_UDF_SETUP_TEST_CONN_FAIL, "DB2 Access connection failed with error -> (%e)" )
+
+#define STR_UDF_SETUP_CONN_NO_CONFIG PKG_NSF9+211
+ errortext(STR_UDF_SETUP_CONN_NO_CONFIG, "DB2 Access is not configured on this server." )
+
+#define STR_UDF_SETUP_ITEM_LIST PKG_NSF9+212
+ stringtext(STR_UDF_SETUP_ITEM_LIST, "server document|NOTES.INI" )
+
+#define STR_UDF_SETUP_MISSING_ITEM PKG_NSF9+213
+ errortext(STR_UDF_SETUP_MISSING_ITEM, "DB2 Access is missing item '%s' from %s." )
+
+#define STR_UDF_SETUP_FOUND_ITEM PKG_NSF9+214
+ errortext(STR_UDF_SETUP_FOUND_ITEM, "DB2 Access successfully found item '%s'('%s') in %s." )
+
+#define ERR_UDF_SETUP_CONFIG_ERROR PKG_NSF9+215
+ errortext(ERR_UDF_SETUP_CONFIG_ERROR, "DB2 Access configuration errors. Please check the notes.ini and server document." )
+
+#define DB2_ENABLE_TOOL_SRV_DB2_AND_UDF PKG_NSF9+216
+ errortext(DB2_ENABLE_TOOL_SRV_DB2_AND_UDF, "DB2 and DB2 Access are set up." )
+
+#define STR_UDF_SETUP_MISSING_PER_DOC PKG_NSF9+217
+ errortext(STR_UDF_SETUP_MISSING_PER_DOC, "DB2 Access is missing person document." )
+
+#define ERR_DAV_INVALID_READER_LIST PKG_NSF9+218
+ errortext(ERR_DAV_INVALID_READER_LIST, "The reader list is corrupt.")
+#define DB2_ENABLE_TOOL_SRV_DB2_NOT_UDF PKG_NSF9+219
+ errortext(DB2_ENABLE_TOOL_SRV_DB2_NOT_UDF, "This server has DB2 but DB2 Access not set up.")
+#define ERR_DAV_MAXFIELDS PKG_NSF9+220
+ errortext(ERR_DAV_MAXFIELDS, "The maximum number of DB2 Access fields has been exceeded.")
+/* 221 IS FREE! */
+
+#define CONTEXT_TABLE_QUERY PKG_NSF9+222
+ errortext(CONTEXT_TABLE_QUERY, "Failed to query tables for schema")
+#define ERR_DAV_INVALID_DELIMITER PKG_NSF9+223
+ errortext(ERR_DAV_INVALID_DELIMITER, "Invalid multivalue delimiter.")
+#define STR_UDF_DROPFAILURE PKG_NSF9+224
+ stringtext(STR_UDF_DROPFAILURE, "Unable to remove some DB2 Access entities for schema %s. These will need to be manually dropped. ")
+#define STR_UDF_TYPEKEY PKG_NSF9+225
+ stringtext(STR_UDF_TYPEKEY, "Types are: 1=Table, 2=View, 3=Trigger, 4=Function, 5=Index\nThe items to be dropped can be obtained with the following query:")
+#define ERR_MONITORS_CLIENT_EVENTS PKG_NSF9+226
+ errortext(ERR_MONITORS_CLIENT_EVENTS, "Monitor client has exceeded maximum number of events")
+#define ERR_ARCHIVE_PRUNE_FLAG_NOT_SET PKG_NSF9+231
+ errortext(ERR_ARCHIVE_PRUNE_FLAG_NOT_SET, "Archive doc link detected in a document that does not have the pruned or abstracted flag set. NoteID=%x.\n")
+#define ERR_DESK_ARCHIVE_PRN_DOCS (PKG_NSF9+232)
+ errortext(ERR_DESK_ARCHIVE_PRN_DOCS, "Some documents were not archived because they had already been pruned. See the archive log for additional details.")
+#define ERR_DESK_ARCHIVE_NUM_PRN_DOCS (PKG_NSF9+233)
+ errortext(ERR_DESK_ARCHIVE_NUM_PRN_DOCS, "%d documents were not archived because they had already been pruned.")
+#define CONTEXT_DB2LOAD_RESTORE_DEF PKG_NSF9+234
+ errortext(CONTEXT_DB2LOAD_RESTORE_DEF, "Failed when restoring access definition.")
+#define ERR_TASK_DB2DEFERRED_QCREATEFAIL PKG_NSF9+235
+ stringtext(ERR_TASK_DB2DEFERRED_QCREATEFAIL, "Failed to create the DB2 deferred processing message queue")
+#define ERR_TASK_DB2DEFERRED_DB2ERR PKG_NSF9+236
+ errortext(ERR_TASK_DB2DEFERRED_DB2ERR, "DB2 deferred processing thread delayed due to DB2 errors")
+#define STR_UDF_REMOVE_WARNING PKG_NSF9+237
+ errortext(STR_UDF_REMOVE_WARNING, "Warning: %d Domino Access Views could not be removed.\n" )
+
+#define STR_UDF_REMOVE_COMPLETE PKG_NSF9+238
+ errortext(STR_UDF_REMOVE_COMPLETE, "DB2 Access successfully removed from server.\n" )
+
+#define ERR_DB2NSF_SCHEMAUPGRADEBLOCKED PKG_NSF9+239
+ errortext(ERR_DB2NSF_SCHEMAUPGRADEBLOCKED, "Upgrade to schema version %d disabled, set DEBUG_DB2_ALLOW_SCHEMA_UPGRADE=%d in notes.ini to enable." )
+
+#define ERR_ARCHIVE_BEHALFOF_NOT_SET PKG_NSF9+240
+ errortext(ERR_ARCHIVE_BEHALFOF_NOT_SET, "Error opening archive settings because item $OnBehalfOf exists but is not set")
+#define ERR_ARC_REQ_SRC_ACCESS_BEHALF PKG_NSF9+241
+ errortext(ERR_ARC_REQ_SRC_ACCESS_BEHALF, "OnBehalfOf user does not have the required access rights to the source database.")
+#define ERR_ARC_REQ_ARC_ACCESS_BEHALF PKG_NSF9+242
+ errortext(ERR_ARC_REQ_ARC_ACCESS_BEHALF, "OnBehalfOf user does not have the required access rights to the archive database.")
+#define NSFSTR_DB2DROP_MESSAGE PKG_NSF9+243
+ stringtext(NSFSTR_DB2DROP_MESSAGE, "Dropping DB2 database '%s' in DB2 Instance '%s' with username '%s'...")
+#define ERR_DB2_INVALID_LIB_PATH PKG_NSF9+244
+ errortext(ERR_DB2_INVALID_LIB_PATH, "\nThe DB2 library path may be invalid. \nPlease make sure you have entered the correct path to the DB2 libraries." )
+
+#define DB2_ENABLE_TOOL_INVALID_OS PKG_NSF9+245
+ errortext(DB2_ENABLE_TOOL_INVALID_OS, "This server is not on a supported platform. Only servers on Windows or AIX platforms support update to DB2.")
+#define ERR_RM_XA_ERROR_NOCODE PKG_NSF9+246
+ errortext(ERR_RM_XA_ERROR_NOCODE, "An error occurred accessing the db2 datasource.")
+#define ERR_DB2_LOG_FULL PKG_NSF9+247
+ errortext(ERR_DB2_LOG_FULL, "DB2 log full. Make sure your DB2 'LOGFILSIZ', 'LOGPRIMARY' and 'LOGSECOND' are large enough.")
+#define ERR_TASK_DESC_SCR PKG_NSF9+248
+ errortext(ERR_TASK_DESC_SCR, "Cluster Replication Cleanup Thread")
+#define ERR_DAV_BAD_UNK PKG_NSF9+249
+ errortext(ERR_DAV_BAD_UNK, "Access View Definition references an unknown form : ")
+#define ERR_IMAP_CONV_UNREAD_ERR PKG_NSF9+250
+ errortext(ERR_IMAP_CONV_UNREAD_ERR, "Cannot migrate R5 IMAP Seen flags to Unread marks.")
+
+#define ERR_DB2_ACCESS_CONN_NET_ADDR PKG_NSF9+251
+ errortext(ERR_DB2_ACCESS_CONN_NET_ADDR, "The optional network address (%s) for the connection record may be invalid. Please check using the 'Edit DB2 Access Connection' tool in the Domino Administration clients.")
+
+#define ERR_ARC_PREVIEW_DOCS PKG_NSF9+252
+ errortext(ERR_ARC_PREVIEW_DOCS, "Unable to process documents for archive preview")
+
+#define CONTEXT_GROUP_MGMT PKG_NSF9+253
+ errortext(CONTEXT_GROUP_MGMT, "Error managing DB2 groups")
+
+#define ERR_DB2_GROUP_ENTRIES PKG_NSF9+254
+ errortext(ERR_DB2_GROUP_ENTRIES, "There are no DB2 based Domino databases on this server.")
+
+#define DB2_ENABLE_TOOL_SRV_NOT_DB2 PKG_NSF9+255
+ stringtext(DB2_ENABLE_TOOL_SRV_NOT_DB2, "This server is not DB2 enabled.")
+/* PKG_NSF9 codes limited to 0-255 */
+
+/* End of Error Codes */
+
+/* PKG_DB2_STR codes limited to 0-127. */
+/* STRINGS ONLY *** These can not be sued for error codes *** STRINGS ONLY */
+
+#define STR_DB2_GROUP_SETSTATE PKG_DB2_STR+0
+ stringtext(STR_DB2_GROUP_SETSTATE, "opened|locked|%s has been %s.|%s could not be %s.|Group %s does not exist.|Group %s is already %s.")
+
+#define STR_DB2_GROUP_SETCLASS PKG_DB2_STR+1
+ stringtext(STR_DB2_GROUP_SETCLASS, "The class for %s has been set to '%s'.|The class for %s could not be set to '%s'.|This group is already named %s.")
+
+#define STR_DB2_GROUP_RENCLASS PKG_DB2_STR+2
+ stringtext(STR_DB2_GROUP_RENCLASS, "The class '%s' has been renamed to '%s'.|The class '%s' could not be renamed to '%s'.|Class %s does not exist.|The old and new class names are identical.")
+
+#define STR_DB2_GROUP_MOVE PKG_DB2_STR+3
+ stringtext(STR_DB2_GROUP_MOVE, "Database %s is being moved to group %s.|Database %s is being moved to a new group.|Database %s could not be moved to group %s: %e |Please try again later. ")
+
+#define STR_DB2_GROUP_LOCKED PKG_DB2_STR+4
+ stringtext(STR_DB2_GROUP_LOCKED, "Open|Locked|Full")
+
+#define ADMIN_DB2_ENABLE_EFFECT_RESTART PKG_DB2_STR+5
+ stringtext(ADMIN_DB2_ENABLE_EFFECT_RESTART, "\nDB2 enablement will not take effect until the server has been restarted.\n")
+
+#define ADMIN_DB2_ENABLE_EFFECT_RESTART1 PKG_DB2_STR+6
+ stringtext(ADMIN_DB2_ENABLE_EFFECT_RESTART1, "You may now restart the Domino server.\n")
+
+#define ADMIN_DB2_ENABLE_EFFECT_RESTART2 PKG_DB2_STR+7
+ stringtext(ADMIN_DB2_ENABLE_EFFECT_RESTART2, "You must wait for all the appropriated DB2 information to be updated in the server document and then restart the Domino server.")
+
+#define STR_DB2_GROUP_MOVE2 PKG_DB2_STR+8
+ stringtext(STR_DB2_GROUP_MOVE2, "Group %s does not exist.|Database %s does not exist.|Database %s is already in group %s.|Group %s is locked.|Group %s is full.")
+
+#define DB2STR_XA_RBROLLBACK PKG_DB2_STR+9
+ stringtext(DB2STR_XA_RBROLLBACK, "Rollback caused by unspecified reason.")
+#define DB2STR_XA_RBCOMMFAIL PKG_DB2_STR+10
+ stringtext(DB2STR_XA_RBCOMMFAIL, "Rollback caused by communication failure.")
+#define DB2STR_XA_RBDEADLOCK PKG_DB2_STR+11
+ stringtext(DB2STR_XA_RBDEADLOCK, "Deadlock detected.")
+#define DB2STR_XA_RBINTEGRITY PKG_DB2_STR+12
+ stringtext(DB2STR_XA_RBINTEGRITY, "An integrity error was detected.")
+#define DB2STR_XA_RBOTHER PKG_DB2_STR+13
+ stringtext(DB2STR_XA_RBOTHER, "The RM rolled back for unspecified reason.")
+#define DB2STR_XA_RBPROTO PKG_DB2_STR+14
+ stringtext(DB2STR_XA_RBPROTO, "A protocol error occurred in the RM.")
+#define DB2STR_XA_RBTIMEOUT PKG_DB2_STR+15
+ stringtext(DB2STR_XA_RBTIMEOUT, "The transaction took too long.")
+#define DB2STR_XA_RBTRANSIENT PKG_DB2_STR+16
+ stringtext(DB2STR_XA_RBTRANSIENT, "Retry the transaction.")
+#define DB2STR_XA_NOMIGRATE PKG_DB2_STR+17
+ stringtext(DB2STR_XA_NOMIGRATE, "Resumed in wrong thread.")
+#define DB2STR_XA_HEURHAZ PKG_DB2_STR+18
+ stringtext(DB2STR_XA_HEURHAZ, "The transaction branch may have been heuristically completed.")
+#define DB2STR_XA_HEURCOM PKG_DB2_STR+19
+ stringtext(DB2STR_XA_HEURCOM, "The transaction branch has been heuristically committed.")
+#define DB2STR_XA_HEURRB PKG_DB2_STR+20
+ stringtext(DB2STR_XA_HEURRB, "The transaction branch has been heuristically rolled back.")
+#define DB2STR_XA_HEURMIX PKG_DB2_STR+21
+ stringtext(DB2STR_XA_HEURMIX, "The transaction branch has been heuristically committed & rolled back.")
+#define DB2STR_XA_RETRY PKG_DB2_STR+22
+ stringtext(DB2STR_XA_RETRY, "Routine returned with no effect & may be reissued.")
+#define DB2STR_XA_RDONLY PKG_DB2_STR+23
+ stringtext(DB2STR_XA_RDONLY, "The transaction branch was read-only and has been committed.")
+#define DB2STR_XAER_ASYNC PKG_DB2_STR+24
+ stringtext(DB2STR_XAER_ASYNC, "An asynchronous operation already outstanding.")
+#define DB2STR_XAER_RMERR PKG_DB2_STR+25
+ stringtext(DB2STR_XAER_RMERR, "A RM error occurred.")
+#define DB2STR_XAER_NOTA PKG_DB2_STR+26
+ stringtext(DB2STR_XAER_NOTA, "The specified XID is not valid.")
+#define DB2STR_XAER_INVAL PKG_DB2_STR+27
+ stringtext(DB2STR_XAER_INVAL, "Invalid arguments were given.")
+#define DB2STR_XAER_PROTO PKG_DB2_STR+28
+ stringtext(DB2STR_XAER_PROTO, "Routine invoked in improper context.")
+#define DB2STR_XAER_RMFAIL PKG_DB2_STR+29
+ stringtext(DB2STR_XAER_RMFAIL, "RM unavailable.")
+#define DB2STR_XAER_DUPID PKG_DB2_STR+30
+ stringtext(DB2STR_XAER_DUPID, "The XID already exists.")
+#define DB2STR_XAER_OUTSIDE PKG_DB2_STR+31
+ stringtext(DB2STR_XAER_OUTSIDE, "The RM doing work outside of global transaction.")
+#define DB2STR_CREATE_DB_SUCCESS PKG_DB2_STR+32
+ stringtext(DB2STR_CREATE_DB_SUCCESS,"DB2 database %s successfully created with codepage/territory (%s/%s).")
+#define DB2STR_CFG_SET_ERR PKG_DB2_STR+33
+ stringtext(DB2STR_CFG_SET_ERR, "DB2NSFInit Error setting configuration parms for DB2 database %s sqlcode=%d.")
+#define DB2STR_CREATE_DB_ERR PKG_DB2_STR+34
+ stringtext(DB2STR_CREATE_DB_ERR, "DB2NSFInit Error creating DB2 database %s sqlcode=%d.")
+#define DB2STR_CREATE_SRV_TBLS_ERR PKG_DB2_STR+35
+ stringtext(DB2STR_CREATE_SRV_TBLS_ERR, "DB2NSFInit Error creating server tables for server %s.")
+#define DB2STR_SESS_ALLOC_ERR PKG_DB2_STR+36
+ stringtext(DB2STR_SESS_ALLOC_ERR, "DB2NSFInit Error allocating DB2 session.")
+
+#define STR_DB2_GROUP_DEFAULT PKG_DB2_STR+37
+ stringtext(STR_DB2_GROUP_DEFAULT, "Default")
+
+#define STR_DB2_GROUP_INPUT_INVALID PKG_DB2_STR+38
+ stringtext(STR_DB2_GROUP_INPUT_INVALID, "The group you have requested does not exist.")
+
+#define STR_DB2_DEF_GROUP_MOVE PKG_DB2_STR+39
+ stringtext(STR_DB2_DEF_GROUP_MOVE, "DB2 group move request for %s submitted to server %a.|DB2 group move of %s request failed: %e|DB2 group move of %s completed.")
+
+#define STR_DB2_COMPACT_DEFER PKG_DB2_STR+40
+ stringtext(STR_DB2_COMPACT_DEFER, "Skipping NSFDB2 database %s. DB2 reorg will be performed on tables in schemas %s and %s after NSF processing")
+#define STR_DB2_TABLESPACE_REDUCE PKG_DB2_STR+41
+ stringtext(STR_DB2_TABLESPACE_REDUCE, "The DB2 tablespace %s is being reduced by %d pages.")
+#define STR_DB2_TABLE_REORG_ALL PKG_DB2_STR+42
+ stringtext(STR_DB2_TABLE_REORG_ALL ,"Performing DB2 table and index reorgs for all NSFDB2 databases")
+#define STR_DB2_TABLE_REORG_DIR PKG_DB2_STR+43
+ stringtext(STR_DB2_TABLE_REORG_DIR ,"Performing DB2 table and index reorgs for all NSFDB2 databases contained in %s")
+#define STR_DB2_TABLE_REORG_TABLE1 PKG_DB2_STR+44
+ stringtext(STR_DB2_TABLE_REORG_TABLE1 ,"Performing DB2 table and index reorgs for schemas %s and %s")
+#define STR_DB2_TABLE_REORG_TABLE2 PKG_DB2_STR+45
+ stringtext(STR_DB2_TABLE_REORG_TABLE2 ,"Continuing DB2 reorgs on tables in user schema %s, if applicable")
+
+#define STR_DB2_DEF_GROUP_MOVE_GRP PKG_DB2_STR+46
+ stringtext(STR_DB2_DEF_GROUP_MOVE_GRP, "DB2 group move request for %s to group %s submitted to server %a.|DB2 group move of %s to group %s request failed: %e|DB2 group move of %s to group %s completed.")
+#define STR_DB2_STATS_RESET PKG_DB2_STR+47
+ stringtext(STR_DB2_STATS_RESET, "DB2NSF statistics were set to zero.")
+#define STR_DB2_LOBLOCATOR_EXTRA_FETCH PKG_DB2_STR+48
+ stringtext(STR_DB2_LOBLOCATOR_EXTRA_FETCH, "Extra DB2SQLFetch to free LOB locators->0x%x=%e")
+#define STR_DB2NSF_DBCFG_WARNING PKG_DB2_STR+49
+ stringtext(STR_DB2NSF_DBCFG_WARNING,"Warning: Modifying DB2 database configuration parameters for optimization...")
+#define STR_DB2NSF_DBMCFG_WARNING PKG_DB2_STR+50
+ stringtext(STR_DB2NSF_DBMCFG_WARNING,"Warning: Modifying DB2 database manager configuration parameters for optimization...")
+#define STR_DB2_KEY_WARNING PKG_DB2_STR+51
+ stringtext(STR_DB2_KEY_WARNING,"Warning: DB2 will not be accessible by Domino until you copy the DB2 Key file, %s, to the Domino binaries directory.")
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nsfnote.h b/plugins/LotusNotify/src/cnotesapi/include/nsfnote.h
new file mode 100644
index 0000000000..ca785c0b9e
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nsfnote.h
@@ -0,0 +1,551 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+#ifndef NSF_NOTE_DEFS
+#define NSF_NOTE_DEFS
+
+
+#ifndef NULLKFHANDLE
+typedef void far * KFHANDLE;
+#define NULLKFHANDLE ((KFHANDLE)0)
+#endif
+
+#ifndef NSF_DEFS
+#include "nsfdata.h"
+#endif
+
+#ifndef POOL_DEFS
+#include "pool.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Note Storage File Note Definitions */
+
+/* Item Flags */
+
+#define ITEM_SIGN 0x0001 /* This field will be signed if requested */
+#define ITEM_SEAL 0x0002 /* This field will be encrypted if requested */
+#define ITEM_SUMMARY 0x0004 /* This field can be referenced in a formula */
+#define ITEM_READWRITERS 0x0020 /* This field identifies subset of users that have read/write access */
+#define ITEM_NAMES 0x0040 /* This field contains user/group names */
+#define ITEM_PLACEHOLDER 0x0100 /* Simply add this item to "item name table", but do not store */
+#define ITEM_PROTECTED 0x0200 /* This field cannot be modified except by "owner" */
+#define ITEM_READERS 0x0400 /* This field identifies subset of users that have read access */
+#define ITEM_UNCHANGED 0x1000 /* Item is same as on-disk */
+
+/* If the following is ORed in with a note class, the resultant note ID
+ may be passed into NSFNoteOpen and may be treated as though you first
+ did an NSFGetSpecialNoteID followed by an NSFNoteOpen, all in a single
+ transaction. */
+
+#define NOTE_ID_SPECIAL 0xFFFF0000L
+
+/* Note Classifications */
+/* If NOTE_CLASS_DEFAULT is ORed with another note class, it is in
+ essence specifying that this is the default item in this class. There
+ should only be one DEFAULT note of each class that is ever updated,
+ although nothing in the NSF machinery prevents the caller from adding
+ more than one. The file header contains a table of the note IDs of
+ the default notes (for efficient access to them). Whenever a note
+ is updated that has the default bit set, the reference in the file
+ header is updated to reflect that fact.
+ WARNING: NOTE_CLASS_DOCUMENT CANNOT have a "default". This is precluded
+ by code in NSFNoteOpen to make it fast for data notes.
+*/
+
+#define NOTE_CLASS_DOCUMENT 0x0001 /* document note */
+#define NOTE_CLASS_DATA NOTE_CLASS_DOCUMENT /* old name for document note */
+#define NOTE_CLASS_INFO 0x0002 /* notefile info (help-about) note */
+#define NOTE_CLASS_FORM 0x0004 /* form note */
+#define NOTE_CLASS_VIEW 0x0008 /* view note */
+#define NOTE_CLASS_ICON 0x0010 /* icon note */
+#define NOTE_CLASS_DESIGN 0x0020 /* design note collection */
+#define NOTE_CLASS_ACL 0x0040 /* acl note */
+#define NOTE_CLASS_HELP_INDEX 0x0080 /* Notes product help index note */
+#define NOTE_CLASS_HELP 0x0100 /* designer's help note */
+#define NOTE_CLASS_FILTER 0x0200 /* filter note */
+#define NOTE_CLASS_FIELD 0x0400 /* field note */
+#define NOTE_CLASS_REPLFORMULA 0x0800 /* replication formula */
+#define NOTE_CLASS_PRIVATE 0x1000 /* Private design note, use $PrivateDesign view to locate/classify */
+
+
+#define NOTE_CLASS_DEFAULT 0x8000 /* MODIFIER - default version of each */
+
+#define NOTE_CLASS_NOTIFYDELETION NOTE_CLASS_DEFAULT /* see SEARCH_NOTIFYDELETIONS */
+#define NOTE_CLASS_ALL 0x7fff /* all note types */
+#define NOTE_CLASS_ALLNONDATA 0x7ffe /* all non-data notes */
+#define NOTE_CLASS_NONE 0x0000 /* no notes */
+
+#define NC_MASK_DB2_VISIBLE 0x0FFF /* all classes up to NOTE_CLASS_REPLFORMULA*/
+
+
+
+/* Define symbol for those note classes that allow only one such in a file */
+
+#define NOTE_CLASS_SINGLE_INSTANCE ( \
+ NOTE_CLASS_DESIGN | \
+ NOTE_CLASS_ACL | \
+ NOTE_CLASS_INFO | \
+ NOTE_CLASS_ICON | \
+ NOTE_CLASS_HELP_INDEX | \
+ 0)
+
+/* Note flag definitions */
+
+#define NOTE_SIGNED 0x0001 /* signed */
+#define NOTE_ENCRYPTED 0x0002 /* encrypted */
+
+/* Open Flag Definitions. These flags are passed to NSFNoteOpen. */
+
+#define OPEN_SUMMARY 0x0001 /* open only summary info */
+#define OPEN_NOVERIFYDEFAULT 0x0002 /* don't bother verifying default bit */
+#define OPEN_EXPAND 0x0004 /* expand data while opening */
+#define OPEN_NOOBJECTS 0x0008 /* don't include any objects */
+#define OPEN_SHARE 0x0020 /* open in a "shared" memory mode */
+#define OPEN_CANONICAL 0x0040 /* Return ALL item values in canonical form */
+#define OPEN_MARK_READ 0x0100 /* Mark unread if unread list is currently associated */
+#define OPEN_ABSTRACT 0x0200 /* Only open an abstract of large documents */
+#define OPEN_RESPONSE_ID_TABLE 0x1000 /* Return response ID table */
+#define OPEN_WITH_FOLDERS 0x00020000 /* Include folder objects - default is not to */
+#define OPEN_RAW_RFC822_TEXT 0x01000000 /* If set, leave TYPE_RFC822_TEXT items in native
+ format. Otherwise, convert to TYPE_TEXT/TYPE_TIME. */
+#define OPEN_RAW_MIME_PART 0x02000000 /* If set, leave TYPE_MIME_PART items in native
+ format. Otherwise, convert to TYPE_COMPOSITE. */
+#define OPEN_RAW_MIME (OPEN_RAW_RFC822_TEXT | OPEN_RAW_MIME_PART)
+
+/* Update Flag Definitions. These flags are passed to NSFNoteUpdate and
+ NSFNoteDelete. See also NOTEID_xxx special definitions in nsfdata.h. */
+
+#define UPDATE_FORCE 0x0001 /* update even if ERR_CONFLICT */
+#define UPDATE_NAME_KEY_WARNING 0x0002 /* give error if new field name defined */
+#define UPDATE_NOCOMMIT 0x0004 /* do NOT do a database commit after update */
+#define UPDATE_NOREVISION 0x0100 /* do NOT maintain revision history */
+#define UPDATE_NOSTUB 0x0200 /* update body but leave no trace of note in file if deleted */
+#define UPDATE_INCREMENTAL 0x4000 /* Compute incremental note info */
+#define UPDATE_DELETED 0x8000 /* update body DELETED */
+
+#define UPDATE_DUPLICATES 0 /* Obsolete; but in SDK */
+
+/* Conflict Handler defines */
+#define CONFLICT_ACTION_MERGE 1
+#define CONFLICT_ACTION_HANDLED 2
+
+#define UPDATE_SHARE_SECOND 0x00200000L /* Split the second update of this note with the object store */
+#define UPDATE_SHARE_OBJECTS 0x00400000L /* Share objects only, not non-summary items, with the object store */
+#define NOTE_LOCK_STATUS 0x00000008 /* Return status of lock */
+#define NOTE_LOCK_HARD 0x00000010 /* Take out a hard note lock */
+#define NOTE_LOCK_PROVISIONAL 0x00000020 /* Take out a provisional hard note lock */
+/* Structure returned from NSFNoteDecrypt which can be used to decrypt
+ file attachment objects, which are not decrypted until necessary. */
+
+typedef struct
+ {
+ BYTE Byte1;
+ WORD Word1;
+ BYTE Text[16];
+ }
+ ENCRYPTION_KEY;
+
+
+/* Flags returned (beginning in V3) in the _NOTE_FLAGS */
+
+#define NOTE_FLAG_READONLY 0x0001 /* TRUE if document cannot be updated */
+#define NOTE_FLAG_ABSTRACTED 0x0002 /* missing some data */
+#define NOTE_FLAG_INCREMENTAL 0x0004 /* Incremental note (place holders) */
+#define NOTE_FLAG_LINKED 0x0020 /* Note contains linked items or linked objects */
+#define NOTE_FLAG_INCREMENTAL_FULL 0x0040 /* Incremental type note Fully opened (NO place holders)
+ This type of note is meant to retain the
+ Item sequence numbers */
+#define NOTE_FLAG_CANONICAL 0x4000 /* Note is (opened) in canonical form */
+
+/* Note structure member IDs for NSFNoteGet&SetInfo. */
+
+#define _NOTE_DB 0 /* IDs for NSFNoteGet&SetInfo */
+#define _NOTE_ID 1 /* (When adding new values, see the */
+#define _NOTE_OID 2 /* table in NTINFO.C */
+#define _NOTE_CLASS 3
+#define _NOTE_MODIFIED 4
+#define _NOTE_PRIVILEGES 5 /* For pre-V3 compatibility. Should use $Readers item */
+#define _NOTE_FLAGS 7
+#define _NOTE_ACCESSED 8
+#define _NOTE_PARENT_NOTEID 10 /* For response hierarchy */
+#define _NOTE_RESPONSE_COUNT 11 /* For response hierarchy */
+#define _NOTE_RESPONSES 12 /* For response hierarchy */
+#define _NOTE_ADDED_TO_FILE 13 /* For AddedToFile time */
+#define _NOTE_OBJSTORE_DB 14 /* DBHANDLE of object store used by linked items */
+
+
+/* EncryptFlags used in NSFNoteCopyAndEncrypt */
+
+#define ENCRYPT_WITH_USER_PUBLIC_KEY 0x0001
+#define ENCRYPT_SMIME_IF_MIME_PRESENT 0x0002
+#define ENCRYPT_SMIME_NO_SENDER 0x0004
+#define ENCRYPT_SMIME_TRUST_ALL_CERTS 0x0008
+
+#define SIGN_NOTES_IF_MIME_PRESENT 0x00000001
+
+/* DecryptFlags used in NSFNoteDecrypt */
+
+#define DECRYPT_ATTACHMENTS_IN_PLACE 0x0001
+
+/* Flags used for NSFNoteExtractFileExt */
+
+#define NTEXT_RESONLY 0x0001 /* If a Mac attachment, extract resource fork only. */
+#define NTEXT_FTYPE_MASK 0x0070 /* File type mask */
+#define NTEXT_FTYPE_FLAT 0x0000 /* Normal one fork file */
+#define NTEXT_FTYPE_MACBIN 0x0010 /* MacBinaryII file */
+#define NTEXT_RAWMIME 0x0080 /* Do not decode MIME content transfer encoding */
+#define NTEXT_IGNORE_HUFF2 0x0100 /* Ignore checksum mismatch and save data anyway */
+
+/* Possible return values from the callback routine specified in
+ NSFNoteComputeWithForm() */
+
+#define CWF_ABORT 1
+#define CWF_NEXT_FIELD 2
+#define CWF_RECHECK_FIELD 3
+
+/* Possible validation phases for NSFNoteComputeWithForm() */
+
+#define CWF_DV_FORMULA 1
+#define CWF_IT_FORMULA 2
+#define CWF_IV_FORMULA 3
+#define CWF_COMPUTED_FORMULA 4
+#define CWF_DATATYPE_CONVERSION 5
+#define CWF_COMPUTED_FORMULA_LOAD CWF_COMPUTED_FORMULA
+#define CWF_COMPUTED_FORMULA_SAVE 6
+
+/* Function pointer type for NSFNoteComputeWithForm() callback */
+
+typedef WORD (LNCALLBACKPTR CWF_ERROR_PROC) (const void far *pCDField,
+ WORD phase, STATUS error,
+ HANDLE ErrorText,
+ WORD wErrorTextSize,
+ void far *ctx);
+
+/* Options to NSFNoteComputeWithForm() */
+
+#define CWF_CONTINUE_ON_ERROR 0x0001 /* Ignore compute errors */
+
+
+/* function templates */
+
+STATUS LNPUBLIC NSFItemAppend (NOTEHANDLE hNote, WORD ItemFlags,
+ const char far *Name, WORD NameLength,
+ WORD DataType,
+ const void far *Value, DWORD ValueLength);
+STATUS LNPUBLIC NSFItemAppendByBLOCKID (NOTEHANDLE hNote, WORD ItemFlags,
+ const char far *Name, WORD NameLength,
+ BLOCKID bhValue, DWORD ValueLength,
+ BLOCKID far *retbhItem);
+
+
+STATUS LNPUBLIC NSFItemAppendObject (NOTEHANDLE hNote, WORD ItemFlags,
+ const char far *Name, WORD NameLength,
+ BLOCKID bhValue, DWORD ValueLength, BOOL fDealloc);
+
+STATUS LNPUBLIC NSFItemDelete (NOTEHANDLE hNote, const char far *Name, WORD NameLength);
+STATUS LNPUBLIC NSFItemDeleteByBLOCKID (NOTEHANDLE hNote, BLOCKID bhItem);
+
+STATUS LNPUBLIC NSFItemRealloc (BLOCKID bhItem, BLOCKID far *bhValue, DWORD ValueLength);
+
+STATUS LNPUBLIC NSFItemCopy (NOTEHANDLE hNote, BLOCKID bhItem);
+STATUS LNPUBLIC NSFItemInfo (NOTEHANDLE hNote,
+ const char far *Name, WORD NameLength,
+ BLOCKID far *retbhItem,
+ WORD far *retDataType,
+ BLOCKID far *retbhValue,
+ DWORD far *retValueLength);
+
+#define NSFItemIsPresent(hNote, Name, NameLength) \
+ ((BOOL) (NSFItemInfo(hNote, Name, NameLength, NULL, NULL, NULL, NULL) == NOERROR))
+
+STATUS LNPUBLIC NSFItemInfoNext (NOTEHANDLE hNote, BLOCKID NextItem,
+ const char far *Name, WORD NameLength,
+ BLOCKID far *retbhItem,
+ WORD far *retDataType,
+ BLOCKID far *retbhValue,
+ DWORD far *retValueLength);
+
+STATUS LNPUBLIC NSFItemInfoPrev (NOTEHANDLE hNote, BLOCKID CurrItem,
+ const char far *Name, WORD NameLength,
+ BLOCKID far *retbhItem,
+ WORD far *retDataType,
+ BLOCKID far *retbhValue,
+ DWORD far *retValueLength);
+
+void LNPUBLIC NSFItemQuery (NOTEHANDLE hNote, BLOCKID bhItem,
+ char far *retItemName, WORD ItemNameBufferLength,
+ WORD far *retItemNameLength,
+ WORD far *retItemFlags,
+ WORD far *retDataType,
+ BLOCKID far *retbhValue, DWORD far *retValueLength);
+
+void LNPUBLIC NSFItemQueryEx (NOTEHANDLE hNote, BLOCKID bhItem,
+ char *retItemName, WORD ItemNameBufferLength,
+ WORD *retItemNameLength,
+ WORD *retItemFlags,
+ WORD *retDataType,
+ BLOCKID *retbhValue, DWORD *retValueLength,
+ BYTE *retSeqByte, BYTE *retDupItemID);
+
+WORD LNPUBLIC NSFItemGetText (NOTEHANDLE hNote, const char far *ItemName, char far *retBuffer, WORD BufferLength);
+BOOL LNPUBLIC NSFItemGetTime (NOTEHANDLE hNote, const char far *ItemName, TIMEDATE far *retTime);
+BOOL LNPUBLIC NSFItemGetNumber (NOTEHANDLE hNote, const char far *ItemName, NUMBER far *retNumber);
+LONG LNPUBLIC NSFItemGetLong (NOTEHANDLE hNote, const char far *ItemName, LONG DefaultNumber);
+
+STATUS LNPUBLIC NSFItemSetText (NOTEHANDLE hNote, const char far *ItemName, const char far *Text, WORD TextLength);
+
+
+STATUS LNPUBLIC NSFItemSetTextSummary (NOTEHANDLE hNote, const char far *ItemName, const char far *Text, WORD TextLength, BOOL Summary);
+STATUS LNPUBLIC NSFItemSetTime (NOTEHANDLE hNote, const char far *ItemName, const TIMEDATE far *Time);
+STATUS LNPUBLIC NSFItemSetNumber (NOTEHANDLE hNote, const char far *ItemName, const NUMBER far *Number);
+
+WORD LNPUBLIC NSFItemGetTextListEntries (NOTEHANDLE hNote, const char far *ItemName);
+WORD LNPUBLIC NSFItemGetTextListEntry (NOTEHANDLE hNote, const char far *ItemName, WORD EntryPos, char far *retBuffer, WORD BufferLength);
+STATUS LNPUBLIC NSFItemCreateTextList (NOTEHANDLE hNote, const char far *ItemName, const char far *Text, WORD TextLength);
+STATUS LNPUBLIC NSFItemAppendTextList (NOTEHANDLE hNote, const char far *ItemName, const char far *Text, WORD TextLength, BOOL fAllowDuplicates);
+
+STATUS LNPUBLIC NSFItemGetModifiedTime(HANDLE hNote, const char *ItemName, WORD ItemNameLength, DWORD Flags, TIMEDATE *retTime);
+STATUS LNPUBLIC NSFItemGetModifiedTimeByBLOCKID (HANDLE hNote, BLOCKID bhItem, DWORD Flags, TIMEDATE *retTime);
+
+
+
+BOOL LNPUBLIC NSFItemTextEqual(NOTEHANDLE hNote, const char far *ItemName, const char far *Text, WORD TextLength, BOOL fCaseSensitive);
+BOOL LNPUBLIC NSFItemTimeCompare(NOTEHANDLE hNote, const char far *ItemName, const TIMEDATE far *Time, int far *retVal);
+BOOL LNPUBLIC NSFItemLongCompare(NOTEHANDLE hNote, const char far *ItemName, long Value, int far *retVal);
+
+WORD LNPUBLIC NSFItemConvertValueToText (WORD DataType, BLOCKID bhValue, DWORD ValueLength, char far *retBuffer, WORD BufferLength, char SepChar);
+WORD LNPUBLIC NSFItemConvertToText (NOTEHANDLE hNote, const char far *ItemName, char far *retBuffer, WORD BufferLength, char SepChar);
+
+BOOL LNPUBLIC NSFGetSummaryValue (const void far *SummaryBuffer, const char far *Name, char far *retValue, WORD ValueBufferLength);
+BOOL LNPUBLIC NSFLocateSummaryValue (const void far *SummaryBuffer, const char far *Name,
+ void far *retValuePointer,
+ WORD far *retValueLength,
+ WORD far *retDataType);
+typedef STATUS (LNCALLBACKPTR NSFITEMSCANPROC)(WORD Spare, WORD ItemFlags,
+ char far *Name, WORD NameLength,
+ void far *Value, DWORD ValueLength,
+ void far *RoutineParameter);
+STATUS LNPUBLIC NSFItemScan (NOTEHANDLE hNote,
+ NSFITEMSCANPROC ActionRoutine,
+ void far *RoutineParameter);
+void LNPUBLIC NSFNoteGetInfo (NOTEHANDLE hNote, WORD Type, void far *Value);
+void LNPUBLIC NSFNoteSetInfo (NOTEHANDLE hNote, WORD Type, void far *Value);
+STATUS LNPUBLIC NSFNoteContract (NOTEHANDLE hNote);
+STATUS LNPUBLIC NSFNoteClose (NOTEHANDLE hNote);
+STATUS LNPUBLIC NSFNoteCreate (DBHANDLE hDB, NOTEHANDLE far *rethNote);
+STATUS LNPUBLIC NSFNoteDelete (DBHANDLE hDB, NOTEID NoteID, WORD UpdateFlags);
+STATUS LNPUBLIC NSFNoteDeleteExtended(DBHANDLE hDB, NOTEID NoteID, DWORD UpdateFlags);
+STATUS LNPUBLIC NSFDbNoteLock (DBHANDLE hDB, NOTEID NoteID, DWORD Flags, char *pLockers, HANDLE *rethLockers, DWORD *retLength);
+STATUS LNPUBLIC NSFDbNoteUnlock (DBHANDLE hDB, NOTEID NoteID, DWORD Flags);
+STATUS LNPUBLIC NSFNoteOpenWithLock (DBHANDLE hDB, NOTEID NoteID, DWORD LockFlags, DWORD OpenFlags, char *pLockers, HANDLE *rethLockers, DWORD *retLength, NOTEHANDLE far *rethNote);
+STATUS LNPUBLIC NSFNoteOpen (DBHANDLE hDB, NOTEID NoteID, WORD OpenFlags, NOTEHANDLE far *rethNote);
+STATUS LNPUBLIC NSFNoteOpenExt(DBHANDLE hDB, NOTEID NoteID, DWORD flags, NOTEHANDLE *rethNote);
+STATUS LNPUBLIC NSFNoteHardDelete(DBHANDLE hDB, NOTEID NoteID, DWORD Reserved);
+STATUS LNPUBLIC NSFNoteOpenSoftDelete(DBHANDLE hDB, NOTEID NoteID, DWORD Reserved, NOTEHANDLE *rethNote);
+#define GETNOTES_PRESERVE_ORDER 0x00000001 /* Preserve order of notes in NoteID list */
+#define GETNOTES_SEND_OBJECTS 0x00000002 /* Send (copiable) objects along with note */
+#define GETNOTES_ORDER_BY_SIZE 0x00000004 /* Order returned notes by (approximate) ascending size */
+#define GETNOTES_CONTINUE_ON_ERROR 0x00000008 /* Continue to next on list if error encountered */
+#define GETNOTES_GET_FOLDER_ADDS 0x00000010 /* Enable folder-add callback function after the note-level callback */
+#define GETNOTES_APPLY_FOLDER_ADDS 0x00000020 /* Apply folder ops directly - don't bother using callback */
+#define GETNOTES_NO_STREAMING 0x00000040 /* Don't stream - used primarily for testing purposes */
+typedef STATUS (LNCALLBACKPTR NSFGETNOTESCALLBACK) (void *Param, DWORD TotalSizeLow, DWORD TotalSizeHigh);
+typedef STATUS (LNCALLBACKPTR NSFNOTEOPENCALLBACK) (void *Param, NOTEHANDLE hNote, DWORD NoteID, STATUS status);
+typedef STATUS (LNCALLBACKPTR NSFOBJECTALLOCCALLBACK) (void *Param, NOTEHANDLE hNote, NOTEID OldRRV, STATUS status, DWORD ObjectSize);
+typedef STATUS (LNCALLBACKPTR NSFOBJECTWRITECALLBACK) (void *Param, NOTEHANDLE hNote, NOTEID OldRRV, STATUS status, BYTE *Buffer, DWORD BufferSize);
+typedef STATUS (LNCALLBACKPTR NSFFOLDERADDCALLBACK) (void *Param, UNID *NoteUNID, HANDLE OpBlock, DWORD OpBlockSize);
+STATUS LNPUBLIC NSFDbGetNotes(DBHANDLE hDB, DWORD NumNotes, NOTEID *NoteID, DWORD *NoteOpenFlags, DWORD *SinceSeqNum,
+ DWORD ControlFlags, DBHANDLE hObjectDB, void *CallbackParam,
+ NSFGETNOTESCALLBACK GetNotesCallback,
+ NSFNOTEOPENCALLBACK NoteOpenCallback,
+ NSFOBJECTALLOCCALLBACK ObjectAllocCallback,
+ NSFOBJECTWRITECALLBACK ObjectWriteCallback,
+ TIMEDATE *FolderSinceTime,
+ NSFFOLDERADDCALLBACK FolderAddCallback);
+STATUS LNPUBLIC NSFNoteOpenByUNID(DBHANDLE hDB, UNID far *pUNID, WORD flags, NOTEHANDLE far *rethNote);
+STATUS LNPUBLIC NSFNoteUpdate (NOTEHANDLE hNote, WORD UpdateFlags);
+STATUS LNPUBLIC NSFNoteUpdateExtended (NOTEHANDLE hNote, DWORD UpdateFlags);
+STATUS LNPUBLIC NSFNoteComputeWithForm (NOTEHANDLE hNote, NOTEHANDLE hFormNote,
+ DWORD dwFlags, CWF_ERROR_PROC ErrorRoutine,
+ void far *CallersContext);
+
+STATUS LNPUBLIC NSFNoteAttachFile (NOTEHANDLE hNOTE,
+ const char far *ItemName, WORD ItemNameLength,
+ const char far *PathName,
+ const char far *OriginalPathName,
+ WORD Encoding);
+STATUS LNPUBLIC NSFNoteExtractFile (NOTEHANDLE hNote, BLOCKID bhItem,
+ const char far *FileName,
+ ENCRYPTION_KEY far *DecryptionKey);
+STATUS LNPUBLIC NSFNoteExtractFileExt (NOTEHANDLE hNote, BLOCKID bhItem,
+ const char far *FileName,
+ ENCRYPTION_KEY far *DecryptionKey,
+ WORD wFlags);
+typedef STATUS (LNCALLBACKPTR NOTEEXTRACTCALLBACK)(const BYTE *bytes, DWORD length, void far *pParam);
+STATUS LNPUBLIC NSFNoteExtractWithCallback(NOTEHANDLE hNote, BLOCKID bhItem, ENCRYPTION_KEY far *DecryptionKey,
+ WORD wFlags, NOTEEXTRACTCALLBACK pNoteExtractCallback,
+ void far *pParam);
+
+STATUS LNPUBLIC NSFNoteDetachFile (NOTEHANDLE hNote, BLOCKID bhItem);
+BOOL LNPUBLIC NSFNoteHasObjects (NOTEHANDLE hNote, BLOCKID far *bhFirstObjectItem);
+STATUS LNPUBLIC NSFNoteGetAuthor (NOTEHANDLE hNote, char far *retName, WORD far *retNameLength,
+ BOOL far *retIsItMe);
+STATUS LNPUBLIC NSFNoteCopy (NOTEHANDLE hSrcNote, NOTEHANDLE far *rethDstNote);
+STATUS LNPUBLIC NSFNoteSignExt(NOTEHANDLE hNote,
+ const char far *SignatureItemName,
+ WORD ItemCount, HANDLE hItemIDs);
+STATUS LNPUBLIC NSFNoteSign (NOTEHANDLE hNote);
+STATUS LNPUBLIC NSFComputeObjectDigest(HANDLE hNote, BLOCKID bItem);
+STATUS LNPUBLIC NSFNoteSignExt3(NOTEHANDLE hNote,
+ KFHANDLE hKFC,
+ const char far *SignatureItemName,
+ WORD ItemCount, HANDLE hItemIDs,
+ DWORD Flags, DWORD Reserved,
+ void *pReserved);
+STATUS LNPUBLIC NSFNoteInspectSignatureExt2 (NOTEHANDLE hNote,
+ KFHANDLE hKFC,
+ char far *pzSigItemName,
+ TIMEDATE far *retWhenSigned,
+ char far *retSigner, char far *retCertifier,
+ WORD *retItemCount,
+ HANDLE *rethItemIDs,
+ DWORD Reserved,
+ void *pReserved);
+
+STATUS LNPUBLIC NSFHotSpotSign(BYTE *pSource, DWORD dwSourceLength, BYTE *pObject, DWORD dwObjectLength, HANDLE *hSigData, DWORD *dwSigLength);
+STATUS LNPUBLIC NSFNoteSignHotspots(NOTEHANDLE hNote, DWORD dwFlags, BOOL *retfSigned);
+STATUS LNPUBLIC NSFNoteVerifySignature (NOTEHANDLE hNote,
+ char far *Reserved,
+ TIMEDATE far *retWhenSigned,
+ char far *retSigner, char far *retCertifier);
+STATUS LNPUBLIC NSFVerifyFileObjSignature (DBHANDLE hDB, BLOCKID bhItem);
+STATUS LNPUBLIC NSFNoteUnsign (NOTEHANDLE hNote);
+STATUS LNPUBLIC NSFNoteCopyAndEncrypt (NOTEHANDLE hSrcNote, WORD EncryptFlags, NOTEHANDLE far *rethDstNote);
+STATUS LNPUBLIC NSFNoteCopyAndEncryptExt2 (NOTEHANDLE hSrcNote, KFHANDLE hKFC, WORD EncryptFlags, NOTEHANDLE far *rethDstNote, DWORD Reserved, void *pReserved);
+STATUS LNPUBLIC NSFNoteDecrypt (NOTEHANDLE hNote, WORD DecryptFlags, ENCRYPTION_KEY far *retKeyForAttachments);
+STATUS LNPUBLIC NSFNoteDecryptExt2 (NOTEHANDLE hNote, KFHANDLE hKFC, WORD DecryptFlags, ENCRYPTION_KEY far *retKeyForAttachments, DWORD Reserved, void *pReserved);
+
+/* Profile note routines. */
+
+STATUS LNPUBLIC NSFProfileOpen(
+ DBHANDLE hDB, const char *ProfileName, WORD ProfileNameLength,
+ const char *UserName, WORD UserNameLength, BOOL CopyProfile,
+ NOTEHANDLE *rethProfileNote);
+STATUS LNPUBLIC NSFProfileDelete(
+ DBHANDLE hDB, const char *ProfileName, WORD ProfileNameLength,
+ const char *UserName, WORD UserNameLength);
+STATUS LNPUBLIC NSFProfileUpdate(
+ NOTEHANDLE hProfile,
+ const char *ProfileName, WORD ProfileNameLength,
+ const char *UserName, WORD UserNameLength);
+typedef STATUS (LNCALLBACKPTR NSFPROFILEENUMPROC)(
+ DBHANDLE hDB,
+ void far *Ctx,
+ char *ProfileName,
+ WORD ProfileNameLength,
+ char *UserName,
+ WORD UserNameLength,
+ NOTEID ProfileNoteID);
+STATUS LNPUBLIC NSFProfileEnum(
+ DBHANDLE hDB, const char *ProfileName, WORD ProfileNameLength,
+ NSFPROFILEENUMPROC Callback,
+ void *CallbackCtx, DWORD Flags);
+STATUS LNPUBLIC NSFProfileGetField(
+ DBHANDLE hDB, const char *ProfileName, WORD ProfileNameLength,
+ const char *UserName, WORD UserNameLength,
+ const char *FieldName, WORD FieldNameLength,
+ WORD *retDatatype, BLOCKID *retbhValue, DWORD *retValueLength);
+STATUS LNPUBLIC NSFProfileSetField(
+ DBHANDLE hDB, const char *ProfileName, WORD ProfileNameLength,
+ const char *UserName, WORD UserNameLength,
+ const char *FieldName, WORD FieldNameLength,
+ WORD Datatype, void *Value, DWORD ValueLength);
+
+
+BOOL LNPUBLIC NSFNoteIsSignedOrSealed (NOTEHANDLE hNote, BOOL far *retfSigned, BOOL far *retfSealed);
+STATUS LNPUBLIC NSFNoteCheck (HANDLE hNote);
+
+STATUS LNPUBLIC NSFNoteFindDivergenceTime(NOTEHANDLE hNote1, NOTEHANDLE hNote2, DWORD dwFlags, TIMEDATE *tdLastSyncTime);
+STATUS LNPUBLIC NSFNoteFindMatchingItem (NOTEHANDLE hNote1, BLOCKID bhItem1, NOTEHANDLE hNote2, DWORD dwFlags, BLOCKID *retbhItem2);
+
+
+/* External (text) link routines */
+
+#define LINKFLAG_ADD_TEMPORARY 0x00000002L
+#define LINKFLAG_NO_REPL_SEARCH 0x00000004L
+
+STATUS LNPUBLIC NSFNoteLinkFromText(HANDLE hLinkText, WORD LinkTextLength,
+ NOTELINK far *NoteLink,
+ char far *ServerHint,
+ char far *LinkText, WORD MaxLinkText,
+ DWORD far *retFlags);
+STATUS LNPUBLIC NSFNoteLinkToText(char far *Title,
+ NOTELINK far *NoteLink,
+ char far *ServerHint,
+ char far *LinkText,
+ HANDLE far *phLinkText,
+ WORD far *pLinkTextLength,
+ DWORD Flags);
+
+/* End of Note Storage File Note Definitions */
+
+STATUS LNPUBLIC NSFNoteLSCompile ( DBHANDLE hDB,
+ NOTEHANDLE hNote,
+ DWORD dwFlags );
+
+/* Extended version with callback for compile errors. Note that the callback
+ function only gets called for the first error in each LotusScript module.
+ There may be more than one module in a note. */
+
+typedef struct
+{
+ WORD Version; /* allows for future expansion - currently always 1 */
+ WORD Line; /* source line number of error, relative to LotusScript
+ module containing the error, if applicable */
+ const char* pErrText; /* error text */
+ const char* pErrFile; /* file name, if applicable */
+} LSCOMPILE_ERR_INFO;
+
+typedef STATUS (LNCALLBACKPTR LSCOMPILEERRPROC)(
+ const LSCOMPILE_ERR_INFO* pInfo, /* error info - see above */
+ void* pCtx); /* caller's pCtx argument from NSFNoteLSCompileExt */
+
+STATUS LNPUBLIC NSFNoteLSCompileExt ( DBHANDLE hDB,
+ NOTEHANDLE hNote,
+ DWORD dwFlags,
+ LSCOMPILEERRPROC pfnErrProc, /* callback function for compile errors */
+ void* pCtx ); /* caller's context argument, passed to callback */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nsfsearc.h b/plugins/LotusNotify/src/cnotesapi/include/nsfsearc.h
new file mode 100644
index 0000000000..3eb9e6afe7
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nsfsearc.h
@@ -0,0 +1,181 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+/* Note Storage File Search Package Definitions */
+
+#ifndef NSF_SEARCH_DEFS
+#define NSF_SEARCH_DEFS
+
+#ifndef NSF_DEFS
+#include "nsfdata.h"
+#endif
+
+#ifndef MISC_DEFS
+#include "misc.h"
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Search Flag Definitions */
+
+#define SEARCH_ALL_VERSIONS 0x0001 /* Include deleted and non-matching notes in search */
+ /* (ALWAYS "ON" in partial searches!) */
+#define SEARCH_SUMMARY 0x0002 /* TRUE to return summary buffer with each match */
+#define SEARCH_FILETYPE 0x0004 /* For directory mode file type filtering */
+ /* If set, "NoteClassMask" is treated */
+ /* as a FILE_xxx mask for directory filtering */
+#define SEARCH_NOTIFYDELETIONS 0x0010 /* Set NOTE_CLASS_NOTIFYDELETION bit of NoteClass for deleted notes */
+#define SEARCH_ALLPRIVS 0x0040 /* return error if we don't have full privileges */
+#define SEARCH_SESSION_USERNAME 0x0400 /* Use current session's user name, not server's */
+#define SEARCH_NOABSTRACTS 0x1000 /* Filter out "Truncated" documents */
+#define SEARCH_DATAONLY_FORMULA 0x4000 /* Search formula applies only to
+ data notes, i.e., others match */
+
+/* This descriptor is embedded in the search queue entry. Note: The
+ information returned in the "summary" field is always returned in
+ machine-independent canonical form.
+
+ Note: In DIRECTORY searches, the following information is returned
+ in the SEARCH_MATCH structure (build 86 & later only):
+
+ OriginatorID.File NSF modified time (later of data & non-data modified time)
+ OriginatorID.Note 0 (unused)
+ OriginatorID.SequenceTime NSF's Replica ID (Used by NSFMakeReplicaFormula)
+ ID.Note NSF's Replica ID
+ ID.File NSF's DBID
+*/
+
+/* SERetFlags values (bit-field) */
+
+#define SE_FNOMATCH 0x00 /* does not match formula (deleted or updated) */
+#define SE_FMATCH 0x01 /* matches formula */
+#define SE_FTRUNCATED 0x02 /* document truncated */
+#define SE_FPURGED 0x04 /* note has been purged. Returned only when SEARCH_INCLUDE_PURGED is used */
+#define SE_FNOPURGE 0x08 /* note has no purge status. Returned only when SEARCH_FULL_DATACUTOFF is used */
+#define SE_FSOFTDELETED 0x10 /* if SEARCH_NOTIFYDELETIONS: note is soft deleted; NoteClass&NOTE_CLASS_NOTIFYDELETION also on (off for hard delete) */
+
+/* If recompiling a V3 API application and you used the MatchesFormula field
+ the following code change should be made:
+
+ For V3:
+
+ 1) if (SearchMatch.MatchesFormula == SE_FMATCH)
+ 2) if (SearchMatch.MatchesFormula == SE_FNOMATCH)
+ 3) if (SearchMatch.MatchesFormula != SE_FMATCH) is equivalent to 2)
+ 4) if (SearchMatch.MatchesFormula != SE_FNOMATCH) is equivalent to 1)
+
+ For V4
+
+ 1) if (SearchMatch.SERetFlags & SE_FMATCH)
+ 2) if (!(SearchMatch.SERetFlags & SE_FMATCH))
+*/
+
+typedef struct {
+ GLOBALINSTANCEID ID; /* identity of the note within the file */
+ ORIGINATORID OriginatorID; /* identity of the note in the universe */
+ WORD NoteClass; /* class of the note */
+ BYTE SERetFlags; /* MUST check for SE_FMATCH! */
+ BYTE Privileges; /* note privileges */
+ WORD SummaryLength; /* length of the summary information */
+ /* 54 bytes to here */
+ /* now comes an ITEM_TABLE with Summary Info */
+} SEARCH_MATCH;
+
+
+/* function templates */
+
+
+typedef STATUS (LNCALLBACKPTR NSFSEARCHPROC)
+ (void far *EnumRoutineParameter,
+ SEARCH_MATCH far *SearchMatch,
+ ITEM_TABLE far *SummaryBuffer);
+
+STATUS LNPUBLIC NSFSearch (DBHANDLE hDB,
+ FORMULAHANDLE hFormula,
+ char far *ViewTitle,
+ WORD SearchFlags,
+ WORD NoteClassMask,
+ TIMEDATE far *Since,
+ NSFSEARCHPROC EnumRoutine,
+ void far *EnumRoutineParameter,
+ TIMEDATE far *retUntil);
+STATUS LNPUBLIC NSFSearchWithUserNameList (DBHANDLE hDB,
+ FORMULAHANDLE hFormula,
+ char far *ViewTitle,
+ WORD SearchFlags,
+ WORD NoteClassMask,
+ TIMEDATE far *Since,
+ NSFSEARCHPROC EnumRoutine,
+ void far *EnumRoutineParameter,
+ TIMEDATE far *retUntil,
+ HANDLE nameList);
+
+
+/* Formula compilation functions */
+
+STATUS LNPUBLIC NSFFormulaCompile (char far *FormulaName, WORD FormulaNameLength,
+ const char far *FormulaText, WORD FormulaTextLength,
+ FORMULAHANDLE far *rethFormula,
+ WORD far *retFormulaLength,
+ STATUS far *retCompileError,
+ WORD far *retCompileErrorLine,
+ WORD far *retCompileErrorColumn,
+ WORD far *retCompileErrorOffset,
+ WORD far *retCompileErrorLength);
+STATUS LNPUBLIC NSFFormulaDecompile(char far *pFormulaBuffer,
+ BOOL fSelectionFormula,
+ HANDLE far *rethFormulaText,
+ WORD far *retFormulaTextLength);
+STATUS LNPUBLIC NSFFormulaMerge(FORMULAHANDLE hSrcFormula, FORMULAHANDLE hDestFormula);
+STATUS LNPUBLIC NSFFormulaSummaryItem(FORMULAHANDLE hFormula, const char far *ItemName, WORD ItemNameLength);
+STATUS LNPUBLIC NSFFormulaGetSize(FORMULAHANDLE hFormula, WORD far *retFormulaLength);
+
+/* Formula computation (evaluation) functions */
+
+STATUS LNPUBLIC NSFComputeStart(WORD Flags,
+ void far *pCompiledFormula,
+ HCOMPUTE far *rethCompute);
+
+STATUS LNPUBLIC NSFComputeStop(HCOMPUTE hCompute);
+STATUS LNPUBLIC NSFComputeEvaluate(HCOMPUTE hCompute,
+ NOTEHANDLE hNote,
+ HANDLE far *rethResult,
+ WORD far *retResultLength,
+ BOOL far *retNoteMatchesFormula,
+ BOOL far *retNoteShouldBeDeleted,
+ BOOL far *retNoteModified);
+
+/* End of Note Storage File Search Package Definitions */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/nsfstr.h b/plugins/LotusNotify/src/cnotesapi/include/nsfstr.h
new file mode 100644
index 0000000000..7cd5ac294e
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/nsfstr.h
@@ -0,0 +1,257 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef NSF_STR_DEFS
+#define NSF_STR_DEFS
+
+#ifndef NSF_ERR_DEFS
+#include "nsferr.h"
+#endif
+
+/* errorContext strings for error logging 0 - 255 */
+#define CONTEXT_DB2NSF_INIT PKG_NSF_STR+1
+ stringtext(CONTEXT_DB2NSF_INIT, "Failed during DB2NSF initialization.")
+#define CONTEXT_DB2DROPDB2 PKG_NSF_STR+3
+ stringtext(CONTEXT_DB2DROPDB2, "Failed dropping DB2 Database.")
+#define CONTEXT_DB2CREATE_SERV_TAB PKG_NSF_STR+4
+ stringtext(CONTEXT_DB2CREATE_SERV_TAB, "Failed creating DB2 server table.")
+#define CONTEXT_DB2DROP_SERV_TAB PKG_NSF_STR+5
+ stringtext(CONTEXT_DB2DROP_SERV_TAB, "Failed dropping DB2 server table.")
+#define CONTEXT_DB2CREATE_FILE_TAB PKG_NSF_STR+6
+ stringtext(CONTEXT_DB2CREATE_FILE_TAB, "Failed creating DB2 file table.")
+#define CONTEXT_DB2DROP_FILE_TAB PKG_NSF_STR+7
+ stringtext(CONTEXT_DB2DROP_FILE_TAB, "Failed dropping DB2 file table.")
+#define CONTEXT_DB2WRITE_OBJ_HEADER PKG_NSF_STR+8
+ stringtext(CONTEXT_DB2WRITE_OBJ_HEADER, "Failed writing DB2 object header.")
+#define CONTEXT_DB2READ_OBJ_HEADER PKG_NSF_STR+9
+ stringtext(CONTEXT_DB2READ_OBJ_HEADER, "Failed reading DB2 object header.")
+#define CONTEXT_DB2MODIFY_OBJ_HEADER PKG_NSF_STR+10
+ stringtext(CONTEXT_DB2MODIFY_OBJ_HEADER, "Failed modifying DB2 object header.")
+#define CONTEXT_DB2WRITE_OBJ PKG_NSF_STR+11
+ stringtext(CONTEXT_DB2WRITE_OBJ, "Failed writing DB2 object.")
+#define CONTEXT_DB2CLEAR_OBJ PKG_NSF_STR+12
+ stringtext(CONTEXT_DB2CLEAR_OBJ, "Failed clearing DB2 object.")
+#define CONTEXT_DB2READ_OBJ PKG_NSF_STR+13
+ stringtext(CONTEXT_DB2READ_OBJ, "Failed reading DB2 object.")
+#define CONTEXT_DB2DELETE_OBJ PKG_NSF_STR+14
+ stringtext(CONTEXT_DB2DELETE_OBJ, "Failed deleting DB2 object.")
+#define CONTEXT_DB2MODIFY_RRV PKG_NSF_STR+15
+ stringtext(CONTEXT_DB2MODIFY_RRV, "Failed modifying the RRV (record relocation vector).")
+#define CONTEXT_DB2WRITE_OBJ_INFO PKG_NSF_STR+16
+ stringtext(CONTEXT_DB2WRITE_OBJ_INFO, "Failed writing DB2 object info.")
+#define CONTEXT_DB2I_U_NOBJ PKG_NSF_STR+17
+ stringtext(CONTEXT_DB2I_U_NOBJ, "Failed inserting or updating DB2 named object.")
+#define CONTEXT_DB2DEL_NOBJ PKG_NSF_STR+18
+ stringtext(CONTEXT_DB2DEL_NOBJ, "Failed deleting DB2 named object.")
+#define CONTEXT_DB2READ_NOBJ PKG_NSF_STR+19
+ stringtext(CONTEXT_DB2READ_NOBJ, "Failed reading DB2 named object.")
+#define CONTEXT_DB2ENUM_NOBJ PKG_NSF_STR+20
+ stringtext(CONTEXT_DB2ENUM_NOBJ, "Failed enumerating DB2 named object.")
+#define CONTEXT_DB2RECOVER_FHEADER PKG_NSF_STR+21
+ stringtext(CONTEXT_DB2RECOVER_FHEADER, "Failed when DB2 was recovering the file header.")
+#define CONTEXT_DB2WRITE_FILE_HEADER PKG_NSF_STR+22
+ stringtext(CONTEXT_DB2WRITE_FILE_HEADER, "Failed writing DB2 file header.")
+#define CONTEXT_DB2CREATE_FILE_HEADER PKG_NSF_STR+23
+ stringtext(CONTEXT_DB2CREATE_FILE_HEADER, "Failed creating DB2 file header.")
+#define CONTEXT_DB2DELETE_CATALOG_ENT PKG_NSF_STR+24
+ stringtext(CONTEXT_DB2DELETE_CATALOG_ENT, "Failed deleting DB2 catalog entry.")
+#define CONTEXT_DB2READ_UNK PKG_NSF_STR+25
+ stringtext(CONTEXT_DB2READ_UNK, "Failed when DB2 was reading UNK table.")
+#define CONTEXT_DB2WRITE_UNK PKG_NSF_STR+26
+ stringtext(CONTEXT_DB2WRITE_UNK, "Failed when DB2 was writing UNK table.")
+#define CONTEXT_DB2REFRESH_DIR PKG_NSF_STR+27
+ stringtext(CONTEXT_DB2REFRESH_DIR, "Failed when DB2 was refreshing directory.")
+#define CONTEXT_DB2CONNPOOL_INIT PKG_NSF_STR+28
+ stringtext(CONTEXT_DB2CONNPOOL_INIT, "Failed when DB2 was initializing the connection pool.")
+#define CONTEXT_DB2CP_CREATE_ENT PKG_NSF_STR+29
+ stringtext(CONTEXT_DB2CP_CREATE_ENT, "Failed when DB2 was creating an entry in the connection pool.")
+#define CONTEXT_DB2CP_FREE_ENT PKG_NSF_STR+30
+ stringtext(CONTEXT_DB2CP_FREE_ENT, "Failed when DB2 was freeing an entry in the connection pool.")
+#define CONTEXT_DB2GET_NSF_SCH PKG_NSF_STR+31
+ stringtext(CONTEXT_DB2GET_NSF_SCH, "Failed when DB2 was getting NSF Schema.")
+#define CONTEXT_DB2GET_NSF_TBS PKG_NSF_STR+32
+ stringtext(CONTEXT_DB2GET_NSF_TBS, "Failed when DB2 was getting NSF TableSpace.")
+#define CONTEXT_DB2TERM_SHR_CONN PKG_NSF_STR+33
+ stringtext(CONTEXT_DB2TERM_SHR_CONN, "Failed when DB2 was terminating shared connections.")
+#define CONTEXT_DB2INIT_SHR_CONN PKG_NSF_STR+34
+ stringtext(CONTEXT_DB2INIT_SHR_CONN, "Failed when DB2 was initializing shared connections.")
+#define CONTEXT_DB2EXIST_NSF PKG_NSF_STR+35
+ stringtext(CONTEXT_DB2EXIST_NSF, "Failed when DB2 was checking the existence of NSF.")
+#define CONTEXT_DB2EXIST_NSFIDENT PKG_NSF_STR+36
+ stringtext(CONTEXT_DB2EXIST_NSFIDENT, "Failed when DB2 checked for NSF identifier.")
+#define CONTEXT_DB2SET_ISOLATION PKG_NSF_STR+37
+ stringtext(CONTEXT_DB2SET_ISOLATION, "Failed when setting DB2 isolation level.")
+#define CONTEXT_DB2ALLOC_SESSION PKG_NSF_STR+38
+ stringtext(CONTEXT_DB2ALLOC_SESSION, "Failed when DB2 was allocating the session.")
+#define CONTEXT_DB2CREATE_SAVEPT PKG_NSF_STR+39
+ stringtext(CONTEXT_DB2CREATE_SAVEPT, "Failed when DB2 was creating save points.")
+#define CONTEXT_DB2ROLLB_SAVEPT PKG_NSF_STR+40
+ stringtext(CONTEXT_DB2ROLLB_SAVEPT, "Failed when DB2 was rolling back save points.")
+#define CONTEXT_DB2RELEASE_SAVEPT PKG_NSF_STR+41
+ stringtext(CONTEXT_DB2RELEASE_SAVEPT, "Failed when DB2 was releasing save points.")
+#define CONTEXT_DB2GET_HSTMT PKG_NSF_STR+42
+ stringtext(CONTEXT_DB2GET_HSTMT, "Failed when DB2 was getting statement handle.")
+#define CONTEXT_DB2UPD_FILE_PATH PKG_NSF_STR+43
+ stringtext(CONTEXT_DB2UPD_FILE_PATH, "Failed when DB2 was updating file paths.")
+#define CONTEXT_DB2EXEC_NIFCONNECT PKG_NSF_STR+44
+ stringtext(CONTEXT_DB2EXEC_NIFCONNECT, "Failed when DB2 was executing NIFConnect.")
+#define CONTEXT_DB2GET_PROP PKG_NSF_STR+45
+ stringtext(CONTEXT_DB2GET_PROP, "Failed when DB2 was getting properties.")
+#define CONTEXT_DB2SET_PROP_SRCTARG PKG_NSF_STR+46
+ stringtext(CONTEXT_DB2SET_PROP_SRCTARG, "Failed when DB2 was setting properties.")
+#define CONTEXT_DB2GET_PROP_BLOB PKG_NSF_STR+47
+ stringtext(CONTEXT_DB2GET_PROP_BLOB, "Failed when DB2 was getting blobs.")
+#define CONTEXT_DB2CLOSE_CURSOR PKG_NSF_STR+48
+ stringtext(CONTEXT_DB2CLOSE_CURSOR, "Failed when DB2 was closing cursor.")
+#define CONTEXT_DB2READ_NOTE PKG_NSF_STR+49
+ stringtext(CONTEXT_DB2READ_NOTE, "Failed when DB2 was reading a note.")
+#define CONTEXT_DB2WRITE_RNOTE PKG_NSF_STR+50
+ stringtext(CONTEXT_DB2WRITE_RNOTE, "Failed when DB2 was writing a row in a note.")
+#define CONTEXT_DB2DELETE_RNOTE PKG_NSF_STR+51
+ stringtext(CONTEXT_DB2DELETE_RNOTE, "Failed when DB2 was deleting a row in a note.")
+#define CONTEXT_DB2SEL_NSUMMARY PKG_NSF_STR+52
+ stringtext(CONTEXT_DB2SEL_NSUMMARY, "Failed when DB2 was selecting note summary set from ID table.")
+#define CONTEXT_DB2SEL_NSUMMARY_SET PKG_NSF_STR+53
+ stringtext(CONTEXT_DB2SEL_NSUMMARY_SET, "Failed when DB2 was selecting note summary set.")
+#define CONTEXT_DB2SEL_NOTE PKG_NSF_STR+54
+ stringtext(CONTEXT_DB2SEL_NOTE, "Failed when DB2 was selecting a note.")
+#define CONTEXT_DB2GET_NOTE_SROW PKG_NSF_STR+55
+ stringtext(CONTEXT_DB2GET_NOTE_SROW, "Failed when DB2 was fetching a note summary row.")
+#define CONTEXT_DB2GET_NOTE PKG_NSF_STR+56
+ stringtext(CONTEXT_DB2GET_NOTE, "Failed when DB2 was fetching a note.")
+#define CONTEXT_DB2UNID_FINDE PKG_NSF_STR+57
+ stringtext(CONTEXT_DB2UNID_FINDE, "Failed when DB2 was looking for UNID entry.")
+#define CONTEXT_DB2_FINDE_BYNID PKG_NSF_STR+58
+ stringtext(CONTEXT_DB2_FINDE_BYNID, "Failed when DB2 was looking for an entry by note id.")
+#define MSG_DB2NSF_SCHEMA_UPGRADING PKG_NSF_STR+59
+ stringtext(MSG_DB2NSF_SCHEMA_UPGRADING,"Upgrading schema for DB2NSF %s. This may take several minutes." )
+#define CONTEXT_DB2DELETE_QUEUE_ENT PKG_NSF_STR+60
+ stringtext(CONTEXT_DB2DELETE_QUEUE_ENT, "Failed deleting DB2 queue entry.")
+#define CONTEXT_DB2RELOCATE_TS PKG_NSF_STR+61
+ stringtext(CONTEXT_DB2RELOCATE_TS, "Failed to Relocate tablespace container.")
+#define ERR_DB2NSF_QUIESCED PKG_NSF_STR+62
+ stringtext(ERR_DB2NSF_QUIESCED, "Unable to Connect to quiesced database.")
+#define CONTEXT_DB2COLLECT_COLINFO PKG_NSF_STR+63
+ stringtext(CONTEXT_DB2COLLECT_COLINFO, "Failed when DB2 was collecting column info.")
+#define CONTEXT_DB2PAIFIND_ENTRY PKG_NSF_STR+64
+ stringtext(CONTEXT_DB2PAIFIND_ENTRY, "Failed when DB2 was finding a named object entry.")
+#define CONTEXT_DB2PAIFIND_COUNT PKG_NSF_STR+65
+ stringtext(CONTEXT_DB2PAIFIND_COUNT, "Failed when DB2 was finding the count of named object entries.")
+#define CONTEXT_DB2PAI_INS_UPD PKG_NSF_STR+66
+ stringtext(CONTEXT_DB2PAI_INS_UPD, "Failed when DB2 was inserting/updating a named object entry.")
+#define CONTEXT_DB2PAI_DELETE PKG_NSF_STR+67
+ stringtext(CONTEXT_DB2PAI_DELETE, "Failed when DB2 was deleting a named object entry.")
+#define CONTEXT_DB2CREATE_TAB PKG_NSF_STR+68
+ stringtext(CONTEXT_DB2CREATE_TAB, "Failed when creating DB2 table.")
+#define CONTEXT_DB2CREATE_VIEW PKG_NSF_STR+69
+ stringtext(CONTEXT_DB2CREATE_VIEW, "Failed when creating DB2 view.")
+#define CONTEXT_DB2CREATE_DEL PKG_NSF_STR+70
+ stringtext(CONTEXT_DB2CREATE_DEL, "Failed when creating DB2 delete.")
+#define CONTEXT_DB2CREATE_DELTRIG PKG_NSF_STR+71
+ stringtext(CONTEXT_DB2CREATE_DELTRIG, "Failed when creating DB2 delete trigger.")
+#define CONTEXT_DB2CREATE_INS PKG_NSF_STR+72
+ stringtext(CONTEXT_DB2CREATE_INS, "Failed when creating DB2 insert.")
+#define CONTEXT_DB2CREATE_INSTRIG PKG_NSF_STR+73
+ stringtext(CONTEXT_DB2CREATE_INSTRIG, "Failed when creating DB2 insert trigger.")
+#define CONTEXT_DB2CREATE_UPD PKG_NSF_STR+74
+ stringtext(CONTEXT_DB2CREATE_UPD, "Failed when creating DB2 update.")
+#define CONTEXT_DB2CREATE_UPDTRIG PKG_NSF_STR+75
+ stringtext(CONTEXT_DB2CREATE_UPDTRIG, "Failed when creating DB2 update trigger.")
+#define CONTEXT_DB2LOAD_ACC_DEF PKG_NSF_STR+76
+ stringtext(CONTEXT_DB2LOAD_ACC_DEF, "Failed when loading the access definition.")
+#define CONTEXT_DB2CREATE_EXPTAB PKG_NSF_STR+77
+ stringtext(CONTEXT_DB2CREATE_EXPTAB, "Failed when creating DB2 export table.")
+#define CONTEXT_DB2INS_MAPENT PKG_NSF_STR+78
+ stringtext(CONTEXT_DB2INS_MAPENT, "Failed when inserting DB2 map entry.")
+#define CONTEXT_DB2DROP_EXPTAB PKG_NSF_STR+79
+ stringtext(CONTEXT_DB2DROP_EXPTAB, "Failed when dropping DB2 export table.")
+#define CONTEXT_DB2DROP_EXPENT PKG_NSF_STR+80
+ stringtext(CONTEXT_DB2DROP_EXPENT, "Failed when dropping DB2 exported entity.")
+#define CONTEXT_DB2LOAD_ACCTAB PKG_NSF_STR+81
+ stringtext(CONTEXT_DB2LOAD_ACCTAB, "Failed when loading the access definition records in the table.")
+#define CONTEXT_DB2INS_ACCTAB PKG_NSF_STR+82
+ stringtext(CONTEXT_DB2INS_ACCTAB, "Failed when inserting in the access table.")
+#define CONTEXT_DB2INS_ACCTAB_ROW PKG_NSF_STR+83
+ stringtext(CONTEXT_DB2INS_ACCTAB_ROW, "Failed when inserting an access table row.")
+#define CONTEXT_DB2UPD_ACCTAB PKG_NSF_STR+84
+ stringtext(CONTEXT_DB2UPD_ACCTAB, "Failed when updating the access table.")
+#define CONTEXT_DB2DEL_FROM_ACCTAB PKG_NSF_STR+85
+ stringtext(CONTEXT_DB2DEL_FROM_ACCTAB, "Failed when deleting from access table.")
+#define CONTEXT_DB2LOAD_SB_PROP PKG_NSF_STR+86
+ stringtext(CONTEXT_DB2LOAD_SB_PROP, "Failed loading super block property.")
+#define CONTEXT_DB2WRITE_SB_PROP PKG_NSF_STR+87
+ stringtext(CONTEXT_DB2WRITE_SB_PROP, "Failed writing super block property.")
+#define CONTEXT_DB2TERM_SCONN PKG_NSF_STR+88
+ stringtext(CONTEXT_DB2TERM_SCONN, "Failed terminating shared connections.")
+#define CONTEXT_DB2FREE_NSUMSET PKG_NSF_STR+89
+ stringtext(CONTEXT_DB2FREE_NSUMSET, "Failed when DB2 was freeing note summary set.")
+/* AVAILABLE */
+#define CONTEXT_DB2READ_FILE_HEADER PKG_NSF_STR+93
+ stringtext(CONTEXT_DB2READ_FILE_HEADER, "Failed reading DB2 file header.")
+#define CONTEXT_DB2FREE_HSTMT PKG_NSF_STR+94
+ stringtext(CONTEXT_DB2FREE_HSTMT, "Failed when DB2 was freeing statement handle.")
+#define CONTEXT_DB2_ENABLE_UDF PKG_NSF_STR+95
+ stringtext(CONTEXT_DB2_ENABLE_UDF, "Failed to enable user defined functions.")
+#define CONTEXT_DB2_ADMIN_UDF PKG_NSF_STR+96
+ stringtext(CONTEXT_DB2_ADMIN_UDF, "Failed while administering DB2 Access DLL.")
+#define CONTEXT_DB2GRPSEM PKG_NSF_STR+97
+ stringtext(CONTEXT_DB2GRPSEM, "Error encountered in group semaphore management." )
+#define CONTEXT_DB2_QUERY_VIEWS PKG_NSF_STR+98
+ stringtext(CONTEXT_DB2_QUERY_VIEWS, "Error encountered in DB2 Query Views" )
+#define CONTEXT_DB2RECOVER_SOFT_DEL_LIST PKG_NSF_STR+99
+ stringtext(CONTEXT_DB2RECOVER_SOFT_DEL_LIST, "Failed recovering DB2 soft deleted note list.")
+#define CONTEXT_DB2CATALOG PKG_NSF_STR+100
+ stringtext(CONTEXT_DB2CATALOG, "Error creating DB2 catalog entry" )
+#define MSG_DB2NSF_CATALOG_UPGRADED PKG_NSF_STR+101
+ stringtext(MSG_DB2NSF_CATALOG_UPGRADED,"Successfully upgraded schema %s from Version %s to Version %s." )
+#define CONTEXT_TABLE_SCHEMA_UPGRADE PKG_NSF_STR+102
+ stringtext(CONTEXT_TABLE_SCHEMA_UPGRADE, "Error upgrading table schema: " )
+#define MSG_DB2NSF_SCHEMA_UPGRADED PKG_NSF_STR+103
+ stringtext(MSG_DB2NSF_SCHEMA_UPGRADED,"Successfully upgraded tables for schema %s from Version %s to Version %s." )
+#define CONTEXT_DB2EXTEND_TS PKG_NSF_STR+104
+ stringtext(CONTEXT_DB2EXTEND_TS, "Failed to extend tablespace." )
+#define CONTEXT_DB2GET_NSF_SIZE PKG_NSF_STR+105
+ stringtext(CONTEXT_DB2GET_NSF_SIZE, "Failed calculating DB2 NSF size.")
+
+#define MSG_DB2_DEFAULT_BANNER PKG_NSF_STR+106
+ stringtext(MSG_DB2_DEFAULT_BANNER, "%n--default----------------%n")
+#define MSG_DB2_HANDLELOCATIONPRINT_TAG PKG_NSF_STR+107
+ stringtext(MSG_DB2_HANDLELOCATIONPRINT_TAG, " cliRC= %d, line=%d, file=%s%n")
+#define MSG_DB2_HANDLEDIAGNOSTICPRINT_TAG PKG_NSF_STR+108
+ stringtext(MSG_DB2_HANDLEDIAGNOSTICPRINT_TAG,"%n%5d SQLSTATE= %s, Native Error Code= %ld, message:")
+#define MSG_DB2_DB2READNOTE1 PKG_NSF_STR+109
+ stringtext(MSG_DB2_DB2READNOTE1, "Error reading note (NoteID: NT%08lx) (Schema: %s)%n")
+#define MSG_DB2_DB2WRITENOTE1 PKG_NSF_STR+110
+ stringtext(MSG_DB2_DB2WRITENOTE1, "Error writing note (NoteID: NT%08lx)(schema: %s)%n")
+#define MSG_DB2_DB2DELETENOTE1 PKG_NSF_STR+111
+ stringtext(MSG_DB2_DB2DELETENOTE1, "Error deleting note (NoteID: NT%08lx)%n")
+
+/* there may be some available PKG_NSF_STR offsets above... */
+
+/* this is the *current* max; PKG_NSF_STR has an offset range of 0 - 127 */
+#define STR_NSF_STR_MAX PKG_NSF_STR+112
+ stringtext(STR_NSF_STR_MAX, "This is the last error message in the NSF_STR range")
+
+#endif /*NSF_STR_DEFS*/
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/osenv.h b/plugins/LotusNotify/src/cnotesapi/include/osenv.h
new file mode 100644
index 0000000000..b83f61ef35
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/osenv.h
@@ -0,0 +1,76 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1991, 2004 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef ENV_DEFS
+#define ENV_DEFS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Size of the buffer used to hold the environment variable values (i.e., it
+ excludes the variable name) but including the trailing null terminator.
+
+ NOTE: The largest known example of an environment variable value is a
+ max'ed out COMx=... (the modem init strings can be large, and
+ there's plenty of them).
+*/
+#define MAXENVVALUE 256
+
+/* Used to preface ini variables that are different between OSs which may */
+/* share the same INI file. */
+
+#if defined(PM)
+#define OS_PREFIX "PM"
+#elif defined(W)
+#define OS_PREFIX "WIN"
+#else
+#define OS_PREFIX "" /* Only necessary to distinguish */
+ /* between entries used in a multi */
+ /* OS environment with a single NOTES.INI */
+#endif
+/* Environment variable package */
+#define NATIVE "Native"
+/* System temp directory constants */
+#define TEMP_DIR_PREFIX "notes"
+#define TEMP_DIR_SUFFIX_LEN 6 /* If changing, must change TEMP_DIR_SUFFIX_FORMATSPEC to match */
+#define TEMP_DIR_SUFFIX_FORMATSPEC "%06x"
+#define TEMP_DIR_DEFAULT_SUFFIX "G00000"
+#define TEMP_DIR_SUFFIX_MAX_VALUE 0x00FFFFFF
+
+BOOL LNPUBLIC OSGetEnvironmentString (const char far *VariableName, char far *retValueBuffer, WORD BufferLength);
+long LNPUBLIC OSGetEnvironmentLong (const char far *VariableName);
+#define OSGetEnvironmentInt(s) ((int) OSGetEnvironmentLong(s))
+
+void LNPUBLIC OSSetEnvironmentVariable (const char far *VariableName, const char far *Value);
+void LNPUBLIC OSSetEnvironmentInt (const char far *VariableName, int Value);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
+
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/osmisc.h b/plugins/LotusNotify/src/cnotesapi/include/osmisc.h
new file mode 100644
index 0000000000..9f3de25417
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/osmisc.h
@@ -0,0 +1,109 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+
+#ifndef OSMISC_DEFS
+#define OSMISC_DEFS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifndef NLS_H
+#include "nls.h" /* Need NLS_PINFO */
+#endif
+
+/* String resource loading routine */
+
+WORD LNPUBLIC OSLoadString (HMODULE hModule, STATUS StringCode, char far *retBuffer, WORD BufferLength);
+/* Charsets used with OSTranslate */
+
+#define OS_TRANSLATE_NATIVE_TO_LMBCS 0 /* Translate platform-specific to LMBCS */
+#define OS_TRANSLATE_LMBCS_TO_NATIVE 1 /* Translate LMBCS to platform-specific */
+#define OS_TRANSLATE_LOWER_TO_UPPER 3 /* current int'l case table */
+#define OS_TRANSLATE_UPPER_TO_LOWER 4 /* current int'l case table */
+#define OS_TRANSLATE_UNACCENT 5 /* int'l unaccenting table */
+
+#ifdef DOS
+#define OS_TRANSLATE_OSNATIVE_TO_LMBCS 7 /* Used in DOS (codepage) */
+#define OS_TRANSLATE_LMBCS_TO_OSNATIVE 8 /* Used in DOS */
+#elif defined (OS2)
+#define OS_TRANSLATE_OSNATIVE_TO_LMBCS OS_TRANSLATE_NATIVE_TO_LMBCS
+#define OS_TRANSLATE_LMBCS_TO_OSNATIVE OS_TRANSLATE_LMBCS_TO_NATIVE
+#else
+#define OS_TRANSLATE_OSNATIVE_TO_LMBCS OS_TRANSLATE_NATIVE_TO_LMBCS
+#define OS_TRANSLATE_LMBCS_TO_OSNATIVE OS_TRANSLATE_LMBCS_TO_NATIVE
+#endif
+
+#if defined(DOS) || defined(OS2)
+#define OS_TRANSLATE_LMBCS_TO_ASCII 13
+#else
+#define OS_TRANSLATE_LMBCS_TO_ASCII 11
+#endif
+
+#define OS_TRANSLATE_LMBCS_TO_UNICODE 20
+#define OS_TRANSLATE_LMBCS_TO_UTF8 22
+#define OS_TRANSLATE_UNICODE_TO_LMBCS 23
+#define OS_TRANSLATE_UTF8_TO_LMBCS 24
+
+
+/* Character Set Translation Routines */
+
+WORD LNPUBLIC OSTranslate(WORD TranslateMode, const char far *In, WORD InLength, char far *Out, WORD OutLength);
+
+/* Dynamic link library portable load routines */
+
+STATUS LNPUBLIC OSLoadLibrary (const char far *LibraryName, DWORD Flags, HMODULE far *rethModule, void far *retEntryPoint);
+void LNPUBLIC OSFreeLibrary (HMODULE);
+#define OS_LOADPROG_ICONIC 0x0001 /* Don't show application window */
+#define OS_LOADPROG_BACKGROUND 0x0002 /* Don't bring to the foreground */
+#define OS_LOADPROG_DEBUG 0x0004 /* Start with QNC */
+#define OS_LOADPROG_DETACHED 0x0008 /* Don't wait around for this process to exit */
+#define OS_LOADPROG_ASSOCIATE 0x0010 /* Look for a file type association */
+#define OS_LOADPROG_PRIORITY_LOW 0x0020 /* Start process with a lower priority */
+#define OS_LOADPROG_SHELL_SCRIPT_USE_EXECVP 0x0040 /* Flag to signal a shell script, so we can use execvp instead of execv. Currently on use only on AIX */
+#define OS_LOADPROG_OPEN_WITH 0x0080 /* Flag to add the necessary things to do an open with command. Currently on use only on NT */
+
+
+STATUS LNPUBLIC OSLoadProgram (char far *filename, char far *WorkingDir, char far *Arguments, WORD Flags);
+
+/* Routine used in non-premptive platforms to simulate it. */
+
+#ifdef PREEMPTIVE
+#define OSPreemptOccasionally()
+#else
+void LNPUBLIC OSPreemptOccasionally (void);
+#endif
+/* Notes-specific NLS definitions */
+
+NLS_PINFO LNPUBLIC OSGetLMBCSCLS(void);
+NLS_PINFO LNPUBLIC OSGetNativeCLS(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/pool.h b/plugins/LotusNotify/src/cnotesapi/include/pool.h
new file mode 100644
index 0000000000..939017af31
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/pool.h
@@ -0,0 +1,88 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef POOL_DEFS
+#define POOL_DEFS
+
+
+/* A datatype which identifies a block within a segment */
+
+typedef DWORD DBLOCK; /* dpool block handle */
+
+#define NULLBLOCK (BLOCK) 0
+#define NULLDBLOCK (DBLOCK) 0
+
+
+/* A structure containing a pool handle and block offset */
+
+typedef struct /* Pointer to any block in any pool */
+ {
+ HANDLE pool; /* pool handle */
+ BLOCK block; /* block handle */
+ } BLOCKID;
+
+typedef struct /* Pointer to any block in any pool */
+ {
+ HANDLE pool; /* pool handle */
+ DBLOCK block; /* block handle */
+ } DBLOCKID;
+
+#define ISNULLBLOCKID(x) (((x).pool==NULLHANDLE)&&((x).block==NULLBLOCK))
+
+/* Macro functions */
+
+
+#define OSLockBlock(type,blockid) \
+ ((type far *)(OSLock(char,(blockid).pool) + (blockid).block))
+
+#define OSUnlockBlock(blockid) \
+ OSUnlockObject((blockid).pool)
+
+#define OSSwitchBlock(ptr,thisid,nextid) \
+ { \
+ if ((thisid).pool != (nextid).pool) \
+ { \
+ if ((thisid).pool != NULLHANDLE) \
+ OSUnlockBlock((thisid)); \
+ ptr = OSLockBlock(void,(nextid)); \
+ } \
+ else \
+ { \
+ register char **pptr = (char **) &(ptr); \
+ *pptr = *pptr + (LONG)((nextid).block - (thisid).block); \
+ } \
+ (thisid) = (nextid); \
+ }
+
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/cnotesapi/include/stdnames.h b/plugins/LotusNotify/src/cnotesapi/include/stdnames.h
new file mode 100644
index 0000000000..27891698b7
--- /dev/null
+++ b/plugins/LotusNotify/src/cnotesapi/include/stdnames.h
@@ -0,0 +1,6175 @@
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(P128)
+#endif
+
+/*********************************************************************/
+/* */
+/* Licensed Materials - Property of IBM */
+/* */
+/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
+/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
+/* */
+/* US Government Users Restricted Rights - Use, duplication or */
+/* disclosure restricted by GSA ADP Schedule Contract with */
+/* IBM Corp. */
+/* */
+/*********************************************************************/
+
+
+#ifndef STD_NAME_DEFS
+#define STD_NAME_DEFS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Standard NSF Field Name/Value Definitions for the Notes product */
+
+/* Very global field names */
+
+#define FIELD_TITLE "$TITLE"
+#define FIELD_FORM "Form"
+#define FIELD_TYPE_TYPE "Type"
+#define FIELD_LINK "$REF"
+#define FIELD_UPDATED_BY "$UpdatedBy"
+#define FIELD_NAMELIST "$NameList"
+#define FIELD_NAMED "$Name"
+#define FIELD_URL "URL" /* used when copying link to clipboard */
+#define FIELD_UNAME "$UName" /* Universal UNID/Name */
+#define FIELD_CREATED "$Created" /* Created date, if specified overrides UNID created date for @Created */
+#define FIELD_NAVIGATE_URL "$NavigateToURL"/* used to pass a URL to an embedded web browser control */
+#define FIELD_RELOAD_REFRESH "$ReloadRefresh"/* used to pass reload/refresh info to embedded web browser control */
+#define DESIGN_CLASS "$Class"
+#define DESIGN_MODIFIED "$Modified"
+#define DESIGN_COMMENT FILTER_COMMENT_ITEM
+#define DESIGN_READERS "$Readers" /* Text list of users allowed to read note */
+#define FIELD_ANONYMOUS "$Anonymous" /* Indicates an anonymous document. */
+#define DESIGN_UPDATERS "$Updaters" /* Text list of users allowed to update the folder note */
+#define FIELD_NOPURGE "$NoPurge" /* Note should never be purged. */
+#define DESIGN_RETAIN_FIELDS "$RetainFields" /* Text list of fields to retain in a
+ design refresh */
+#define FIELD_ORIG_SIZE "$OrigSize" /* Size of entire note. Set for
+ abstracted note to give user
+ info on whether they want to
+ download the whole message or
+ not. */
+#define FIELD_LANGUAGE "$LANGUAGE" /* Used to specify the language of the note */
+#define FIELD_VIEWLOCALE "$VIEWCOLLATION"
+#define FIELD_BASE_TEMPLATE_VERSION "$TemplateBuild"
+#define FIELD_BASE_TEMPLATE_NAME "$TemplateBuildName"
+#define FIELD_BASE_TEMPLATE_DATE "$TemplateBuildDate"
+#define FIELD_NO_SOFT_DELETE "$NoSoftDelete" /* Override soft delete on a per-note basis */
+#define FIELD_HIDEINFO "$HideInfo" /* If present in design element, its design is hidden and this item contains the mod time before hiding. */
+
+/* Public Access definitions */
+#define FIELD_PUBLICROLE "$P" /* Reader List role name for public users */
+#define FIELD_PUBLICACCESS "$PublicAccess" /* Note has public access if ACL_FLAG_PUBLICREADER is set. */
+#define FORM_FIELD_PUBLICACCESS "$FormPublicAccess" /* Form Note has public access if ACL_FLAG_PUBLICREADER is set. */
+#define FIELD_PUBLICACCESS_ENABLED '1'
+
+#define FIELD_LOGVIEWUPDATES "$LogViewUpdates" /* NIF will log all incremental view updates */
+#define FIELD_LOGVIEWUPDATES_ENABLED '1'
+
+/* Pseudo item names (don't exist in Notes) recognized by NAMELookup */
+
+#define ITEM_NOTEID "$$NoteID" /* a NAMELookup item to be returned */
+#define ITEM_DBNAME "$$DBName" /* address book this entry was found in */
+#define ITEM_DBINDEX "$$DBIndex" /* 1-based db index upon primary NAB and ABs listed in MAB */
+#define ITEM_MODIFIEDTIME "$$ModifiedTime" /* TIMEDATE this entry was last modified */
+#define ITEM_DOMAINTYPE "$$DomainType" /* either NOTES or LDAP */
+#define ITEM_UNID "$$UNID" /* a NAMELookup item to be returned */
+#define ITEM_READERLIST "$$Readers" /* Return the readers list */
+#define ITEM_NOTESDN "$$NotesDN" /* A notes style distinquished name,
+ only returned from LDAP address books */
+#define ITEM_ORIGINAL_LDAP_DN "$$OriginalLDAPDN" /* Original LDAP DN (non-normalized) */
+
+#define ITEM_LTPAUSERNAME "$$LTPAUsername" /* The name that should be used (in preference
+ to the DN) to build an LTPA token for
+ single sign on support. */
+
+
+
+
+/* field definitions for Data Connection Resources */
+
+#define FIELD_DCR_CLASS "$DCRClass" /* e.g. RDBMS, ERP */
+#define FIELD_DCR_GEN_PROPS "$DCRGenProps" /* generic connector properties */
+#define FIELD_DCR_CUS_PROPS "$DCRCusProps" /* custom connector properties */
+#define FIELD_DCR_CUS_DESCS "$DCRCusDescs" /* descriptors for custom props */
+#define DCR_METADATA_RECORD "$DCRMetadata" /* NSFSearch item id for summary buffer */
+#define DCR_METADATA_SEARCH "$DCRCatalog" /* Special id used as NSFSearch trigger */
+
+/* define order of generic properties in FIELD_DCR_GEN_PROPS */
+#define DCR_GPROP_TYPE 0
+#define DCR_GPROP_SERVER 1
+#define DCR_GPROP_DATABASE 2
+#define DCR_GPROP_USERNAME 3
+#define DCR_GPROP_PASSWORD 4
+#define DCR_GPROP_MD_OWNER 5
+#define DCR_GPROP_MD_NAME 6
+#define DCR_GPROP_CONNECTIONS 7
+#define DCR_GPROP_FLAGS 8
+#define DCR_GPROP_OPEN_PROC 9
+#define DCR_GPROP_UPDATE_PROC 10
+#define DCR_GPROP_CREATE_PROC 11
+#define DCR_GPROP_DELETE_PROC 12
+#define DCR_GPROP_LAST DCR_GPROP_DELETE_PROC
+
+/* Flag definitions for Data Connection Resources: misc properties */
+#define DCR_FLAG_TABLE 'T'
+#define DCR_FLAG_VIEW 'V'
+#define DCR_FLAG_PROC 'P'
+#define DCR_FLAG_UPDATE_CHANGED_FIELDS 'u'
+#define DCR_FLAG_BLOCK_KEY_FIELD_UPDATES 'b'
+#define DCR_FLAG_CONFLICT_DETECTION 'c'
+#define DCR_FLAG_FIELD_DECS_ERRORS 'e'
+#define DCR_FLAG_DISABLE_HTTP_CACHING 'h'
+#define DCR_FLAG_IGNORE_MISSING_RECORD 'i' /* On missing record */
+#define DCR_FLAG_CREATE_EXTERNAL_RECORD 'x'
+#define DCR_FLAG_TRUNCATE_PRECISION 'p' /* On data conflict */
+#define DCR_FLAG_TRUNCATE_DATA 'd'
+#define DCR_FLAG_TRIM_ALL_FIELDS 'a' /* Space trimming */
+#define DCR_FLAG_TRIM_NON_KEY_FIELDS 'k'
+
+
+/* Define Private note field name, and define the known types */
+
+#define FIELD_PRIVATE_TYPE "$Private"
+
+#define FIELD_PRIVATE_TYPE_QUERY 'q'
+#define FIELD_PRIVATE_TYPE_AGENT 'a'
+#define FIELD_PRIVATE_TYPE_VIEW 'v'
+#define FIELD_PRIVATE_TYPE_FOLDER 'f'
+
+/* The following items are inserted into a note which cannot be saved to its
+ Some special named notes. These values are stored in the FIELD_NAMED item to
+ identify a named note. */
+
+#define NAMEDNOTE_PRIVATEDESIGN "$PrivateDesign"
+#define NAMEDNOTE_PROFILE "$Profile"
+#define NAMEDNOTE_IMAP_DELETED_ENTRY "$IMAPResyncDE"
+#define NAMEDNOTE_POP_DELETED_ENTRY "$PopDE"
+
+
+/* The following definitions of for the public directory profile note */
+#define NAMEDNOTE_PUBLICDIRECTORYPROFILE "directoryprofile"
+#define LEDNAME_ITEM "LedName"
+#define TRUST_DIRCAT_ITEM "TrustDircat"
+#define DIRECTORY_DOMAIN_ITEM "Domain"
+#define SECURE_INETPASSWORDS_ITEM "SecureInetPasswords"
+#define ADMIN_LDAPSERVER_ITEM "AdminLDAPServer"
+
+/* The following items are inserted into a note which cannot be saved to its
+ original database due to network failure. When the failure can be
+ remedied, the note is read back into memory and fixed up to point
+ to correct database. At that point the items are removed. */
+
+#define PENDINGNAME "NOTEPEND"
+#define PENDINGSAVE_LINK_ITEM "$ORIGLINK"
+#define PENDINGSAVE_FILENAME_ITEM "$ORIGFILE"
+
+/* Designer minimum version */
+/* "minimum version" means "you need at least this version to safely save
+ this design element." */
+
+#define DESIGNER_VERSION "$DesignerVersion"
+
+#define DESIGNER_MIN_VERSION_5 "5"
+#define DESIGNER_MIN_VERSION_6 "6"
+#define DESIGNER_MIN_VERSION_6_5 "6.5"
+#define DESIGNER_MIN_VERSION_7 "7"
+#define DESIGNER_MIN_VERSION_8 "8"
+#define DESIGNER_MIN_VERSION_9 "9"
+#define DESIGNER_MIN_VERSION_10 "A"
+
+/* Design flags */
+
+#define DESIGN_FLAGS "$Flags"
+
+/* Please keep these flags in alphabetic order (based on the flag itself) so that
+ we can easily tell which flags to use next. Note that some of these flags apply
+ to a particular NOTE_CLASS; others apply to all design elements. The comments
+ indicate which is which. In theory, flags that apply to two different NOTE_CLASSes
+ could overlap, but for now, try to make each flag unique. */
+
+#define DESIGN_FLAG_ADD 'A' /* FORM: Indicates that a subform is in the add subform list */
+#define DESIGN_FLAG_ANTIFOLDER 'a' /* VIEW: Indicates that a view is an antifolder view */
+#define DESIGN_FLAG_BACKGROUND_FILTER 'B' /* FILTER: Indicates FILTER_TYPE_BACKGROUND is asserted */
+#define DESIGN_FLAG_INITBYDESIGNONLY 'b' /* VIEW: Indicates view can be initially built only by designer and above */
+#define DESIGN_FLAG_NO_COMPOSE 'C' /* FORM: Indicates a form that is used only for */
+ /* query by form (not on compose menu). */
+#define DESIGN_FLAG_CALENDAR_VIEW 'c' /* VIEW: Indicates a form is a calendar style view. */
+#define DESIGN_FLAG_NO_QUERY 'D' /* FORM: Indicates a form that should not be used in query by form */
+#define DESIGN_FLAG_DEFAULT_DESIGN 'd' /* ALL: Indicates the default design note for it's class (used for VIEW) */
+#define DESIGN_FLAG_MAIL_FILTER 'E' /* FILTER: Indicates FILTER_TYPE_MAIL is asserted */
+#define DESIGN_FLAG_PUBLICANTIFOLDER 'e' /* VIEW: Indicates that a view is a public antifolder view */
+#define DESIGN_FLAG_FOLDER_VIEW 'F' /* VIEW: This is a V4 folder view. */
+#define DESIGN_FLAG_V4AGENT 'f' /* FILTER: This is a V4 agent */
+#define DESIGN_FLAG_VIEWMAP 'G' /* VIEW: This is ViewMap/GraphicView/Navigator */
+#define DESIGN_FLAG_FILE 'g' /* FORM: file design element */
+#define DESIGN_FLAG_OTHER_DLG 'H' /* ALL: Indicates a form that is placed in Other... dialog */
+#define DESIGN_FLAG_JAVASCRIPT_LIBRARY 'h' /* Javascript library. */
+#define DESIGN_FLAG_V4PASTE_AGENT 'I' /* FILTER: This is a V4 paste agent */
+#define DESIGN_FLAG_IMAGE_RESOURCE 'i' /* FORM: Note is a shared image resource */
+#define DESIGN_FLAG_JAVA_AGENT 'J' /* FILTER: If its Java */
+#define DESIGN_FLAG_JAVA_AGENT_WITH_SOURCE 'j' /* FILTER: If it is a java agent with java source code. */
+#define DESIGN_FLAG_MOBILE_DIGEST 'K' /* to keep mobile digests out of form lists */
+#define DESIGN_FLAG_CONNECTION_RESOURCE 'k' /* Data Connection Resource (DCR) for 3rd party database */
+#define DESIGN_FLAG_LOTUSSCRIPT_AGENT 'L' /* FILTER: If its LOTUSSCRIPT */
+#define DESIGN_FLAG_DELETED_DOCS 'l' /* VIEW: Indicates that a view is a deleted documents view */
+#define DESIGN_FLAG_QUERY_MACRO_FILTER 'M' /* FILTER: Stored FT query AND macro */
+#define DESIGN_FLAG_SITEMAP 'm' /* FILTER: This is a site(m)ap. */
+#define DESIGN_FLAG_NEW 'N' /* FORM: Indicates that a subform is listed when making a new form.*/
+#define DESIGN_FLAG_HIDE_FROM_NOTES 'n' /* ALL: notes stamped with this flag
+ will be hidden from Notes clients
+ We need a separate value here
+ because it is possible to be
+ hidden from V4 AND to be hidden
+ from Notes, and clearing one
+ should not clear the other */
+#define DESIGN_FLAG_QUERY_V4_OBJECT 'O' /* FILTER: Indicates V4 search bar query object - used in addition to 'Q' */
+#define DESIGN_FLAG_PRIVATE_STOREDESK 'o' /* VIEW: If Private_1stUse, store the private view in desktop */
+#define DESIGN_FLAG_PRESERVE 'P' /* ALL: related to data dictionary */
+#define DESIGN_FLAG_PRIVATE_1STUSE 'p' /* VIEW: This is a private copy of a private on first use view. */
+#define DESIGN_FLAG_QUERY_FILTER 'Q' /* FILTER: Indicates full text query ONLY, no filter macro */
+#define DESIGN_FLAG_AGENT_SHOWINSEARCH 'q' /* FILTER: Search part of this agent should be shown in search bar */
+#define DESIGN_FLAG_REPLACE_SPECIAL 'R' /* SPECIAL: this flag is the opposite of DESIGN_FLAG_PRESERVE, used
+ only for the 'About' and 'Using' notes + the icon bitmap in the icon note */
+#define DESIGN_FLAG_PROPAGATE_NOCHANGE 'r' /* DESIGN: this flag is used to propagate the prohibition of design change */
+#define DESIGN_FLAG_V4BACKGROUND_MACRO 'S' /* FILTER: This is a V4 background agent */
+#define DESIGN_FLAG_SCRIPTLIB 's' /* FILTER: A database global script library note */
+#define DESIGN_FLAG_VIEW_CATEGORIZED 'T' /* VIEW: Indicates a view that is categorized on the categories field */
+#define DESIGN_FLAG_DATABASESCRIPT 't' /* FILTER: A database script note */
+#define DESIGN_FLAG_SUBFORM 'U' /* FORM: Indicates that a form is a subform.*/
+#define DESIGN_FLAG_AGENT_RUNASWEBUSER 'u' /* FILTER: Indicates agent should run as effective user on web */
+#define DESIGN_FLAG_AGENT_RUNASINVOKER 'u' /* FILTER: Indicates agent should run as invoker (generalize the
+ web user notion, reuse the flag */
+#define DESIGN_FLAG_PRIVATE_IN_DB 'V' /* ALL: This is a private element stored in the database */
+#define DESIGN_FLAG_IMAGE_WELL 'v' /* FORM: Used with 'i' to indicate the image is an image well.
+ Used for images with images across, not images down.
+ 'v' looks like a bucket */
+#define DESIGN_FLAG_WEBPAGE 'W' /* FORM: Note is a WEBPAGE */
+#define DESIGN_FLAG_HIDE_FROM_WEB 'w' /* ALL: notes stamped with this flag
+ will be hidden from WEB clients */
+/* WARNING: A formula that build Design Collecion relies on the fact that Agent Data's
+ $Flags is the only Desing Collection element whose $Flags="X" */
+#define DESIGN_FLAG_V4AGENT_DATA 'X' /* FILTER: This is a V4 agent data note */
+#define DESIGN_FLAG_SUBFORM_NORENDER 'x' /* SUBFORM: indicates whether
+ we should render a subform in
+ the parent form */
+#define DESIGN_FLAG_NO_MENU 'Y' /* ALL: Indicates that folder/view/etc. should be hidden from menu. */
+#define DESIGN_FLAG_SACTIONS 'y' /* Shared actions note */
+#define DESIGN_FLAG_MULTILINGUAL_PRESERVE_HIDDEN 'Z' /* ALL: Used to indicate design element was hidden */
+ /* before the 'Notes Global Designer' modified it. */
+ /* (used with the "!" flag) */
+#define DESIGN_FLAG_SERVLET 'z' /* FILTER: this is a servlet, not an agent! */
+#define DESIGN_FLAG_ACCESSVIEW 'z' /* FORM: reuse obsoleted servlet flag */
+
+#define DESIGN_FLAG_FRAMESET '#' /* FORM: Indicates that this is a frameset note */
+#define DESIGN_FLAG_MULTILINGUAL_ELEMENT '!'/* ALL: Indicates this design element supports the */
+ /* 'Notes Global Designer' multilingual addin */
+#define DESIGN_FLAG_JAVA_RESOURCE '@' /* FORM: Note is a shared Java resource */
+#define DESIGN_FLAG_STYLESHEET_RESOURCE '=' /* Style Sheet Resource (SSR) */
+#define DESIGN_FLAG_WEBSERVICE '{' /* FILTER: web service design element */
+#define DESIGN_FLAG_SHARED_COL '^' /* VIEW: shared column design element */
+
+#define DESIGN_FLAG_HIDE_FROM_MOBILE '1' /* hide this element from mobile clients */
+#define DESIGN_FLAG_HIDE_FROM_PORTAL '2' /* hide from portal */
+
+#define DESIGN_FLAG_HIDE_FROM_V3 '3' /* ALL: notes stamped with this flag
+ will be hidden from V3 client */
+#define DESIGN_FLAG_HIDE_FROM_V4 '4' /* ALL: notes stamped with this flag
+ will be hidden from V4 client */
+#define DESIGN_FLAG_HIDE_FROM_V5 '5' /* FILTER: 'Q5'= hide from V4.5 search list */
+ /* ALL OTHER: notes stamped with this flag
+ will be hidden from V5 client */
+#define DESIGN_FLAG_HIDE_FROM_V6 '6' /* ALL: notes stamped with this flag
+ will be hidden from V6 client */
+#define DESIGN_FLAG_HIDE_FROM_V7 '7' /* ALL: notes stamped with this flag
+ will be hidden from V7 client */
+#define DESIGN_FLAG_HIDE_FROM_V8 '8' /* ALL: notes stamped with this flag
+ will be hidden from V8 client */
+#define DESIGN_FLAG_HIDE_FROM_V9 '9' /* ALL: notes stamped with this flag
+ will be hidden from V9 client */
+#define DESIGN_FLAG_MUTILINGUAL_HIDE '0' /* ALL: notes stamped with this flag
+ will be hidden from the client
+ usage is for different language
+ versions of the design list to be
+ hidden completely */
+#define DESIGN_FLAG_WEBHYBRIDDB '%' /* shimmer design docs */
+
+#define DESIGN_FLAG_READONLY '&' /* for files, at least for starters */
+#define DESIGN_FLAG_NEEDSREFRESH '$' /* for files, at least for now */
+#define DESIGN_FLAG_HTMLFILE '>' /* this design element is an html file */
+#define DESIGN_FLAG_JSP '<' // this design element is a jsp
+#define DESIGN_FLAG_QUERYVIEW '<' // VIEW - Query View in design list
+#define DESIGN_FLAG_DIRECTORY '/' /* this file element is a directory */
+
+#define DESIGN_FLAG_PRINTFORM '?' /* FORM - used for printing. */
+#define DESIGN_FLAG_HIDEFROMDESIGNLIST '~' /* keep this thing out of a design list */
+#define DESIGN_FLAG_HIDEONLYFROMDESIGNLIST '}' /* keep this thing out of a design list but allow users to view doc using it */
+
+/* These are the flags that help determine the type of a design element.
+ These flags are used to sub-class the note classes, and cannot be
+ changed once they are created (for example, there is no way to change
+ a form into a subform). */
+
+#define DESIGN_FLAGS_SUBCLASS "UW#yi@GFXstmzk=Kg%{^"
+
+/* These are the flags that can be used to distinguish between two
+ design elements that have the same class, subclass (see DESIGN_FLAGS_SUBCLASS),
+ and name. */
+
+#define DESIGN_FLAGS_DISTINGUISH "nw123456789"
+
+/* '+' = ANY of the flags, '-' = NONE of the flags, '*' = ALL of the flags */
+/* '(+-*' = a combination of the above. */
+/* Example: "(+AB-C*DE" = (A OR B) AND (NOT C) AND (D AND E) */
+/* Note: be sure to have +-* placeholders even if no flags for some. */
+/* ie: "(+-C*DE" = (NOT C) AND (D AND E). */
+/* Note: "(+-Q*" is equivalent to "-Q" */
+
+#define DFLAGPAT_V4SEARCHBAR "(+Qq-Bst5nmz*"/* display things editable at V4 search bar; version filtering */
+#define DFLAGPAT_SEARCHBAR "(+QM-st5nmz*" /* display things editable at search bar; version filtering */
+
+#define DFLAGPAT_VIEWFORM "-FQMUGXWy#i@0nKg~%z^" /* display things editable with dialog box; version filtering */
+#define DFLAGPAT_VIEWFORM_MENUABLE "-FQMUGXWy#i@40nKg~%z^}" /* display things showable on the menu */
+#define DFLAGPAT_VIEWFORM_ALL_VERSIONS "-FQMUGXWy#i@Kg~%z^}" /* display things editable with dialog box; no version filtering (for design) */
+#define DFLAGPAT_PRINTFORM_ALL_VERSIONS "+?" /* display things editable with dialog box; no version filtering (for design) */
+
+#define DFLAGPAT_TOOLSRUNMACRO "-QXMBESIst5nmz{"/* display things that are runnable; version filtering */
+#define DFLAGPAT_AGENTSLIST "-QXstmz{" /* display things that show up in agents list. No version filtering (for design) */
+#define DFLAGPAT_PASTEAGENTS "+I" /* select only paste agents */
+#define DFLAGPAT_SCRIPTLIB "+sh" /* display only database global script libraries */
+#define DFLAGPAT_SCRIPTLIB_LS "(+s-jh*" /* display only database global LotusScript script libraries */
+#define DFLAGPAT_SCRIPTLIB_JAVA "*sj" /* display only database global Java script libraries */
+#define DFLAGPAT_SCRIPTLIB_JS "+h" /* display only database global Javascript script libraries */
+#define DFLAGPAT_DATABASESCRIPT "+t" /* display only database level script */
+
+#define DFLAGPAT_SUBFORM "(+U-40n*" /* display only subforms; version filtering */
+#define DFLAGPAT_SUBFORM_DESIGN "(+U-40*" /* display only subforms; for design mode, version filtering */
+#define DFLAGPAT_SUBFORM_ALL_VERSIONS "+U" /* only subforms; no version filtering */
+#define DFLAGPAT_DBRUNMACRO "+BS" /* run all background filters */
+#define DFLAGPAT_COMPOSE "-C40n" /* display forms that belong in compose menu; version filtering */
+#define DFLAGPAT_NOHIDDENNOTES "-n" /* select elements not hidden from notes */
+#define DFLAGPAT_NOHIDDENWEB "-w" /* select elements not hidden from web */
+#define DFLAGPAT_QUERYBYFORM "-DU40nyz{" /* display forms that appear in query by form; version filtering */
+#define DFLAGPAT_PRESERVE "+P" /* related to data dictionary; no version filtering */
+#define DFLAGPAT_SUBADD "(+-40*UA" /* subforms in the add subform list; no version filtering */
+#define DFLAGPAT_SUBNEW "(+-40*UN" /* subforms that are listed when making a new form.*/
+#define DFLAGPAT_VIEW "-FG40n^" /* display only views */
+#define DFLAGPAT_VIEW_DESIGN "-FG40^" /* display only views, ignore hidden from notes */
+#define DFLAGPAT_NOTHIDDEN "-40n" /* design element is not hidden*/
+#define DFLAGPAT_FOLDER "(+-04n*F" /* display only folders; version filtering */
+#define DFLAGPAT_FOLDER_DESIGN "(+-04*F" /* display only folders; version filtering, ignore hidden notes */
+#define DFLAGPAT_FOLDER_ALL_VERSIONS "*F"/* display only folders; no version filtering (for design) */
+#define DFLAGPAT_CALENDAR "*c" /* display only calendar-style views */
+#define DFLAGPAT_SHAREDVIEWS "-FGV^40n" /* display only shared views */
+#define DFLAGPAT_SHAREDVIEWSFOLDERS "-G^V40p" /* display only shared views and folder; all notes & web */
+#define DFLAGPAT_SHAREDWEBVIEWS "-FGV40wp^" /* display only shared views not hidden from web */
+#define DFLAGPAT_SHAREDWEBVIEWSFOLDERS "-GV40wp^" /* display only shared views and folders not hidden from web */
+#define DFLAGPAT_VIEWS_AND_FOLDERS "-G40n^" /* display only views and folder; version filtering */
+#define DFLAGPAT_VIEWS_AND_FOLDERS_DESIGN "-G40^" /* display only views and folder; all notes & web */
+#define DFLAGPAT_SHARED_COLS "(+-*^" /* display only shared columns */
+
+#define DFLAGPAT_VIEWMAP "(+-04n*G" /* display only GraphicViews; version filtering */
+#define DFLAGPAT_VIEWMAP_ALL_VERSIONS "*G" /* display only GraphicViews; no version filtering (for design) */
+#define DFLAGPAT_VIEWMAPWEB "(+-04w*G" /* display only GraphicViews available to web; version filtering */
+#define DFLAGPAT_VIEWMAP_DESIGN "(+-04*G" /* display only GraphicViews; all notes & web navs */
+
+#define DFLAGPAT_WEBPAGE "(+-*W" /* display WebPages */
+#define DFLAGPAT_WEBPAGE_NOTES "(+W-n*" /* display WebPages available to notes client */
+#define DFLAGPAT_WEBPAGE_WEB "(+W-w*" /* display WebPages available to web client */
+#define DFLAGPAT_OTHER_DLG "(+-04n*H" /* display forms that belong in compose menu */
+#define DFLAGPAT_CATEGORIZED_VIEW "(+-04n*T" /* display only categorized views */
+
+#define DFLAGPAT_DEFAULT_DESIGN "+d" /* detect default design note for it's class (used for VIEW) */
+#define DFLAGPAT_FRAMESET "(+-*#" /* display only Frameset notes */
+#define DFLAGPAT_FRAMESET_NOTES "(+#-n*" /* Frameset notes available to notes client */
+#define DFLAGPAT_FRAMESET_WEB "(+#-w*" /* Frameset notes available to web client */
+#define DFLAGPAT_SITEMAP "+m" /* SiteMap notes (actually, "mQ345") */
+#define DFLAGPAT_SITEMAP_NOTES "(+m-n*" /* sitemap notes available to notes client */
+#define DFLAGPAT_SITEMAP_WEB "(+m-w*" /* sitemap notes available to web client */
+#define DFLAGPAT_IMAGE_RESOURCE "+i" /* display only shared image resources */
+#define DFLAGPAT_IMAGE_RES_NOTES "(+i-n*" /* display only notes visible images */
+#define DFLAGPAT_IMAGE_RES_WEB "(+i-w*" /* display only web visible images */
+#define DFLAGPAT_IMAGE_WELL_RESOURCE "(+-*iv" /* display only shared image resources that
+ have more than one image across */
+#define DFLAGPAT_IMAGE_WELL_NOTES "(+-n*iv" /* display only shared image resources that
+ have more than one image across - notes only */
+#define DFLAGPAT_IMAGE_WELL_WEB "(+-w*iv" /* display only shared image resources that
+ have more than one image across - web only */
+#define DFLAGPAT_JAVA_RESOURCE "+@" /* display only shared Java resources */
+#define DFLAGPAT_JAVA_RESOURCE_NOTES "(+@-n*" /* display only shared Java resources visible to notes */
+#define DFLAGPAT_JAVA_RESOURCE_WEB "(+@-w*" /* display only shared Java resources visible to web */
+
+#define DFLAGPAT_DATA_CONNECTION_RESOURCE "+k" /* display only shared data connection resources */
+#define DFLAGPAT_DB2ACCESSVIEW "+z" /* display only db2 access views */
+
+#define DFLAGPAT_STYLE_SHEET_RESOURCE "+=" /* display only shared style sheet resources */
+#define DFLAGPAT_STYLE_SHEETS_NOTES "(+=-n*" /* display only notes visible style sheets */
+#define DFLAGPAT_STYLE_SHEETS_WEB "(+=-w*" /* display only web visible style sheets */
+#define DFLAGPAT_FILE "+g" /* display only files */
+#define DFLAGPAT_FILE_DL "(+g-~*" /* list of files that should show in file DL */
+#define DFLAGPAT_FILE_NOTES "(+g-n*" /* list of notes only files */
+#define DFLAGPAT_FILE_WEB "(+g-w*" /* list of web only files */
+#define DFLAGPAT_HTMLFILES "(+-*g>" /* display only html files */
+#define DFLAGPAT_HTMLFILES_NOTES "(+-n*g>" /* htmlfiles that are notes visible */
+#define DFLAGPAT_HTMLFILES_WEB "(+-w*g>" /* htmlfiles that are web visible */
+#define DFLAGPAT_FILE_ELEMS "(+gi=-/*" /* files plus images plus style sheets with no directory elements */
+
+#define DFLAGPAT_SERVLET "+z" /* servlets */
+#define DFLAGPAT_SERVLET_NOTES "(+z-n*" /* servlets not hidden from notes */
+#define DFLAGPAT_SERVLET_WEB "(+z-w*" /* servlets not hidden from the web */
+
+#define DFLAGPAT_WEBSERVICE "+{" /* web service */
+#define DFLAGPAT_JAVA_WEBSERVICE "(+Jj-*{" /* java web services */
+#define DFLAGPAT_LS_WEBSERVICE "*{L" /* lotusscript web services */
+
+#define DFLAGPAT_JSP "(+-*g<" /* display only JSP's */
+
+/* Shared actions must be visible to both Notes and the Web since there is
+ only one of these puppies - there is no list in the designer to get at
+ more than one. However, for completeness, I'll make the appropriate
+ patterns for the day we may want to have separateness. */
+
+#define DFLAGPAT_SACTIONS_DESIGN "+y"
+#define DFLAGPAT_SACTIONS_WEB "(+-0*y"
+#define DFLAGPAT_SACTIONS_NOTES "(+-0*y"
+
+
+/* Web server patterns */
+#define DFLAGPAT_NONWEB "+w70stVXp^" /* elements that are never used on the web */
+#define DFLAGPAT_NONWEB_EXCLUDE "-w70stVXp^" /* same flags as DFLAGPAT_NONWEB */
+/* For the rest, no need to include flags from DFLAGPAT_NONWEB, since
+ these flags are excluded in an initial pass. (see insrv\inotes\ndesdict.cpp) */
+#define DFLAGPAT_AGENTSWEB "(+-QXstmz{*" /* agents that can be run from the web */
+#define DFLAGPAT_AGNTORWEBSVCWEB "(+-QXstmz*" /* agents or web services that can be run from the web */
+#define DFLAGPAT_WEBSERVICEWEB "+{" /* web services that can be run from the web */
+#define DFLAGPAT_FORMSWEB "-U#Wi@y" /* forms usable from the web */
+#define DFLAGPAT_SUBFORMSWEB "+U" /* subforms usable from the web */
+#define DFLAGPAT_FRAMESETSWEB "+#" /* frameset from the web */
+#define DFLAGPAT_PAGESWEB "+W" /* web pages from the web */
+#define DFLAGPAT_VIEWSWEB "-G" /* views usable from the web */
+#define DFLAGPAT_NAVIGATORSWEB "+G" /* navigators usable from the web */
+#define DFLAGPAT_SHAREDFIELDSWEB "*" /* shared fields usable from the web */
+#define DFLAGPAT_ALLWEB "*" /* all design elements */
+#define DFLAGPAT_NO_FILERES_DIRS "-/" /* all design elements excluding file resource directories*/
+#define DFLAGPAT_FIRSTPATTERNCHAR "(+-*" /* patterns start with one of these */
+#define DFLAGPAT_WEBHYBRIDDB "+%" /* all WebHybridDb design elements */
+
+/* a new flags field that (will be) in the design collection. $Flags is just
+ so full that we need some wiggle room!! */
+#define DESIGN_FLAGS_EXTENDED "$FlagsExt" /* because we're just gonna need it */
+#define DESIGN_FLAGEXT_FILE_DEPLOYABLE 'D' /* for web apps, this file is ready for primetime */
+#define DESIGN_FLAGEXT_DONTREFRESH_ON_REDEPLOY 'R' /* for web apps, this file should not be replaced on redeploy */
+#define DESIGN_FLAGEXT_NOTE_HAS_DAVPROPERTIES 'P' /* for WebDAV resources. The note has a dead properties in the $DavProperties field */
+#define DESIGN_FLAGEXT_NOTE_HAS_MSPROPERTIES 'M' /* for WebDAV: indicates that certain MS properties are among the dead properites */
+#define DESIGN_FLAGEXT_DAVLOCKNULL 'N' /* for WebDAV lock null resources */
+#define DESIGN_FLAGEXT_WEBDAV_HIDDEN 'H' /* for WebDAV: the note is hidden */
+#define DESIGN_FLAGEXT_DAVCOMPUTEFORM 'C' /* for davs, a compute with form dav */
+#define DESIGN_FLAGEXT_DAVATTACH 'A' /* for davs, this one supports attachments */
+#define DESIGN_FLAGEXT_DAVGMTNORMAL 'Z' /* for davs, this one GMT normalizes */
+#define DESIGN_FLAGEXT_JAVADEBUG 'D' /* can reuse D because old use is obsolete */
+#define DESIGN_FLAGEXT_PROFILE 'F' /* profile code running in this note */
+
+/* DAV item names */
+#define DESIGN_DAV_CFNAME "$DAVComputeForm"
+#define DESIGN_DAV_ATTVIEW "$DAVAttachView"
+#define DESIGN_DAV_FLDS "$DAVFldDesc"
+#define DESIGN_DAV_FLDS_LIVE "$DAVLiveFlds"
+
+/* The agent flag is stored in the new flag so the info is not removed by older Designers when the user edits the agent */
+#define DESIGN_FLAGEXT_AGENT_ACTIVATABLE 'a' /* if the agent is activatable, if it is missing it is not */
+
+/* Compute-defined item names that are actually pseudo-items, requested
+ by NIF, that cause Compute to return some info. These are not actually
+ in any document, and if they are, will probably not work properly. */
+
+#define FIELD_COMPUTE_READERS "$C1$"
+
+/* Mail note item names */
+
+#define MAIL_MESSAGETYPE_ITEM "MessageType" /* Message type. */
+#define MAIL_MESSAGE_TYPE_ITEM "$MessageType" /* $MessageType item name */
+#define MAIL_SENDTO_ITEM "SendTo" /* SendTo item name */
+#define MAIL_COPYTO_ITEM "CopyTo" /* CopyTo item name */
+#define MAIL_REPLYTO_ITEM "ReplyTo" /* ReplyTo, used for agents */
+#define MAIL_REPLYDATE_ITEM "ReplyDate" /* ReplyDate item name */
+#define MAIL_RESPONSETO_ITEM "ResponseTo" /* ResponseTo, used for agents */
+#define MAIL_FROM_ITEM "From" /* From item name */
+#define MAIL_FROMDOMAIN_ITEM "FromDomain" /* From domain item name */
+#define MAIL_SUBJECT_ITEM "Subject" /* Subject item name */
+#define MAIL_DISPLAY_SUBJECT_ITEM "DisplaySubject" /* Used by reply form */
+#define MAIL_COMPOSEDDATE_ITEM "ComposedDate" /* Composed date item name */
+#define MAIL_POSTEDDATE_ITEM "PostedDate" /* Posted date item name */
+#define MAIL_BODY_ITEM "Body" /* Body item name */
+#define MAIL_INTENDEDRECIPIENT_ITEM "IntendedRecipient" /* Intended recipient item */
+#define MAIL_ALTINTENDEDRECIPIENT_ITEM "AltIntendedRecipient" /* Alternate Intended recipient item */
+#define MAIL_LANGINTENDEDRECIPIENT_ITEM "$LangIntendedRecipient" /* Language Tag Intended Recipient */
+#define MAIL_FAILUREREASON_ITEM "FailureReason" /* Failure reason item */
+#define MAIL_DEADFAILUREREASON_ITEM "DeadFailureReason" /* DEAD Failure reason item */
+#define MAIL_RECIPIENTS_ITEM "Recipients" /* Recipients list item */
+#define MAIL_ROUTINGSTATE_ITEM "RoutingState" /* Routing state */
+#define MAIL_ROUTINGSTATEBY_ITEM "RoutingStateBy" /* Routing state changed by indicator */
+#define MAIL_SAVED_FORM_ITEM "MailSavedForm" /* Delivery report saved form name item */
+#define MAIL_BLINDCOPYTO_ITEM "BlindCopyTo" /* Blind copy to item name */
+#define MAIL_DELIVERYPRIORITY_ITEM "DeliveryPriority" /* Delivery priority item name */
+#define MAIL_DELIVERYREPORT_ITEM "DeliveryReport" /* Delivery report request item name */
+#define MAIL_DELIVEREDDATE_ITEM "DeliveredDate" /* Delivered date item name */
+#define MAIL_DELIVERYDATE_ITEM "DeliveryDate" /* Delivery date item name (Confirmation Reports only) */
+#define MAIL_FORM_ITEM FIELD_FORM /* Form name item */
+#define MAIL_REPLY_FORM_ITEM "ReplyForm" /* Reply form, used for agents */
+#define MAIL_CATEGORIES_ITEM "Categories" /* Categories field */
+#define MAIL_FROM_CATEGORIES_ITEM "FromCategories" /* Sender's Categories field */
+#define MAIL_ROUTE_SERVERS_ITEM "RouteServers" /* List of servers routed thru */
+#define MAIL_ROUTE_TIME_ITEM "RouteTimes" /* List of TIMEDATE_PAIRS describing holding times */
+#define MAIL_RECIP_GROUPS_EXP_ITEM "RecipientGroupsExpanded" /* List of recipient group names that have been expanded */
+#define MAIL_RETURNRECEIPT_ITEM "ReturnReceipt" /* Return receipt requested? */
+#define MAIL_NAMED_ENCKEY_ITEM "NamedEncryptionKey" /* Named encryption key. */
+#define MAIL_ROUTE_HOPS_ITEM "$Hops" /* Number of routing hops still allowed. */
+#define MAIL_CORRELATION_ITEM "$Correlation" /* Arbitrary delivery report correlation value. */
+#define MAIL_FORMAT_ITEM "MailFormat" /* (E)ncapsulated */
+ /* (T)ext */
+ /* (B)oth */
+#define MAIL_TMP_FROM_ITEM "TmpFromItem" /*temp mail from item*/
+#define MAIL_IMPORTANCE_ITEM "Importance" /* Send Priority/Importance item */
+#define MAIL_QUALRECIPIENTS_ITEM "QualRecipients" /* Fully qualified Recipients list item */
+#define MAIL_ORIGNALPATH_ITEM "OriginalPath" /* Original routing path (copy of original message's FromDomain) */
+#define MAIL_TRACE_ITEM "$Trace" /* Identifies message as a trace file */
+#define MAIL_ORIG_ITEM "$Orig" /* Global Id used for Billing */
+#define MAIL_DELIVER_LOOPS_ITEM "$Loops" /* Number of forwarding loops still allowed. */
+#define MAIL_CLUSTERFAILOVER_ITEM "$MailClusterFailover" /* Server name mail was delivered to after cluster failover */
+#define MAIL_UIDL_ITEM "MailPop3UIDL"
+#define MAIL_ENTERSENDTO_ITEM "EnterSendTo" /* Enter SendTo item name */
+#define MAIL_ENTERCOPYTO_ITEM "EnterCopyTo" /* Enter CopyTo item name */
+#define MAIL_ENTERBLINDCOPYTO_ITEM "EnterBlindCopyTo" /* Enter Blind copy to item name */
+#define MAIL_INETSENDTO_ITEM "INetSendTo" /* Internet SendTo item name */
+#define MAIL_INETCOPYTO_ITEM "INetCopyTo" /* Internet CopyTo item name */
+#define MAIL_INETBLINDCOPYTO_ITEM "INetBlindCopyTo" /* Internet Blind copy to item name */
+#define MAIL_ALTSENDTO_ITEM "AltSendTo" /* Alternate Name SendTo item name */
+#define MAIL_ALTCOPYTO_ITEM "AltCopyTo" /* Alternate Name CopyTo item name */
+#define MAIL_ALTBLINDCOPYTO_ITEM "AltBlindCopyTo" /* Alternet Blind copy to item name */
+#define MAIL_ALTREPLYTO_ITEM "$AltReplyTo" /* Alternate Reply To item name */
+#define MAIL_LANGREPLYTO_ITEM "$LangReplyTo" /* Language Tag Reply To*/
+#define MAIL_ALTPRINCIPAL_ITEM "$AltPrincipal" /* Alternate Principal item name */
+#define MAIL_LANGPRINCIPAL_ITEM "$LangPrincipal" /* Language tag Principal */
+#define MAIL_INETFROM_ITEM "INetFrom" /* Internet From item name */
+#define MAIL_ALTFROM_ITEM "AltFrom" /* Alternate Name From item name */
+#define MAIL_LANGFROM_ITEM "$LangFrom" /* Language Tag From item name */
+#define MAIL_DONOTHOLD_ITEM "$DoNotHold" /* To prevent holding non-deliverable mail */
+#define MAIL_STORAGETO_ITEM "$StorageTo" /* Storage type To */
+#define MAIL_STORAGECC_ITEM "$StorageCc" /* Storage type Cc */
+#define MAIL_STORAGEBCC_ITEM "$StorageBcc" /* Storage type Bcc */
+#define MAIL_LANGTO_ITEM "$LangTo" /* Language tag To */
+#define MAIL_LANGCC_ITEM "$LangCc" /* Language tag Cc */
+#define MAIL_LANGBCC_ITEM "$LangBcc" /* Language tag Bcc */
+#define MAIL_VIEWICON_ITEM "_ViewIcon" /* Contains icon number for mail view. Displays in first icon column, from left */
+#define MAIL_VIEWICON2_ITEM "_ViewIcon2" /* Contains icon number for mail view. Displays in second icon column, from left */
+#define MAIL_EXCLUDEFROMVIEW_ITEM "ExcludeFromView" /* View(s) to exclude note from in mail file */
+#define MAIL_PRINCIPAL_ITEM "Principal" /* Mail file from which a note was sent */
+#define MAIL_ALTNAMELANGUAGETAGS_ITEM "$NameLanguageTags" /* Language Tags item. Single list of Lang Tags for set of current recipients. No Dups. */
+#define MAIL_INETREPLYTO_ITEM "$INetReplyTo" /* Internet ReplyTo item name */
+#define MAIL_INETPRINCIPAL_ITEM "$INetPrincipal" /* Internet Principal item name */
+#define MAIL_MAILER_ITEM "$Mailer" /* Name and version number of the Mailer which sent the message */
+#define MAIL_ID_ITEM "$MessageID" /* Unique ID of this message */
+#define ITEM_NAME_DONOTMODIFYINVITEES "tmpDoNotModifyInvitees" /*prevents invitees from being changed on freetime control */
+#define MAIL_CS_INVITE_WAS_DELEGATED_TO_US "MeetingInviteWasDelegatedToUs" /* Meeting invitation was delegate to us*/
+#define MAIL_CS_INVITE_WAS_DELEGATED_OFF "MeetingInviteWasDelegatedOff" /* Meeting invitation was delegate to us*/
+
+#define ITEM_NAME_DESIGN_TEMP_COLLATION "TmpViewDesignCollation"
+
+#define MAIL_APPARENTLY_FROM_ITEM "Apparently_From"
+#define MAIL_APPARENTLY_TO_ITEM "Apparently_To"
+#define MAIL_DISPOSITION_NOTIFICATION_TO_ITEM "Disposition_Notification_To"
+#define MAIL_ORIGINAL_BCC_ITEM "Originalbcc"
+#define MAIL_ORIGINAL_CC_ITEM "Originalcc"
+#define MAIL_ORIGINAL_FROM_ITEM "OriginalFrom"
+#define MAIL_ORIGINAL_PRINCIPAL_ITEM "OriginalPrincipal"
+#define MAIL_ORIGINAL_REPLY_TO_ITEM "OriginalReplyTo"
+#define MAIL_ORIGINAL_TO_ITEM "OriginalTo"
+#define MAIL_RECEIVED_ITEM "Received"
+#define MAIL_RESENT_BCC_ITEM "Resent_bcc"
+#define MAIL_RESENT_CC_ITEM "Resent_cc"
+#define MAIL_RESENT_DATE_ITEM "Resent_Date"
+#define MAIL_RESENT_FROM_ITEM "Resent_From"
+#define MAIL_RESENT_MESSAGE_ID_ITEM "Resent_Message_ID"
+#define MAIL_RESENT_REPLY_TO_ITEM "Resent_Reply_To"
+#define MAIL_RESENT_SENDER_ITEM "Resent_Sender"
+#define MAIL_RESENT_TO_ITEM "Resent_To"
+#define MAIL_RETURN_RECEIPT_TO_ITEM "Return_Receipt_To"
+#define MAIL_SENDER_ITEM "Sender"
+#define MAIL_MIME_VERSION "MIME_Version"
+#define MAIL_IMAP_RFC822_SIZE "IMAP_RFC822Size"
+#define MAIL_IMAP_BODYSTRUCTURE "IMAP_BodyStruct"
+#define MAIL_CONTENT_TYPE "$Content_Type"
+#define MAIL_FIRST_PASS "MailFirstPass"
+#define MAIL_MOODS_ITEM "$Moods"
+#define MAIL_SENDERTAG_ITEM "SenderTag"
+#define MAIL_TMPSENDERTAG_ITEM "tmpSenderTag"
+#define MAIL_DISCLAIMED_ITEM "$Disclaimed"
+
+#define MAILBOX_ADMIN_ROLE "[MailboxAdmin]"
+
+#define MAIL_GURU_SCORE_ITEM "DSFScore"
+#define MAIL_GURU_RCPT_ITEM "DSFRcpt"
+#define MAIL_GURU_TO_ITEM "DSFTo"
+#define MAIL_GURU_FROM_ITEM "DSFFrom"
+#define MAIL_GURUVOTE_REPORT_ITEM "DSFVoteReport"
+#define MAIL_GURUVOTE_VOTE_ITEM "DSFVoteVote"
+
+#define MAIL_DNSBL_FILTER_ITEM "$DNSBLSite" /* Blacklist tag */
+#define MAIL_DNSWL_FILTER_ITEM "$DNSWLSite" /* Whitelist tag */
+#define MAIL_FILTER_ACTIONS_ITEM "$FilterActions"
+#define MAIL_FILTER_BY_ITEM "$FilterBy"
+#define MAIL_SENDTO_NONRESPONDERS "Non_Responders"
+#define MAIL_CS_LOOPING_FACTOR "LoopingFactor" /*temp note item to identify for the template
+ whether a notice has "looped" (I delegated this
+ meeting off and it's come back) or cross-delegate
+ (two people have delegated an invitation for the
+ same meeting to me) */
+#define MAIL_REPLYFORWARD_ITEM "$RespondedTo" /* text item, value = 1 if replied, 2 = forwarded, 3 = both */
+#define MAIL_REPLYFORWARD_NONE "0"
+#define MAIL_REPLYFORWARD_REPLY "1"
+#define MAIL_REPLYFORWARD_FORWARD "2"
+#define MAIL_REPLYFORWARD_REPLYFORWARD "3"
+
+/* POP3 view names */
+#define MAIL_POP3_UIDL_VIEW "($POP3UIDL)"
+
+/* Appointment form item names */
+
+#define MAIL_APPT_BUSYNAME_ITEM "$BusyName" /* Person/resource the appointment is for */
+#define MAIL_APPT_STARTTIME_ITEM "StartDateTime" /* Start time of appointment */
+#define MAIL_APPT_ENDTIME_ITEM "EndDateTime" /* End time of appointment */
+#define MAIL_APPT_SEQUENCE_ITEM "$Sequence" /* Sequence # of updates */
+#define MAIL_APPT_BUSYPRIORITY_ITEM "$BusyPriority" /* Busy/Penciled-in/etc. */
+#define MAIL_APPT_ATTENDEE_ITEM "Attendees" /* List of people for which the following items apply */
+#define MAIL_APPT_ATTENDEE_STATE_ITEM "ORGState" /* Chairman, attendee, resource */
+#define MAIL_APPT_ATTENDEE_STATUS_ITEM "ORGStatus" /* Deleted, etc. */
+#define MAIL_APPT_ATTENDEE_OPTIONAL_ITEM "OPTIONAL" /* If TRUE, attendee is optional */
+#define MAIL_APPT_PREV_BUSYNAME_ITEM "$PrevBusyName" /* Previous Person/resource(s) the appointment is for */
+#define RESOURCE_NAMESPACE_RESOURCES "($RLookup)" /* View containing resources sorted by name */
+#define RESOURCE_NAMESPACE_RESERVATIONS "($FindReservation)" /* View containing reservations by name and apptunid */
+#define RESOURCE_NAMESPACE_WAITINGAPPROVAL "($FindWaitingApproval)" /* Like $FindReservation but contains those waiting for approval */
+#define MAIL_REPEAT_LOOKUP_NAMESPACE "($RepeatLookup)" /* View containing repeat replies/updates */
+#define MAIL_REPEAT_INSTANCE_LOOKUP_NAMESPACE "($RepeatInstanceLookup)" /* View containing repeat instances */
+#define MAIL_JOURNALLING_FLAG_ITEM "$JournalResponsibility" /* If present, message should be journalled. The
+ * value indicates if it should be journalled locally
+ * or on another server. */
+
+
+#define JOURNALLING_FLAG_DONT_JOURNAL 0
+#define JOURNALLING_FLAG_LOCAL_JOURNAL 1
+#define JOURNALLING_FLAG_REMOTE_JOURNAL 2
+#define JOURNALLING_FLAG_JOURNAL_COMPLETE 3
+#define JOURNALLING_FLAG_DONT_JOURNAL_STR "0"
+#define JOURNALLING_FLAG_LOCAL_JOURNAL_STR "1"
+#define JOURNALLING_FLAG_REMOTE_JOURNAL_STR "2"
+#define JOURNALLING_FLAG_JOURNAL_COMPLETE_STR "3"
+#define MAIL_JOURNALLING_TEMPLATE_NAME "mailjrn.ntf"
+
+#define MAIL_ROUTINGSTATEBY_ROUTER_STR "1"
+#define MAIL_ROUTINGSTATEBY_RULE_STR "2"
+
+/* Internet Message Note items and definitions (for Internet Mail and Internet News) */
+
+#define IMSG_RFC822_FILENAME_ITEM "$IntMailMsgFileName" /* Name of the attachment that contains the BLOB. */
+ /* This contains the string 'Mail' because of */
+ /* history and changing it now would affect existing */
+ /* databases and code. */
+
+#define IMSG_ITEMIZE_ERROR_ITEM "$ItemizeError" /* non-zero if an error occurred during itemize. if an */
+ /* error occurs, the original internet message is at- */
+ /* tached to the message (IMSG_RFC822_FILENAME_ITEM) */
+ /* and the error text is stuffed into the message's body*/
+ /* item. */
+
+#define MAIL_TMP_MESSAGE_ID_DOMAIN "LocalDomain" /* Used as a place holder on constructed MessageIDs */
+
+#define MAIL_MIME_CHARSET "MIMEMailCharset" /* field with charset value */
+#define MAIL_MIME_HEADER_CHARSET "MIMEMailHeaderCharset" /* Charset for headers: upper 16 bit: charset, lower 16 bit: Encoding */
+
+/*
+ * Person documents contain an item (MessageStorage) which indicates each person's preference for how
+ * messages delivered to them will be stored. Definitions of the valid values for this item are named
+ * IMSG_PREFERENCE_XXX.
+ *
+ * Mail messages contain an item ($MessageStorage) which indicates the actual storage format of the
+ * message if it has been converted. Definitions of the valid values for this item are named
+ * IMSG_STORAGE_XXX. This item is deleted from messages when they are delivered by the router.
+ *
+ * Routines which store messages or convert messages accept arguments which specify the required
+ * storage format. These routines accept values named IMSG_STORAGE_XXX.
+ *
+ * As a performance optimization for the router, there is another item which can exist on a note
+ * which indicates that the note is stored in native MIME. This item is $NoteHasNativeMIME.
+ */
+
+#define IMSG_STORAGE_ITEM "$MessageStorage" /* Describes how mail is stored. See IMSG_STORAGE_XXX */
+
+#define IMSG_STORAGE_UNKNOWN 0xFF /* can't find storage type */
+#define IMSG_STORAGE_CDRECORDS 0 /* Store as cd records only */
+#define IMSG_STORAGE_CDRECORDS_AND_RFC822 1 /* Store as cd records & attachment of original message */
+#define IMSG_STORAGE_RFC822 2 /* Store original message as attachment (no cdrecords) */
+#define IMSG_STORAGE_NATIVE_MIME 3 /* Store headers & parts as separate items (without conversion) or CD */
+#define IMSG_STORAGE_HAIKU 4 /* Store for Haiku users only */
+/* Be sure to update count (IMSG_STORAGE_FORMATS) if new formats are added */
+
+#define IMSG_STORAGE_FORMATS 5 /* Count of known storage formats */
+
+#define IMSG_PREFERENCE_UNKNOWN 0xFF /* can't find preference type */
+#define IMSG_PREFERENCE_NOTES 0 /* V4->CD, V5->CD or MIME */
+#define IMSG_PREFERENCE_NOTES_AND_MIME 1 /* V4->CD and MIME blob, V5->CD or MIME */
+#define IMSG_PREFERENCE_MIME 2 /* V4->MIME blob only, V5->Native MIME */
+#define IMSG_PREFERENCE_HAIKU 3 /* V4->N/A, V5->Native MIME+Haiku fields */
+
+#define IMSG_PREFERENCE_FORMATS 4 /* Count of known preference formats */
+
+#define IMSG_RFC822_MSG_SIZE_ITEM "$RFC822MessageSize" /* Message size field (used by POP3 client) */
+#define IMSG_RFC822_MSG_FILE_NAME "$RFC822.eml" /* Attached "MIME BLOB" name */
+#define IMSG_SMTP_ORIGINATOR_ITEM "SMTPOriginator" /* RFC821 message originator */
+#define IMSG_SMTP_RET_HDRS_ITEM "SMTPReturnHdrs" /* If HDRS, return only headers with non DSN */
+#define IMSG_SMTP_RET_HDRS_HDRS "HDRS"
+#define IMSG_SMTP_ENVID_ITEM "SMTPEnvid" /* If ESMTP DSN is supported, ENVID to relay */
+#define IMSG_SMTP_DSN_RCPTS_ITEM "SMTPDSNRecipients" /* If ESMTP DSN is supported, per rcpt info */
+#define IMSG_SMTP_DSN_DELIVERY_STATUS "SMTPDSNDeliveryStatus" /* RFC822 formatted delivery status */
+#define IMSG_SMTP_DSN_DELIVERY_REASON "SMTPDSNDeliveryReason" /* RFC822 free form (i.e., prose) delivery information */
+#define IMSG_SMTP_DSN_RECEIVED_ITEM "SMTPRcvd" /* Received items from the embedded rfc822 message in a Delivery Status Report */
+#define IMSG_SMTP_DSN_TYPE_ITEM "SMTPDSNType" /* Type of delivery status report (failed, delayed, relayed etc. */
+#define IMSG_SMTP_DSN_DATE_ITEM "SMTPDSNDate" /* Posted Date of the delivery status report */
+#define IMSG_SMTP_DSN_TYPE_FAILED_STR "0"
+#define IMSG_SMTP_DSN_TYPE_DELAYED_STR "1"
+#define IMSG_SMTP_DSN_TYPE_DELIVERED_STR "2"
+#define IMSG_SMTP_DSN_TYPE_RELAYED_STR "3"
+#define IMSG_SMTP_DSN_TYPE_EXPANDED_STR "4"
+
+#define ITEM_MIMEHEADERS "$MIMEHeaders"
+#define ITEM_MIMETRACK "$MIMETrack"
+#define ITEM_MIME_ENCAPSULATED "$MIMEEncapsulated"
+#define ITEM_IS_NATIVE_MIME "$NoteHasNativeMIME"
+#define ITEM_NOT_FROM_NOTES "$SMTPNotFromNotes"
+#define ITEM_KEEP_NOTES_ITEMS "$SMTPKeepNotesItems"
+
+#define ITEM_HEADERS_CONVERTED "$ExportHeadersConverted"
+
+/* Calendar profile form related */
+
+/* On a profile are eight fields that relate to when a users is available:
+
+ The AvailableDays item corresponds to the checkboxes allowing the user
+ to choose which days of the week they work. The resulting item
+ will be a textlist which contains the days of the week that they
+ work.
+ For the days of the week that the user does work, the time ranges are
+ read and for each day and assimilated into one item in the busytime
+ database that represents the days and time the user or resource
+ is available for scheduling.
+ The item is encoded as follows:
+ DateTime.Lower.Date - a day that corresponds to the day of the week
+ .Time - start time of an interval for that day the user works
+ .Upper.Date - the same day as the Lower
+ .Time - end time of an interval for that day the user works
+
+ These values will repeat for the various times during the day for
+ every day of the week that the user works.
+
+ (i.e. The default configuration will be: (for Monday through Friday)
+
+ A Monday, 9:00 AM - A Monday, 12:00 PM
+ A Monday, 1:00 PM - A Monday, 5:00 PM)
+
+ NOTE: The encoding does not care which real date is used, it just
+ determines what day of the week the date correspondes to..
+*/
+
+#define MAIL_CALENDAR_PROFILE_WORKDAYS_ITEM "$WorkDays"
+#define MAIL_CALENDAR_PROFILE_WORK_AVAILABLEDAYS_ITEM "$AvailableDays"
+#define MAIL_CALENDAR_PROFILE_TZDISPLAY_ITEM "fDisplayAltTimeZone"
+#define MAIL_CALENDAR_PROFILE_CURTIMEZONE_ITEM "CurrentTimeZone"
+#define MAIL_CALENDAR_PROFILE_ALTTIMEZONE_ITEM "AltTimeZone"
+#define MAIL_CALENDAR_PROFILE_CURTIMEZONELBL_ITEM "CurrentTZLabel"
+#define MAIL_CALENDAR_PROFILE_ROLLINGVIEW_ITEM "$RollingView"
+#define MAIL_CALENDAR_PROFILE_ALTTIMEZONELBL_ITEM "AltTZLabel"
+#define MAIL_CALENDAR_PROFILE_OWNER_ITEM "Owner" /* Owner field in calendar profile form */
+#define MAIL_CALENDAR_PROFILE_ALTOWNER_ITEM "AltOwner" /* AltOwner field in calendar profile form */
+#define MAIL_CALENDAR_PROFILE_LANGOWNER_ITEM "$LangOwner" /* LangOwner field in calendar profile form */
+#define MAIL_CALENDAR_PROFILE_WORK_WEEKDAYPREFIX "$Times"
+#define MAIL_CALENDAR_PROFILE_WORK_WEEKDAYSUFFIX ""
+#define MAIL_CALENDAR_PROFILE_WORK_SUNDAY_ITEM "$Times1"
+#define MAIL_CALENDAR_PROFILE_WORK_MONDAY_ITEM "$Times2"
+#define MAIL_CALENDAR_PROFILE_WORK_TUESDAY_ITEM "$Times3"
+#define MAIL_CALENDAR_PROFILE_WORK_WEDNESDAY_ITEM "$Times4"
+#define MAIL_CALENDAR_PROFILE_WORK_THURSDAY_ITEM "$Times5"
+#define MAIL_CALENDAR_PROFILE_WORK_FRIDAY_ITEM "$Times6"
+#define MAIL_CALENDAR_PROFILE_WORK_SATURDAY_ITEM "$Times7"
+#define MAIL_CALENDAR_PROFILE_ENABLE_ALARMS_ITEM "EnableAlarms"
+#define MAIL_CALENDAR_PROFILE_APPROVALLIST_ITEM "$ApprovalList"
+#define MAIL_CALENDAR_PROFILE_DEFAULTDURATION_ITEM "DefaultDuration"
+#define MAIL_CALENDAR_PROFILE_EXCLUDEFROMALL_ITEM "ExcludeFromAll"
+#define MAIL_CALENDAR_PROFILE_EXCLUDEFROMSENT_ITEM "ExcludeFromSent"
+#define MAIL_CALENDAR_PROFILE_FORWARDINVITEENOTIFICATIONTO_ITEM "CalForwardInviteeNotificationTo"
+#define MAIL_CALENDAR_PROFILE_FORWARDCHAIRNOTIFICATIONTO_ITEM "CalForwardChairNotificationTo"
+#define MAIL_CALENDAR_PROFILE_FORWARDNOTIFICATIONPRIVATEMODE_ITEM "CalForwardPrivateMode"
+#define MAIL_CALENDAR_PROFILE_AUTOPROCESSLIST_ITEM "AutoprocessUserList"
+#define MAIL_CALENDAR_PROFILE_AUTOPROCESSTYPE_ITEM "AutoprocessType"
+#define MAIL_CALENDAR_PROFILE_AUTOPROCESSFORWARDTO_ITEM "AutoprocessForwardTo"
+#define MAIL_CALENDAR_PROFILE_AUTOPROCESSMTGS_ITEM "AutoprocessMeetings"
+#define MAIL_CALENDAR_PROFILE_AUTOPROCESSCONFLICTOPTIONS_ITEM "AutoprocessConflictOptions"
+#define MAIL_CALENDAR_PROFILE_AUTOPROCESS_ITEMCONFLICTOPTIONS_ITEM "AutoprocessItemConflictOptions"
+#define MAIL_CALENDAR_PROFILE_V45AUTOPROCESSLIST_ITEM "MeetingsPeople"
+#define MAIL_CALENDAR_PROFILE_AUTOREMOVEFROMINBOX_ITEM "AutoRemoveFromInbox"
+#define MAIL_CALENDAR_PROFILE_ALARMSENABLED_ITEM "EnableAlarms"
+#define MAIL_CALENDAR_PROFILE_ALARMAPPTLEAD_ITEM "AppointmentLead"
+#define MAIL_CALENDAR_PROFILE_ALARMANNLEAD_ITEM "AnniversaryLead"
+#define MAIL_CALENDAR_PROFILE_ALARMEVENTLEAD_ITEM "EventLead"
+#define MAIL_CALENDAR_PROFILE_ALARMREMINDERLEAD_ITEM "ReminderLead"
+#define MAIL_CALENDAR_PROFILE_ALARMTODOLEAD_ITEM "TaskLead"
+/* Tasks are now called ToDos. Define the old deprecated name as alias to new */
+#define MAIL_CALENDAR_PROFILE_ALARMTASKLEAD_ITEM MAIL_CALENDAR_PROFILE_ALARMTODOLEAD_ITEM
+#define MAIL_CALENDAR_PROFILE_ALARMAPPTENABLED_ITEM "SetAlarmAppointment"
+#define MAIL_CALENDAR_PROFILE_ALARMANNENABLED_ITEM "SetAlarmAnniversary"
+#define MAIL_CALENDAR_PROFILE_ALARMEVENTENABLED_ITEM "SetAlarmEvent"
+#define MAIL_CALENDAR_PROFILE_ALARMREMINDERENABLED_ITEM "SetAlarmReminder"
+#define MAIL_CALENDAR_PROFILE_ALARMTODOENABLED_ITEM "SetAlarmTask"
+/* Tasks are now called ToDos. Define the old deprecated name as alias to new */
+#define MAIL_CALENDAR_PROFILE_ALARMTASKENABLED_ITEM MAIL_CALENDAR_PROFILE_ALARMTODOENABLED_ITEM
+#define MAIL_CALENDAR_PROFILE_ALARMITEM_DISABLED '0'
+#define MAIL_CALENDAR_PROFILE_ALARMITEM_ENABLED '1'
+#define MAIL_CALENDAR_PROFILE_CONFLICT_APPOINTMENT_ITEM "ConflictMeeting"
+#define MAIL_CALENDAR_PROFILE_CONFLICT_ANNIVERSARY_ITEM "ConflictAnniversary"
+#define MAIL_CALENDAR_PROFILE_CONFLICT_EVENT_ITEM "ConflictEvent"
+#define MAIL_CALENDAR_PROFILE_CONFLICTITEM_DISABLED '0'
+#define MAIL_CALENDAR_PROFILE_CONFLICTITEM_ENABLED '1'
+#define MAIL_CALENDAR_PROFILE_PREVENTREPLIESINBOX_ITEM "PreventRepliesFromInbox"
+#define MAIL_CALENDAR_PROFILE_CALENDARMANAGER_ITEM "CalendarManager"
+#define MAIL_CALENDAR_PROFILE_MANAGECALENDARSFOR_ITEM "ManageCalendarsFor"
+#define MAIL_CALENDAR_PROFILE_BUSYTIMEHARVESTOPTOUT_ITEM "BusyTimeHarvestOptOut"
+#define MAIL_CALENDAR_PROFILE_BUSYTIMEHARVESTOPTOUT_DISABLED '0'
+#define MAIL_CALENDAR_PROFILE_BUSYTIMEHARVESTOPTOUT_DISABLED_STR "0"
+#define MAIL_CALENDAR_PROFILE_BUSYTIMEHARVESTOPTOUT_ENABLED '1'
+#define MAIL_CALENDAR_PROFILE_BUSYTIMEHARVESTOPTOUT_ENABLED_STR "1"
+#define MAIL_CALENDAR_PROFILE_ALLOWBUSYDETAILSACCESS_ITEM "AllowBusyDetailsAccess"
+#define MAIL_CALENDAR_PROFILE_DETAILINDEX_ITEM "DetailIndex"
+#define MAIL_CALENDAR_PROFILE_DETAILPREFIX "Detail_"
+#define MAIL_CALENDAR_PROFILE_EXTERNAL_ADDRESS "ExternalAddress"
+#define MAIL_CALENDAR_PROFILE_ALWAYS_AVAILABLE "AlwaysAvailable"
+#define MAIL_CALENDAR_PROFILE_CONTROVERSIALFIELDS_ITEM "ControversialFields" /* Controversial Calendar details to harvest */
+
+
+/* Mail delegation profile form related */
+
+#define MAIL_DELEGATION_PROFILE_OWNER_ITEM "Owner"
+#define MAIL_DELEGATION_ALLOWBUSYACCESS_ITEM "AllowBusyAccess"
+#define MAIL_DELEGATION_ALLOWDETAILACCESS_ITEM "AllowDetailAccess"
+#define MAIL_DELEGATION_DISABLEALLDETAILACCESS_ITEM "DisableAllDetailAccess"
+
+#define MAIL_UIDL_ITEM "MailPop3UIDL"
+
+/*BEGIN_SAMETIME*/
+/* Online meeting (Sametime) Calendaring & Scheduling related item names */
+#define MAIL_CS_ST_ONLINEPLACETORESERVE_ITEM "OnlinePlaceToReserve"
+#define MAIL_CS_ST_ONLINEPLACE_ITEM "OnlinePlace"
+
+#define MAIL_CS_ST_SAMETIMESERVER_ITEM "SametimeServer"
+#define MAIL_CS_ST_ONLINEMEETINGFLAG_ITEM "OnlineMeetingFlag"
+#define MAIL_CS_ST_MEETINGTYPE_ITEM "MeetingType"
+#define MAIL_CS_ST_RESTRICTEDTOINVITELIST_ITEM "RestrictToInviteList"
+#define MAIL_CS_ST_RESTRICTEDTOINVITEFLAG_ITEM "RestrictAttendence"
+#define MAIL_CS_ST_ALLOWATTACHMENTVIEWING_ITEM "AllowAttachmentViewing"
+#define MAIL_CS_ST_WHITEBOARDCONTENT_ITEM "WhiteBoardContent"
+#define MAIL_CS_ST_APPTUNIDURL_ITEM "ApptUNIDURL"
+#define MAIL_CS_ST_CONFERENCEDATABASE_ITEM "ConferenceDatabase"
+#define MAIL_CS_ST_ONLINEMEETINGFLAG_ITEM "OnlineMeetingFlag"
+#define MAIL_CS_ST_FILELIST_ITEM "FileList"
+#define MAIL_CS_ST_SENDATTACHMENTS_ITEM "SendAttachments"
+#define MAIL_CS_ST_AUDIOVIDEOFLAGS_ITEM "AudioVideoFlags"
+#define MAIL_CS_ST_SAMETIMESERVERNETADDRESS_ITEM "SametimeServerNetAddress"
+#define MAIL_CS_ST_MODERATOR_ITEM "Moderator"
+#define MAIL_CS_ST_PRESENTERS_ITEM "Presenters"
+#define MAIL_CS_ST_MEETINGPASSWORD_ITEM "MeetingPassword"
+#define MAIL_CS_ST_ONLINEMEETING_ITEM "OnlineMeeting"
+
+/* Saved transcript related item names */
+#define IM_TRANSCRIPT_ITEM "$IMTranscript"
+#define IM_ORIGINATOR_ITEM "$IMOriginator"
+
+/*END_SAMETIME*/
+
+
+
+
+/* Calendaring & Scheduling related item names */
+#define MAIL_CS_PERSONAL_NOTES_ITEM "Notes" /* Personal meeting notes item */
+#define MAIL_CS_KEEPPOSTED_ITEM "KeepPosted" /* Determines if participant wants to be kept notified of updates */
+#define MAIL_CS_KEEPPOSTED_DISABLED '0'
+#define MAIL_CS_KEEPPOSTED_ENABLED '1'
+
+#define MAIL_CS_SEQUENCENUM_ITEM "SequenceNum" /* Sequence # of event notice */
+#define MAIL_CS_UPDATE_SEQUENCENUM_ITEM "UpdateSeq" /* Update sequence # of event */
+
+#define MAIL_CS_NOTICETYPE_ITEM "NoticeType" /* Type of notice being sent */
+#define MAIL_CS_ORIGINAL_NOTICETYPE_ITEM "OriginalNoticeType"
+
+#define MAIL_CS_ASSIGNSTATE_ITEM "AssignState" /* Used by todos for communicating status */
+#define MAIL_CS_CSVERSION_ITEM "$CSVersion"
+#define MAIL_CS_APPOINTMENTTYPE_ITEM "AppointmentType"
+#define MAIL_CS_TODOTYPE_ITEM "TaskType" /* The type of todo. Item is "TaskType" for backwards compat */
+/* Tasks are now called ToDos. Define the old deprecated name as alias to new */
+#define MAIL_CS_TASKTYPE_ITEM MAIL_CS_TODOTYPE_ITEM
+#define MAIL_CS_CHAIR_ITEM "Chair"
+#define MAIL_CS_CHAIRDOMAIN_ITEM "ChairDomain"
+#define MAIL_CS_DELEGATOR_ITEM "Delegator"
+#define MAIL_CS_ALTDELEGATOR_ITEM "AltDelegator"
+#define MAIL_CS_LANGDELEGATOR_ITEM "$LangDelegator"
+#define MAIL_CS_DELEGATETO_ITEM "Delegee"
+#define MAIL_CS_REQUIREDATTENDEES_ITEM "RequiredAttendees"
+#define MAIL_CS_OPTIONALATTENDEES_ITEM "OptionalAttendees"
+#define MAIL_CS_FYIATTENDEES_ITEM "FYIAttendees"
+#define MAIL_CS_REQUIREDASSIGNEES_ITEM "AssignedTo"
+#define MAIL_CS_OPTIONALASSIGNEES_ITEM "OptionalAssignedTo"
+#define MAIL_CS_ALTCHAIR_ITEM "AltChair"
+#define MAIL_CS_LANGCHAIR_ITEM "$LangChair"
+#define MAIL_CS_FYIASSIGNEES_ITEM "FYIAssignedTo"
+#define MAIL_CS_ROOMTORESERVE_ITEM "RoomToReserve"
+#define MAIL_CS_ROOM_ITEM "Room"
+#define MAIL_CS_RESOURCESTORESERVE_ITEM "Resources"
+#define MAIL_CS_RESOURCES_ITEM "RequiredResources"
+#define MAIL_CS_BOOKFREETIME_ITEM "BookFreeTime"
+#define MAIL_CS_BOOKFREETIME_DISABLED '0'
+#define MAIL_CS_BOOKFREETIME_ENABLED '1'
+#define MAIL_CS_REMOVEDNAMES_ITEM "Uninvited"
+#define MAIL_CS_TOREMOVENAMES_ITEM "tmpRemoveNames"
+#define MAIL_CS_TOREMOVERRNAMES_ITEM "tmpRemoveRRNames"
+#define MAIL_CS_TMPOWNER_ITEM "tmpOwner"
+#define MAIL_CS_TOPIC_ITEM "Topic"
+#define MAIL_CS_DUESTATE_ITEM "DueState"
+#define MAIL_CS_RESOURCENAME_ITEM "ResourceName"
+#define MAIL_CS_STATUS_ITEM "Status"
+#define MAIL_CS_STARTDATE_ITEM "StartDate"
+#define MAIL_CS_STARTTIME_ITEM "StartTime"
+#define MAIL_CS_STARTTIMEZONE_ITEM "StartTimeZone"
+#define MAIL_CS_ENDDATE_ITEM "EndDate"
+#define MAIL_CS_ENDTIME_ITEM "EndTime"
+#define MAIL_CS_ENDTIMEZONE_ITEM "EndTimeZone"
+#define MAIL_CS_DUEDATETIME_ITEM "DueDateTime"
+#define MAIL_CS_APPENDSTARTTIME_ITEM "AppendStartTime"
+#define MAIL_CS_APPENDENDTIME_ITEM "AppendEndTime"
+#define MAIL_CS_APPTUNID_ITEM "ApptUNID"
+#define MAIL_CS_CALENDARDATETIME_ITEM "CalendarDateTime"
+#define MAIL_CS_TIMERANGE_ITEM "TimeRange"
+#define MAIL_CS_NEWDATE_ITEM "NewDate"
+#define MAIL_CS_NEWTIMERANGE_ITEM "NewTimeRange"
+#define MAIL_CS_NEWROOM_ITEM "NewRoom"
+#define MAIL_CS_NEWSTARTDATE_ITEM "NewStartDate"
+#define MAIL_CS_NEWSTARTTIME_ITEM "NewStartTime"
+#define MAIL_CS_NEWENDDATE_ITEM "NewEndDate"
+#define MAIL_CS_NEWENDTIME_ITEM "NewEndTime"
+#define MAIL_CS_NEWSTARTTIMEZONE_ITEM "NewStartTimeZone"
+#define MAIL_CS_NEWENDTIMEZONE_ITEM "NewEndTimeZone"
+#define MAIL_CS_BROADCAST_ITEM "Broadcast"
+#define MAIL_CS_BROADCAST_DISABLED '0'
+#define MAIL_CS_BROADCAST_ENABLED '1'
+#define MAIL_CS_DUEDATE_ITEM "DueDate"
+#define MAIL_CS_FLAGS_ITEM "$CSFlags"
+#define MAIL_CS_MAILINDB_ITEM "MailInDatabaseList"
+#define MAIL_CS_GROUP_REFRESHMODE_ITEM "$GroupScheduleRefreshMode"
+#define MAIL_CS_REFRESH_OPTIMAL '0'
+#define MAIL_CS_REFRESH_FULL '1'
+#define MAIL_CS_LEGEND_ENABLED_ITEM "$GroupScheduleShowLegend"
+#define MAIL_CS_LEGEND_DISABLED '0'
+#define MAIL_CS_LEGEND_ENABLED '1'
+#define MAIL_CS_COMPLETEDDATETIME_ITEM "CompletedDateTime"
+#define MAIL_CS_PREVENTREPLIES_ITEM "$PreventReplies"
+#define MAIL_CS_PREVENTREPLIES_DISABLED '0'
+#define MAIL_CS_PREVENTREPLIES_ENABLED '1'
+#define MAIL_CS_RESERVATION_PURPOSE_ITEM "Purpose"
+#define MAIL_CS_PREVDELEGEE_ITEM "PrevDelegee"
+#define MAIL_CS_PREVENTDELEGATION_ITEM "PreventDelegate"
+#define MAIL_CS_PREVENTDELEGATION_DISABLED '0'
+#define MAIL_CS_PREVENTDELEGATION_ENABLED '1'
+#define MAIL_CS_PREVENTCOUNTER_ITEM "PreventCounter"
+#define MAIL_CS_RESOURCEOWNER_ITEM "ResourceOwner"
+#define MAIL_CS_ALTREQUIRED_ITEM "AltRequiredNames"
+#define MAIL_CS_ALTOPTIONAL_ITEM "AltOptionalNames"
+#define MAIL_CS_ALTFYI_ITEM "AltFYINames"
+#define MAIL_CS_ALTDELEGATETO_ITEM "AltDelegeeName"
+#define MAIL_CS_LANGDELEGATETO_ITEM "$LangDelegee"
+#define MAIL_CS_INETREQUIRED_ITEM "INetRequiredNames"
+#define MAIL_CS_INETOPTIONAL_ITEM "INetOptionalNames"
+#define MAIL_CS_INETFYI_ITEM "INetFYINames"
+#define MAIL_CS_STORAGEREQUIRED_ITEM "StorageRequiredNames"
+#define MAIL_CS_STORAGEOPTIONAL_ITEM "StorageOptionalNames"
+#define MAIL_CS_STORAGEFYI_ITEM "StorageFYINames"
+#define MAIL_CS_STATUS_UPDATE "StatusUpdate" /* contains comment for accept/decline/delegate with comment */
+#define MAIL_CS_TRACK_ITEM "$CSTrack"
+#define MAIL_CS_MANAGEDFOR_ITEM "ManagedFor"
+#define MAIL_CS_AUTOPROCESSINFO_ITEM "$AutoprocessInfo"
+#define MAIL_CS_ACTIONTYPE_ITEM "ActionType" /* Contains action in progress for Managed Update */
+#define MAIL_CS_MGRSECTION_ITEM "CalendarMgrSection"
+#define MAIL_CS_COPYITEMS "$CSCopyItems"
+#define MAIL_CS_SENDMEMOFROM_ITEM "$CSMemoFrom"
+#define MAIL_CS_ORIGINAL_DELEGATOR "OriginalDelegator"
+#define MAIL_CS_DELEGATETO_LIST "DelegateToList"
+
+#define MAIL_CS_WI_MODIFIED_ITEM "$WFModified" /* Used to indicate which Watched Items have been modified*/
+#define MAIL_CS_WISL_ITEM "$CSWISL" /* Watched Item Sequence List */
+#define MAIL_CS_WATCHEDITEMS_ITEM "$WatchedItems" /* Tells us which items are supposed to be watched */
+#define MAIL_CS_NO_TZONE_ITEM "NoTZInfo" /* Used to indicate that there is no Timezone info on the note (TZ info was introduced in R6) */
+
+#define MAIL_CS_MINIVIEW_ITEM "$MiniView" /* if one, notice appears in the miniview */
+ /* if zero or empty value, notice does not appear in the miniview */
+#define MAIL_CS_MINIVIEW_YES '1'
+#define MAIL_CS_MINIVIEW_NO '0'
+
+#define MAIL_CS_FROMPREFERREDLANG_ITEM "$FromPreferredLanguage"
+
+#define MAIL_CS_RNR_REQUEST_STATUS_ITEM "RQStatus" /* R7: R&R Request status item */
+#define MAIL_CS_RNR_REQUEST_TENTATIVE 'T' /* R7: Tenatively booked; awaiting RnRMgr approval */
+#define MAIL_CS_RNR_REQUEST_ACCEPTED 'A' /* R7: Accepted; approved and processed by RnRMgr */
+#define MAIL_CS_RNR_REQUEST_REJECTED 'R' /* R7: Rejected; denied by RnRMgr */
+#define MAIL_CS_RNR_REQUEST_PROCESSED 'P' /* R7: Processed; belongs outside R&R so it was processed by RnRMgr */
+
+#define MAIL_CS_RNR_BLOCKER_ITEM "$CSBlocker" /* R7: R&R Request 'blocker' indicator item, put on R7 request that
+ ** blocks other reservations beyond a particular date.
+ */
+
+#define RNR_SERVER_PROFILE_FORM "ServerProfile" /* R7: R&R Server Profile form name */
+
+/* The following are new R&R related items / values for D7 related to the new
+** RnRMgr and R&R autoprocessing and server status. They are used on R&R server
+** profile docs stored in the busytime dB OR in CLDBDIR.NSF
+*/
+#define RNR_SERVER_FULLYINIT_ITEM "FullyInitd" /* R7: R&R Server fully initialized status */
+#define RNR_SERVER_FULLYINIT_YES 'Y' /* R7: R&R Server is "fully initialized" */
+#define RNR_SERVER_FULLYINIT_NO 'N' /* R7: R&R Server is NOT "fully initialized" */
+
+#define RNR_SERVER_TOOKCONTROL_ITEM "TookControl" /* R7: TIMEDATE when R&R Server took autoprocessing control */
+#define RNR_SERVER_RETURNCONTROL_ITEM "ReturnControl" /* R7: TIMEDATE when R&R Server returned autoprocessing control
+ ** to the Home Server.
+ */
+#define RNR_DECLINE_REASON_ITEM "DeclineReason" /* R5(?): Item indication why, typically, owner rejected the reservation.
+ ** For R7 we now have RnRMgr adding text such as 'Invalid interval...', etc
+ */
+
+/* C&S Repeating Entry item names */
+
+#define MAIL_CS_ORGREPEAT_ITEM "OrgRepeat"
+#define MAIL_CS_ORGTABLE_ITEM "OrgTable"
+#define MAIL_CS_ORGCONFIDENTIAL_ITEM "OrgConfidential"
+#define MAIL_CS_REPEATS_ITEM "Repeats"
+#define MAIL_CS_REPEAT_DATES_ITEM "RepeatDates"
+#define MAIL_CS_REPEAT_END_DATES_ITEM "RepeatEndDates" /* new with Notes6 */
+#define MAIL_CS_REPEAT_INSTANCE_DATES_ITEM "RepeatInstanceDates"
+#define MAIL_CS_REPEAT_BASE_DATE_ITEM "OriginalStartDate"
+#define MAIL_CS_REPEAT_START_DATE_ITEM "RepeatStartDate"
+#define MAIL_CS_REPEAT_FOR_ITEM "RepeatFor"
+#define MAIL_CS_REPEAT_FORUNIT_ITEM "RepeatForUnit"
+#define MAIL_CS_REPEAT_UNIT_ITEM "RepeatUnit"
+#define MAIL_CS_REPEAT_ADJUST_ITEM "RepeatAdjust"
+#define MAIL_CS_REPEAT_UNTIL_ITEM "RepeatUntil"
+#define MAIL_CS_REPEAT_INTERVAL_ITEM "RepeatInterval"
+#define MAIL_CS_REPEAT_CUSTOM_ITEM "RepeatCustom"
+#define MAIL_CS_REPEAT_WEEKENDS_ITEM "RepeatWeekends"
+#define MAIL_CS_REPEAT_HOW_ITEM "RepeatHow"
+#define MAIL_CS_REPEAT_STARTFROMEND_ITEM "RepeatFromEnd"
+#define MAIL_CS_REPEAT_IDS_ITEM "RepeatIds"
+#define MAIL_CS_REPEAT_LOOKUP_ITEM "$RepeatLookup"
+#define MAIL_CS_REPEAT_CHANGEWHICH_ITEM "RescheduleWhich"
+#define MAIL_CS_REPEAT_CHANGEINSTANCEDATES_ITEM "RescheduleInstanceDates" /* new with Notes6 */
+#define MAIL_CS_REPEAT_CHANGESTARTDATETIMES_ITEM "RescheduleStartDateTimes" /* new with Notes6 */
+#define MAIL_CS_REPEAT_CHANGEENDDATETIMES_ITEM "RescheduleEndDateTimes" /* new with Notes6 */
+#define MAIL_CS_REPEAT_ORIGINALENDDATE_ITEM "OriginalEndDate"
+#define MAIL_CS_REPEAT_PARENTREPEATDATES_ITEM "ParentRepeatDates"
+#define MAIL_CS_REPEAT_PARENTREPEATINSTANCEDATES_ITEM "ParentRepeatInstanceDates"
+#define MAIL_CS_REPEAT_INSTANCE_LOOKUP_ITEM "$RepeatInstanceLookup"
+#define MAIL_CS_REPEAT_CACHEINSTANCE_ITEM "$RepeatCacheInstanceDate"
+#define MAIL_CS_REPEAT_CONFLICTDATES_ITEM "tmpRepeatConflictDates"
+#define MAIL_CS_ORIGINAL_STARTTIMEZONE_ITEM "OriginalStartTimeZone"
+#define MAIL_CS_ORIGINAL_ENDTIMEZONE_ITEM "OriginalEndTimeZone"
+#define MAIL_CS_REPEAT_RESCHEDULEOPTION "tmpRepeatAdvancedOption"
+#define MAIL_CS_REPEAT_SELECTEDDATES "tmpSelectedDateList"
+#define MAIL_CS_REPEAT_SELECTEDSTARTDATES "tmpSelectedStartDateList"
+#define MAIL_CS_REPEAT_SELECTEDENDDATES "tmpSelectedEndDateList"
+
+/* Notes 4 specific CS fields */
+
+#define MAIL_CS_4_TO_5UPGRADE "$CS4to5upgrade"
+#define MAIL_CS_4_TO_5NOT_GERMANE "$CS4to5UpGradeNotGermane"
+#define MAIL_CS_4_TO_5UPGRADE_DRAFT "$CS4to5upgrade_draft"
+#define MAIL_CS_4_REMINDER_TIME "ReminderTime"
+#define MAIL_CS_4_DURATION "Duration"
+#define MAIL_CS_4_ORGDONTDOUBLEBOOK "ORGDONTDOUBLEBOOK"
+#define MAIL_CS_4_INVITEE_NAME "InviteeName"
+
+/* C&S Alarm item names */
+
+#define MAIL_CS_ALARMENABLED_ITEM "$Alarm"
+#define MAIL_CS_ALARMSOUND_ITEM "$AlarmSound"
+#define MAIL_CS_ALARMDESCRIPTION_ITEM "$AlarmDescription"
+#define MAIL_CS_ALARMSENDTO_ITEM "$AlarmSendTo"
+#define MAIL_CS_ALARMOFFSET_ITEM "$AlarmOffset"
+#define MAIL_CS_ALARMTIME_ITEM "$AlarmTime"
+#define MAIL_CS_ALARMDISABLED_ITEM "$AlarmDisabled"
+#define MAIL_CS_ALARMDISABLED_DISABLED '0'
+#define MAIL_CS_ALARMDISABLED_ENABLED '1'
+#define MAIL_CS_ALARMOFFSETUNIT_ITEM "$AlarmUnit"
+#define MAIL_CS_ALARMMAILOPTIONS_ITEM "$AlarmMemoOptions"
+
+
+/* POP3 view names */
+#define MAIL_POP3_UIDL_VIEW "($POP3UIDL)"
+#define POP3_VIEW "($POP3)"
+
+/* Quota form item names */
+
+#define MAIL_QUOTA_ACTION_ITEM "$QuotaAction" /* Action taken on original message causing quota report */
+#define MAIL_QUOTA_REPORT_ITEM "$QuotaType" /* Over warning or over quota report */
+#define MAIL_QUOTA_ORIG_SIZE_ITEM "$QuotaOrigMsgSize" /* Size of original note triggering a quota report. */
+#define MAIL_QUOTA_ORIG_SUBJECT_ITEM "$QuotaOrigSubject" /* Original Subject */
+#define MAIL_QUOTA_ORIG_FROM_ITEM "$QuotaOrigFrom" /* Original From item */
+#define MAIL_QUOTA_ORIG_SENDTO_ITEM "$QuotaOrigSendTo" /* Original SendTo item */
+#define MAIL_QUOTA_ORIG_COPYTO_ITEM "$QuotaOrigCopyTo" /* Original CopyTo item */
+#define MAIL_QUOTA_ORIG_BCCTO_ITEM "$QuotaOrigBccTo" /* Original BlindCopyTo item */
+#define MAIL_QUOTA_SIZELIMIT_ITEM "$QuotaSizeLimit" /* DB sizelimit in k bytes */
+#define MAIL_QUOTA_WARNINGTHRESHOLD_ITEM "$QuotaWarningThreshold" /* DB warning threshold in k bytes */
+#define MAIL_QUOTA_CURRENTUSAGE_ITEM "$QuotaCurrentUsage" /* Current amount of DB usage k bytes */
+#define MAIL_QUOTA_METHOD_ITEM "$QuotaMethod" /* Quota enforcement method - filesize or usage*/
+#define MAIL_QUOTA_CURRENTSIZE_ITEM "$QuotaCurrentDbSize" /* Current DB size in k bytes */
+#define MAIL_ADMIN_TEXT_ITEM "$MailAdminText" /* Administrator specified text content */
+#define MAIL_QUOTA_WARNING_TIME_ITEM "$QuotaLastWarningTime" /* Last warning report time */
+#define MAIL_QUOTA_ERROR_TIME_ITEM "$QuotaLastErrorTime" /* Last time of error quota report */
+
+/* Mail form names */
+
+#define MAIL_MEMO_FORM "Memo" /* Standard memo */
+#define MAIL_REPLY_FORM "Reply" /* Standard memo reply */
+#define MAIL_REPLY_WITH_HISTORY_FORM "Reply With History" /* Standard reply w/history memo */
+#define MAIL_PHONEMESSAGE_FORM "Phone Message" /* Phone message */
+#define MAIL_DELIVERYREPORT_FORM "Delivery Report" /* Delivery report form name */
+#define MAIL_NONDELIVERYREPORT_FORM "NonDelivery Report" /* Non-Delivery report form name */
+#define MAIL_RETURNRECEIPT_FORM "Return Receipt" /* Return Receipt form name */
+#define MAIL_DATABASEENTRY_FORM "Database Entry" /* mailin database entry form for libraries */
+#define MAIL_TRACEREPORT_FORM "Trace Report" /* Trace report form name */
+#define MAIL_QUOTAREPORT_FORM "Quota Report" /* Quota report form name */
+#define MAIL_CALENDAR_PROFILE_FORM "CalendarProfile" /* Calendar profile form name */
+#define MAIL_DELEGATION_PROFILE_FORM "DelegationProfile" /* Delegation profile form name */
+#define MAIL_APPOINTMENT_FORM "Appointment" /* C & S Appointment form name */
+#define MAIL_NOTICE_FORM "Notice" /* C & S Meeting Notice form name */
+#define MAIL_RESOURCE_RESERVATION_FORM "Reservation" /* C & S Resource reservation form name */
+#define MAIL_RESOURCE_PROFILE_FORM "Resource" /* C & S Calendar resource profile form name */
+#define MAIL_TODO_FORM "Task" /* C & S Todo form name */
+#define MAIL_REPEAT_CACHE_FORM "RepeatCache" /* C&S Repeat Cache profile note name */
+#define MAIL_TODO_NOTICE_FORM "TaskNotice" /* C&S Todo notice workflow form */
+
+/* Tasks are now called ToDos. Define the old deprecated names as alias to new.
+ * The actual form names, e.g., "Task" have not changed to allow on-disk
+ * backwards compatibility
+ */
+#define MAIL_TASK_FORM MAIL_TODO_FORM
+#define MAIL_TASK_NOTICE_FORM MAIL_TODO_NOTICE_FORM
+
+#define MAIL_MAILRULE_FORM "Mailrule"
+
+
+/* Address Book - "Person" form item names */
+
+#define MAIL_PERSON_FORM "Person" /* Form and type name */
+#define MAIL_FORMTYPE_ITEM "Type" /* Form type */
+#define MAIL_FULLNAME_ITEM "FullName" /* Full name */
+#define MAIL_FIRSTNAME_ITEM "FirstName" /* First name */
+#define MAIL_LASTNAME_ITEM "LastName" /* Last name */
+#define MAIL_RANAME_ITEM "RAName" /* RA name */
+#define MAIL_MIDDLEINITIAL_ITEM "MiddleInitial" /* Middle initial or name */
+#define MAIL_SHORTNAME_ITEM "ShortName" /* Short name (for mail gateways) */
+#define MAIL_INTERNETADDRESS_ITEM "InternetAddress" /* InternetAddress */
+#define MAIL_OWNER_ITEM "Owner" /* Entry owner name */
+#define MAIL_MAILSYSTEM_ITEM "MailSystem" /* Mail system item (keyword field: 1,2,3,4) */
+#define MAIL_MAILSERVER_ITEM "MailServer" /* Mail server name */
+#define MAIL_MAILFILE_ITEM "MailFile" /* Mail file name */
+#define MAIL_MAILDOMAIN_ITEM "MailDomain" /* Mail domain name */
+#define MAIL_MAILADDRESS_ITEM "MailAddress" /* Mail auto-forwarding address */
+#define MAIL_PUBLICKEY_ITEM "PublicKey" /* Public encryption key */
+#define MAIL_CERTIFICATE_ITEM "Certificate" /* Public encryption key */
+#define MAIL_ROLLOVER_CERT_ITEM "RolloverCert" /* Key rollover cert */
+#define MAIL_USERCERTIFICATE_ITEM "UserCertificate" /* X.509 Public encryption key */
+#define MAIL_LOCATION_ITEM "Location" /* Location field */
+#define MAIL_COMMENT_ITEM "Comment" /* Comment field */
+#define MAIL_USERID_ATTACHMENT "UserID" /* User ID attachment file name */
+#define MAIL_SERVERID_ATTACHMENT "ServerID" /* Server ID attachment file name */
+#define MAIL_CALENDARDOMAIN_ITEM "CalendarDomain" /* User's calendar domain override */
+#define MAIL_NETUSERNAME_ITEM "NetUserName" /* Network Acct Name (for dir synching) */
+#define MAIL_HTTPPASSWORD_ITEM "HTTPPassword" /* http password */
+#define MAIL_HASHVERSION_ITEM "$SecurePassword" /* Flag that indicates NoteUpdate should hash HTTPPassword field */
+#define MAIL_STORAGE_ITEM "MessageStorage" /* Specifies how user wants to store the mail. See IMSG_PREFERENCE_XXX */
+#define MAIL_OFFICEPHONE_ITEM "OfficePhoneNumber" /* Office phone number */
+#define MAIL_COMPANYNAME_ITEM "CompanyName" /* Company name */
+#define MAIL_COUNTRY_ITEM "Country" /* Country */
+#define MAIL_DEPARTMENT_ITEM "Department" /* Department */
+#define MAIL_OTHER_EMAIL1 "MiscPhone1"
+#define MAIL_OTHER_EMAIL2 "MiscPhone2"
+#define MAIL_OTHER_EMAIL3 "MiscPhone3"
+#define MAIL_BIRTHDAY "Birthday"
+#define MAIL_ANNIVERSARY "Anniversary"
+
+#define MAIL_ALTFULLNAME_ITEM "AltFullName" /* Alternate FullName */
+#define MAIL_ALTFULLNAMELANGUAGE_ITEM "AltFullNameLanguage" /* Language Tag. */
+#define MAIL_PROPALTCOMMONNAME_ITEM "ProposedAltCommonName" /* Proposed Alternate CommonName */
+#define MAIL_PROPALTORGUNIT_ITEM "ProposedAltOrgUnit" /* Proposed Alternate OrgUnit */
+#define MAIL_PROPALTFULLNAMELANGUAGE_ITEM "ProposedAltFullNameLanguage" /* Proposed Language Tag. */
+
+#define HTTP_PASSWORD_ITEM "HTTPPassword" /* http password */
+#define HTTP_PASSWORD_CHANGE_DATE_ITEM "HTTPPasswordChangeDate" /* http password last change date*/
+#define HTTP_PASSWORD_CHANGE_INTERVAL_ITEM "HTTPPasswordChangeInterval" /* http password change interval*/
+#define HTTP_PASSWORD_OPTIONS_ITEM "HTTPPasswordOptions" /* http password options */
+#define HTTP_PASSWORD_QUAILITY_ITEM "HTTPPasswordQuality" /* http password quality */
+#define HTTP_PASSWORD_NOTES_SYNC_ITEM "HTTPPasswordNotesSync" /* Sync Notes pw with http pw */
+
+/* Address Book - Mail-in "Database" form item names. Uses Person form
+ fields: FullName, MailServer, MailFile, and MailDomain" */
+
+#define MAIL_MAILINDATABASE_FORM "Database" /* Form and type name */
+#define MAIL_DESCRIPTION_ITEM "Description" /* Mail-in db description item */
+#define MAIL_HAIKU_ITEM "$QuickPlace" /* QuickPlace mail database */
+
+/* MAPI specific items */
+
+#define MAIL_MAPI_MSGFLAGS_ITEM "$MapiMessageFlags" /* MAPI IMessage PR_MESSAGE_FLAGS Property */
+#define MAIL_MAPI_MSGCLASS_ITEM "$MapiMessageClass" /* MAPI IMessage PR_MESSAGE_CLASS Property */
+#define MAIL_MAPI_STATUS_ITEM "$MapiStatus" /* MAPI PR_MSG_STATUS, PR_STATUS Properties */
+#define MAIL_MAPI_ACCESS_ITEM "$MapiAccess" /* MAPI PR_ACCESS, PR_ACCESS_LEVEL Properties */
+#define MAIL_MAPI_TO_ADDRTYPE_ITEM "$MapiSendToAddrType"/* MAPI Recip PR_ADDRTYPE Property for To List */
+#define MAIL_MAPI_CC_ADDRTYPE_ITEM "$MapiSendCcAddrType"/* MAPI Recip PR_ADDRTYPE Property for Cc List*/
+#define MAIL_MAPI_BCC_ADDRTYPE_ITEM "$MapiSendBccAddrType"/* MAPI Recip PR_ADDRTYPE Property for Bcc List*/
+#define MAIL_MAPI_TO_RESP_ITEM "$MapiSendToResponsibility"/* MAPI Recip PR_RESPONSIBILITY Property for To List */
+#define MAIL_MAPI_CC_RESP_ITEM "$MapiSendCcResponsibility"/* MAPI Recip PR_RESPONSIBILITY Property for Cc List */
+#define MAIL_MAPI_BCC_RESP_ITEM "$MapiSendBccResponsibility"/* MAPI Recip PR_RESPONSIBILITY Property for Bcc List */
+#define MAIL_MAPI_TO_EID_ITEM "$MapiSendToEID" /* MAPI Recip PR_ENTRYID Property for To List */
+#define MAIL_MAPI_CC_EID_ITEM "$MapiSendCcEID" /* MAPI Recip PR_ENTRYID Property for Cc List */
+#define MAIL_MAPI_BCC_EID_ITEM "$MapiSendBccEID" /* MAPI Recip PR_ENTRYID Property for Bcc List */
+#define MAIL_MAPI_TO_OT_ITEM "$MapiSendToObjType" /* MAPI Recip PR_OBJECT_TYPE Property for To List */
+#define MAIL_MAPI_CC_OT_ITEM "$MapiSendCcObjType" /* MAPI Recip PR_OBJECT_TYPE Property for Cc List */
+#define MAIL_MAPI_BCC_OT_ITEM "$MapiSendBccObjType" /* MAPI Recip PR_OBJECT_TYPE Property for Bcc List */
+#define MAIL_MAPI_TO_TRACKSTATUS_ITEM "$MapiSendToTrackStatus"/* MAPI Recip PR_RECIPIENT_TRACKSTATUS Property for To List */
+#define MAIL_MAPI_CC_TRACKSTATUS_ITEM "$MapiSendCcTrackStatus"/* MAPI Recip PR_RECIPIENT_TRACKSTATUS Property for Cc List */
+#define MAIL_MAPI_BCC_TRACKSTATUS_ITEM "$MapiSendBccTrackStatus"/* MAPI Recip PR_RECIPIENT_TRACKSTATUS Property for Bcc List */
+#define MAIL_MAPI_TO_FLAGS_ITEM "$MapiSendToFlags" /* MAPI Recip PR_RECIPIENT_FLAGS Property for To List */
+#define MAIL_MAPI_CC_FLAGS_ITEM "$MapiSendCcFlags" /* MAPI Recip PR_RECIPIENT_FLAGS Property for Cc List */
+#define MAIL_MAPI_BCC_FLAGS_ITEM "$MapiSendBccFlags"/* MAPI Recip PR_RECIPIENT_FLAGS Property for Bcc List */
+#define MAIL_MAPI_TO_TSTIME_ITEM "$MapiSendToTSTime"/* MAPI Recip PR_RECIPIENT_TRACKSTATUS_TIME Property for To List */
+#define MAIL_MAPI_CC_TSTIME_ITEM "$MapiSendCcTSTime"/* MAPI Recip PR_RECIPIENT_TRACKSTATUS_TIME Property for Cc List */
+#define MAIL_MAPI_BCC_TSTIME_ITEM "$MapiSendBccTSTime"/* MAPI Recip PR_RECIPIENT_TRACKSTATUS_TIME Property for Bcc List */
+#define MAIL_MAPI_TO_ADDR_ITEM "$MapiSendToAddr" /* MAPI Recip PR_EMAIL_ADDRESS Property for To List */
+#define MAIL_MAPI_CC_ADDR_ITEM "$MapiSendCcAddr" /* MAPI Recip PR_EMAIL_ADDRESS Property for Cc List */
+#define MAIL_MAPI_BCC_ADDR_ITEM "$MapiSendBccAddr" /* MAPI Recip PR_EMAIL_ADDRESS Property for Bcc List */
+#define MAIL_MAPI_SENDER_EID_ITEM "$MapiSenderEID" /* MAPI Sender PR_ENTRYID Property */
+#define MAIL_MAPI_SENDER_ADDRTYPE_ITEM "$MapiSenderAddrType" /* MAPI Sender PR_ADDRTYPE Property */
+#define MAIL_MAPI_SENDER_ADDR_ITEM "$MapiSenderAddr"/* MAPI Sender PR_EMAIL_ADDR Property */
+#define MAIL_MAPI_SENDER_SEARCHKEY_ITEM "$MapiSenderSearchKey" /* MAPI Sender PR_SEARCH_KEY Property */
+#define MAIL_MAPI_SENDER_NAME_ITEM "$MapiSenderName"/* MAPI Sender PR_DISPLAY_NAME Property */
+#define MAPI_MAPI_CONTAINER_CLASS_ITEM "$MapiContainerClass" /* MAPI Folder PR_CONTAINER_CLASS Property */
+
+/* Roaming user specific field names*/
+#define MAIL_USERDIC "UserDic" /*the user's personal dictionary item*/
+#define USERDIC_FORMAT "UserDicFormat" /*format of the user dictionary 0 - MAC 1- PC */
+
+/* Summary item names used to store NNTP information. */
+
+#define NNTP_MESSAGE_ID_ITEM_NAME "$UName"
+#define NNTP_FROM_ITEM_NAME "$8"
+#define NNTP_SUBJECT_ITEM_NAME "$9"
+#define NNTP_DATE_ITEM_NAME "$10"
+#define NNTP_REFERENCES_ITEM_NAME "$11"
+#define NNTP_PATH_ITEM_NAME "Path"
+#define NNTP_DISTRIBUTIONS_ITEM_NAME "Distribution"
+#define NNTP_SIZE_ITEM_NAME "NNTP_Size"
+#define NNTP_LINES_ITEM_NAME "Lines"
+#define NNTP_ISLMBCS_ITEM_NAME "$18"
+
+/* NNTP Client item names */
+
+#define NNTPCL_OUTGOING_ITEM "Outgoing"
+#define NNTPCL_NEWSREADER_ITEM "$Newsreader"
+#define NNTPCL_NEWSGROUPS_ITEM "Newsgroups"
+#define NNTPCL_OUTBOX_VIEW "($ArticlesToPost)"
+
+/* Client Type */
+
+#define FIELD_CLIENTTYPE "ClientType" /* Client Type - Full or Limited Notes */
+
+/* Standard Subform Item Name. */
+
+#define SUBFORM_ITEM_NAME "$SubForms"
+#define SUBFORM_REPIDS_ITEM_NAME "$SubForm_RepIDs"
+
+/* Define field name common to Server, Person, and Certifier forms */
+
+#define KFM_ITEM_CHANGE_REQUEST "ChangeRequest"
+#define KFM_ITEM_CHANGE_REQUEST_DATE "ChangeRequestDate"
+
+
+/* Certifier and Cross-certificate Address Book lookup definitions */
+
+#define KFM_FORM_CERTIFIER "Certifier"
+#define KFM_FORM_CROSSCERTIFICATE "CrossCertificate"
+
+#define KFM_ITEM_NAMECOMBO "NameCombo"
+#define KFM_ITEM_ORGCOMBO "OrgCombo"
+#define KFM_ITEM_ISSUEDTO "IssuedTo"
+#define KFM_ITEM_ISSUEDBY "IssuedBy"
+#define KFM_ITEM_CERTIFICATE "Certificate"
+#define KFM_ITEM_USER_CERTIFICATE "UserCertificate"
+ /* Some additional items are */
+ /* the same as those defined */
+ /* for the "Person" form */
+
+#define KFM_ITEM_CERT_NOENC "Certificate_NoEnc"
+ /* Public encryption key */
+ /* to be used for signature */
+ /* checking only and not for*/
+ /* sending encrypted mail */
+
+#define KFM_ITEM_PUBLICKEY "PublicKey" /* Public encryption key */
+ /* for flat names. */
+#define KFM_ITEM_INET_PUBKEY "INetPublicKey"
+ /* Public key to be used for*/
+ /* "View level" internet */
+ /* certification. */
+
+
+#define CERTIFIERNAMESSPACE "$Certifiers"
+#define LOCAL_CERTIFIERNAMESSPACE "1\\$Certifiers"
+#define CERTIFIERSNAMESSPACE "$Certifiers"
+#define CROSSCERTBYROOTNAMESSPACE "$CrossCertByRoot"
+#define CROSSCERTBYNAMENAMESSPACE "$CrossCertByName"
+
+
+#define KFM_CROSSCERT_ITEM_ISSUEDTO 0
+#define KFM_CROSSCERT_ITEM_ISSUEDBY 1
+#define KFM_CROSSCERT_ITEM_CERTIFICATE 2
+#define KFM_CROSSCERT_ITEM_CERT_NOENC 3
+#define KFM_CROSSCERT_ITEM_NOTEID 4
+#define KFM_CROSSCERT_LOOKUPITEMCOUNT 5
+#define KFM_CROSSCERT_LOOKUPITEMS "IssuedTo\0IssuedBy\0Certificate\0Certificate_NoEnc\0$$NoteID"
+
+#define KFM_CERTIFIER_ITEM_ISSUEDTO 0
+#define KFM_CERTIFIER_ITEM_ISSUEDBY 1
+#define KFM_CERTIFIER_ITEM_CERTIFICATE 2
+#define KFM_CERTIFIER_ITEM_CERT_NOENC 3
+#define KFM_CERTIFIER_LOOKUPITEMCOUNT 4
+#define KFM_CERTIFIER_LOOKUPITEMS "IssuedTo\0IssuedBy\0Certificate\0Certificate_NoEnc"
+
+/* Names for Wired In Cross Certificates
+*/
+#define NOTES_TEMPLATE_DEVELOPER_ID "CN=Lotus Notes Template Development/O=Lotus Notes"
+#define NOTES_COMPANION_ID "O=Lotus Notes Companion Products"
+#define NOTES_WHOSAYS_ID "Notes"
+#define BINARYTREE_TEMPLATE_DEVELOPER_ID "CN=BT Mail and Calendar Migration Tools/O=Lotus Notes Companion Products"
+#define SAMETIME_TEMPLATE_DEVELOPER_ID "CN=Sametime Development/O=Lotus Notes Companion Products"
+#define LOTUSFAX_TEMPLATE_DEVELOPER_ID "CN=Lotus Fax Development/O=Lotus Notes Companion Products"
+#define LOTUSUNICOMM_TEMPLATE_DEVELOPER_ID "CN=Domino Unified Communications Services/O=Lotus Notes Companion Products"
+
+/* ECL Owner Key for admin ecl updates
+ * When this is encoutered on the client during eclrefresh it is replaced
+ * with the current users name to allow admins to define current user rights
+ */
+#define ECL_KEY_FOR_ECL_OWNER_NAME "<ECLOwner>"
+
+/* Lookup items for Network Authentication check.
+
+ NOTE: These items are no longer referenced by the Notes Authentication code.
+ However, some NETAUTH_... symbols are referenced by miscellaneous code
+ (change as TESTNSF) so we won't delete them here just yet.
+
+ LATER: We should search out and destroy all references.
+*/
+
+#define NETAUTH_ITEM_CERTIFICATE 0
+#define NETAUTH_ITEM_CERT_NOENC 1
+#define NETAUTH_ITEM_PUBLIC_KEY 2
+#define NETAUTH_ITEM_CHANGEREQUEST 3
+#define NETAUTH_ITEM_USERCERTIFICATE 4
+#define NETAUTH_LOOKUPITEMCOUNT 5
+
+#define NETAUTH_LOOKUPITEMS "Certificate\0Certificate_NoEnc\0PublicKey\0ChangeRequest\0ChangeRequestDate\0UserCertificate"
+
+#define NETAUTH_NAMESPACE_USERS "($Users)"
+#define NETAUTH_NAMESPACE_SERVERS "($Servers)"
+#define NETAUTH_NAMESPACE_SERVERSORUSERS "($Servers)\0($Users)"
+#define NETAUTH_NAMESPACE_USERSORSERVERS "($Users)\0($Servers)"
+#define NETAUTH_NAMESPACE_CERTIFIERS "($Certifiers)"
+#define NETAUTH_NAMESPACE_XCERTBYROOT "($CrossCertByRoot)"
+
+/* Lookup items for KFMGetPublicKey
+*
+* NOTE: Code knows that the last view may not be present (in the case
+* of a Personal N&A book), so $Servers must be last and the code must
+* be changed if any others become optional.
+*/
+
+#define KFM_GETPUB_VIEWS "($Users)\0($Certifiers)\0($Servers)"
+#define KFM_GETPUB_NUMVIEWS 3
+#define KFM_GETPUB_FIELDS "Certificate\0Certificate_NoEnc\0PublicKey\0UserCertificate"
+#define KFM_GETPUB_NUMFIELDS 4
+
+
+/* BSAFE NAMELookup Items */
+#define SEC_AUTH_ITEMS_LIST \
+ \
+"\
+$$NoteID\0\
+$$DBName\0\
+\
+Certificate\0\
+Certificate_NoEnc\0\
+PublicKey\0\
+UserCertificate\0\
+\
+ChangeRequest\0\
+ChangeRequestDate\0\
+\
+ClientType\0\
+\
+PasswordChangeInterval\0\
+PasswordChangeDate\0\
+PasswordDigest\0\
+PasswordGracePeriod\0\
+\
+CheckPassword\0\
+\
+HTTPPasswordChangeDate\0\
+HTTPPassword\0\
+\
+Policy\0\
+Profiles\0\
+ClntDgst\0\
+NewMailClientUpdateFlag\0\
+RoamingUserUpdateFlag\0\
+\
+ServerName\0\
+\
+NewRoamStatUpdtFl\0\
+RoamStatDwnFl\0\
+MailDomain\0\
+\
+PKMinWidth\0\
+PKMaxWidth\0\
+PKDefWidth\0\
+PKMaxAge\0\
+PKMinDate\0\
+PKDueDate\0\
+PKPriority\0\
+PKOldKeyDays\0\
+\
+$$ModifiedTime\0"
+
+#define SEC_AUTH_ITEM_NOTEID 0
+#define SEC_AUTH_ITEM_DBNAME 1
+
+#define SEC_AUTH_ITEM_CERTIFICATE 2
+#define SEC_AUTH_ITEM_CERT_NOENC 3
+#define SEC_AUTH_ITEM_PUBLIC_KEY 4
+#define SEC_AUTH_ITEM_USER_CERT 5
+
+#define SEC_AUTH_ITEM_CHANGE_REQUEST 6
+#define SEC_AUTH_ITEM_CHANGE_REQUEST_DATE 7
+
+#define SEC_AUTH_ITEM_CLIENT_TYPE 8
+
+#define SEC_AUTH_ITEM_NOTESPW_CHANGEINTERVAL 9
+#define SEC_AUTH_ITEM_NOTESPW_CHANGEDATE 10
+#define SEC_AUTH_ITEM_NOTESPW_DIGEST 11
+#define SEC_AUTH_ITEM_NOTESPW_GRACEPERIOD 12
+
+#define SEC_AUTH_ITEM_NOTESPW_CHECK 13
+
+#define SEC_AUTH_ITEM_HTTPCHANGEDATE 14
+#define SEC_AUTH_ITEM_HTTPPASSWORD 15
+
+#define SEC_AUTH_ITEM_POLICY 16
+#define SEC_AUTH_ITEM_PROFILES 17
+#define SEC_AUTH_ITEM_CLIENTDIGEST 18
+#define SEC_AUTH_ITEM_FLAG_NEWMAIL 19
+#define SEC_AUTH_ITEM_FLAG_ROAMING 20
+
+#define SEC_AUTH_ITEM_SERVERNAME 21
+
+#define SEC_AUTH_ITEM_FLAG_NEWROAMING 22
+#define SEC_AUTH_ITEM_FLAG_ROAMINGDOWN 23
+#define SEC_AUTH_ITEM_MAILDOMAIN 24
+
+#define SEC_AUTH_ITEM_PUBKEY_MINWIDTH 25
+#define SEC_AUTH_ITEM_PUBKEY_MAXWIDTH 26
+#define SEC_AUTH_ITEM_PUBKEY_DEFWIDTH 27
+#define SEC_AUTH_ITEM_PUBKEY_MAXAGE 28
+#define SEC_AUTH_ITEM_PUBKEY_MINDATE 29
+#define SEC_AUTH_ITEM_PUBKEY_DUEDATE 30
+#define SEC_AUTH_ITEM_PUBKEY_PRIORITY 31
+#define SEC_AUTH_ITEM_PUBKEY_OLDKEYDAYS 32
+
+#define SEC_AUTH_ITEM_MODIFIED_TIME 33
+
+#define SEC_AUTH_ITEMS_COUNT 34
+
+#define SEC_CERTTAB_ITEMS_LIST \
+"\
+$$NoteID\0\
+$$DBName\0\
+\
+Certificate\0\
+Certificate_NoEnc\0\
+PublicKey\0\
+UserCertificate\0\
+ChangeRequest\0\
+\
+CertificateType\0\
+IsHostedOrg\0\
+OrgDatabaseDir\0\
+OrgPolicy\0\
+RegistrationAuthorities\0\
+\
+RecoveryInfo\0\
+RolloverCert\0\
+\
+GlobalDomainDocument"
+
+#define SEC_CERTTAB_ITEM_NOTEID 0
+#define SEC_CERTTAB_ITEM_DBNAME 1
+
+#define SEC_CERTTAB_ITEM_CERTIFICATE 2
+#define SEC_CERTTAB_ITEM_CERT_NOENC 3
+#define SEC_CERTTAB_ITEM_PUBLIC_KEY 4
+#define SEC_CERTTAB_ITEM_USER_CERT 5
+#define SEC_CERTTAB_ITEM_CHANGE_REQUEST 6
+
+#define SEC_CERTTAB_ITEM_CERTIFICATE_TYPE 7 /* really "Certifier Type" */
+#define SEC_CERTTAB_ITEM_IS_HOSTED_ORG 8
+#define SEC_CERTTAB_ITEM_ORG_DATABASE_DIR 9
+#define SEC_CERTTAB_ITEM_ORG_POLICY 10
+#define SEC_CERTTAB_ITEM_RAS 11
+
+#define SEC_CERTTAB_ITEM_RECOVERY_INFO 12
+#define SEC_CERTTAB_ITEM_ROLLOVER_CERT 13
+
+#define SEC_CERTTAB_ITEM_GLOBALDOMAIN_DOC 14
+
+
+#define SEC_CERTTAB_ITEMS_COUNT 15
+
+
+#define ADMINP_NAB_ITEMS_LIST \
+"\
+$$NoteID\0\
+$$DBName\0\
+\
+Certificate\0\
+Certificate_NoEnc\0\
+PublicKey\0\
+UserCertificate\0\
+ChangeRequest"
+
+#define ADMINP_NAB_ITEM_NOTEID 0
+#define ADMINP_NAB_ITEM_DBNAME 1
+
+#define ADMINP_NAB_ITEM_CERTIFICATE 2
+#define ADMINP_NAB_ITEM_CERT_NOENC 3
+#define ADMINP_NAB_ITEM_PUBLIC_KEY 4
+#define ADMINP_NAB_ITEM_USER_CERT 5
+#define ADMINP_NAB_ITEM_CHANGE_REQUEST 6
+
+#define ADMINP_NAB_ITEMS_COUNT 7
+
+#define NET_GROUP_ITEMS_LIST \
+"\
+$$NoteID\0\
+$$DBName\0\
+\
+Certificate\0\
+Certificate_NoEnc\0\
+PublicKey\0\
+UserCertificate\0\
+ChangeRequest"
+
+#define NET_GROUP_ITEM_NOTEID 0
+#define NET_GROUP_ITEM_DBNAME 1
+
+#define NET_GROUP_ITEM_CERTIFICATE 2
+#define NET_GROUP_ITEM_CERT_NOENC 3
+#define NET_GROUP_ITEM_PUBLIC_KEY 4
+#define NET_GROUP_ITEM_USER_CERT 5
+#define NET_GROUP_ITEM_CHANGE_REQUEST 6
+
+#define NET_GROUP_ITEMS_COUNT 7
+
+
+/* S/MIME items in address book records. */
+#define SMIME_USER_CAPABILITIES_ITEM "SmimeUserCapabilities"
+
+/* Address Book - Items and names used by security panel */
+
+#define SECPANEL_PERSONDOCITEM_NAME 0
+#define SECPANEL_PERSONDOCITEM_SHNAME 1
+#define SECPANEL_PERSONDOCITEM_INETADDR 2
+#define SECPANEL_PERSONDOCITEM_ENCRMAIL 3
+#define SECPANEL_PERSONDOCITEM_STOREMAIL 4
+#define SECPANEL_PERSONDOCITEM_CHECKPASSWORD 5
+#define SECPANEL_PERSONDOCITEM_PASS_GRACE_PERIOD 6
+#define SECPANEL_PERSONDOCITEM_PASS_CHANGE_INTERVAL 7
+#define SECPANEL_PERSONLOOKUPITEMCOUNT 8
+#define SECPANEL_PERSONLOOKUPITEMS "FullName\0ShortName\0InternetAddress\0EncryptIncomingMail\0MessageStorage\0CheckPassword\0PasswordGracePeriod\0PasswordChangeInterval"
+
+/* Userless NAB definitions */
+#define USERLESS_FORMULA "Type!=\"Person\" & Type != \"Database\" & Type != \"Group\" & (@IsUnAvailable(FullName) | @IsAvailable(CfgDoc) | Type = \"Certifier\")"
+#define USERLESS_FORMULA_V2 "Type!=\"Person\" & Type != \"Database\" & Type != \"Group\" & (@IsUnAvailable(FullName) | @IsAvailable(ConfigDocument) | Type = \"Certifier\")"
+#define USERLESS_FORMULA_V1 "((Type!=\"Person\" & Type != \"Database\" & Type != \"Group\" ) & (@IsUnAvailable(FullName ) & Type != \"Certifier\")) | @IsAvailable(CfgDoc)"
+#define USERLESS_FORMULA_V3 "((Type!=\"Person\" & Type != \"Database\" & Type != \"Group\" ) & (@IsUnAvailable(FullName ) & Type != \"Certifier\")) | @IsAvailable(ConfigDocument)"
+
+
+#define FILE_ID_VIEW "$FileIdentifications"
+
+/* Lookup items for Profiles */
+
+#define PROFILENAMESSPACE "$Profiles"
+#define PROFILENAME "ProfileName"
+#define PROFILES_ITEM "Profiles"
+
+/* dblink fields in the Setup Profile note */
+#define PROFILE_DATABASELINK_ITEM "DatabaseLinks"
+#define PROFILE_REPLICALINK_ITEM "ReplicaLinks"
+#define PROFILE_LNABLINK_ITEM "LNABLinks"
+#define POLICY_WELCOMELINK_ITEM "WelcomeLink"
+
+/* Smart Upgrade Tracking Options in Desktop Settings Policy */
+#define POLICY_DESKTOP_SU_LOCATION_ITEM "SULoc"
+#define POLICY_DESKTOP_SU_REMOVE_ITEM "SURem"
+#define POLICY_DESKTOP_SU_RETENTION_ITEM "SUDays"
+
+/* Diagnostic Collection Options in Destop Settings Policy */
+#define POLICY_DESKTOP_LOCATION_ITEM "DCLoc"
+#define POLICY_DESKTOP_LOCATION_ITEM_IP "DCLoc$IP"
+#define POLICY_DESKTOP_LOCATION_ITEM_PO "DCLoc$PO"
+#define POLICY_DESKTOP_PROMPT_ITEM "DCPmpt"
+#define POLICY_DESKTOP_PROMPT_ITEM_IP "DCPmpt$IP"
+#define POLICY_DESKTOP_PROMPT_ITEM_PO "DCPmpt$PO"
+#define POLICY_DESKTOP_REMOVE_ITEM "DCRem"
+#define POLICY_DESKTOP_REMOVE_ITEM_IP "DCRem$IP"
+#define POLICY_DESKTOP_REMOVE_ITEM_PO "DCRem$PO"
+#define POLICY_DESKTOP_CRASHCOMMENTS_ITEM "DCCom"
+#define POLICY_DESKTOP_CRASHCOMMENTS_ITEM_IP "DCCom$IP"
+#define POLICY_DESKTOP_CRASHCOMMENTS_ITEM_PO "DCCom$PO"
+#define POLICY_DESKTOP_CRASHMSGSIZE_ITEM "DCMsgSize"
+#define POLICY_DESKTOP_CRASHMSGSIZE_ITEM_IP "DCMsgSize$IP"
+#define POLICY_DESKTOP_CRASHMSGSIZE_ITEM_PO "DCMsgSize$PO"
+#define POLICY_DESKTOP_CRASHNSDSIZE_ITEM "DCNSDSize"
+#define POLICY_DESKTOP_CRASHNSDSIZE_ITEM_IP "DCNSDSize$IP"
+#define POLICY_DESKTOP_CRASHNSDSIZE_ITEM_PO "DCNSDSize$PO"
+#define POLICY_DESKTOP_DEBUGOUTFILE_ITEM "DCDO"
+#define POLICY_DESKTOP_DEBUGOUTFILE_ITEM_IP "DCDO$IP"
+#define POLICY_DESKTOP_DEBUGOUTFILE_ITEM_PO "DCDO$PO"
+#define POLICY_DESKTOP_RETENTION_ITEM "DCDays"
+#define POLICY_DESKTOP_RETENTION_ITEM_IP "DCDays$IP"
+#define POLICY_DESKTOP_RETENTION_ITEM_PO "DCDays$PO"
+#define POLICY_DESKTOP_ADC_FILES_ITEM "DCFiles"
+#define POLICY_DESKTOP_ADC_FILES_ITEM_IP "DCFiles$IP"
+#define POLICY_DESKTOP_ADC_FILES_ITEM_PO "DCFiles$PO"
+
+/* Address Book - "Server" form item names */
+
+#define MAIL_SERVER_FORM "Server" /* Form and type name */
+#define MAIL_SERVERNAME_ITEM "ServerName" /* Server name */
+#define MAIL_DOMAINNAME_ITEM "Domain" /* Domain server is in */
+#define MAIL_NETWORKNAME_ITEM "Network" /* Network server is on */
+#define MAIL_ADMINNAME_ITEM "Administrator" /* Server's administrator(s) */
+#define MAIL_SERVERTITLE_ITEM "ServerTitle" /* Server title */
+#define MAIL_SERVERPORTS_ITEM "Ports" /* Enabled ports in server record */
+#define MAIL_SMTPLISTENER_ITEM "SMTPListenerEnabled" /* Does this server run an SMTP listener? */
+#define MAIL_FULLHOSTNAME_ITEM "SMTPFullHostDomain" /* Host name of the server */
+#define MAIL_NETADDRESSES_ITEM "NetAddresses" /* Network Addresses */
+
+/* Address Book - "Certifier" form item names */
+
+#define MAIL_CERTIFIER_TYPE "Certifier" /* Document type of "Certifier" */
+#define MAIL_CERTIFIERTYPE_ITEM "Type" /* Certifier type */
+#define MAIL_CERTIFIERISSUEDTO_ITEM "IssuedTo" /* Certifier issued to (to get Org Name) */
+#define MAIL_CERTIFIERGLOBALDOMAIN_ITEM "GlobalDomainDocument" /* Name of Global Domain for organization */
+#define MAIL_CERTIFIERISORG_ITEM "IsHostedOrg" /* is certifier an organization */
+#define MAIL_CERTIFIERDBSTORAGE_ITEM "OrgDatabaseDir" /* storage location of organization */
+#define MAIL_CERTIFIERPOLICY_ITEM "OrgPolicy" /* explicit policy for organization */
+
+/* Address Book - "X400Server" form item names */
+
+#define MAIL_X400_SERVER_FORM "Server" /* Form and type name */
+#define MAIL_X400_SERVERNAME_ITEM "X400ServerName" /* X400 MTA server name */
+#define MAIL_X400_MTANAME_ITEM "X400MTAName" /* X400 MTA name */
+#define MAIL_X400_GLOBAL_DOMAIN_ITEM "X400GlobalDomain" /* Global domain identifier */
+#define MAIL_X400_COUNTRY_ITEM "X400Country" /* Country name */
+#define MAIL_X400_ADMD_ITEM "X400ADMD" /* Administration Management Domain name*/
+#define MAIL_X400_PRMD_ITEM "X400Domain" /* Private Domain name */
+#define MAIL_X400_CREDENTIALS_ITEM "X400Credentials" /* MTA credentials */
+#define MAIL_X400_SUPP_APP_CONTEXTS_ITEM "X400SupportedApplicationContexts" /* Supported app. contexts */
+#define MAIL_X400_DEL_CONTENT_LENGTH_ITEM "X400DeliverContentLength" /* Delivery content length */
+#define MAIL_X400_DEL_CONTENT_TYPE_ITEM "X400DeliverContentTypes" /* Delivery content types */
+#define MAIL_X400_PSEL_ITEM "X400PSEL" /* Presentation selector */
+#define MAIL_X400_SSEL_ITEM "X400SSEL" /* Session selector */
+#define MAIL_X400_TSEL_ITEM "X400TSEL" /* Transport selector */
+#define MAIL_X400_IPADDRESS_ITEM "X400IPAddress" /* Network IP address for the MTA */
+#define MAIL_X400_X121ADDRESS_ITEM "X400X121Address" /* X.121 Network address for the MTA */
+
+/* Address Book - "Domain" form item names */
+
+#define MAIL_DOMAIN_FORM "Domain" /* Form and type name */
+#define MAIL_DOMAINTYPE_ITEM "DomainType" /* Domain type */
+#define MAIL_DOMAINADJDOMAINNAME_ITEM "AdjacentDomainName" /* Adjacent domain name */
+#define MAIL_DOMAINDOMAINNAME_ITEM "DomainName" /* Domain name */
+#define MAIL_DOMAINNEXTDOMAIN_ITEM "NextDomain" /* Next domain to domain */
+#define MAIL_DOMAINMAILSERVER_ITEM "MailServer" /* Server containing mailbox */
+#define MAIL_DOMAINMAILFILE_ITEM "MailFile" /* File name of mailbox */
+#define MAIL_DOMAINALLOW_ITEM "AllowFromDomains" /* Allow list */
+#define MAIL_DOMAINDENY_ITEM "DenyFromDomains" /* Deny list */
+#define MAIL_DOMAINCALENDARSERVER_ITEM "CalendarServer" /* Calendar gateway server */
+#define MAIL_DOMAINCALENDARSYSTEM_ITEM "CalendarSystem" /* Calendar gateway system */
+
+
+#define MAIL_DOMAINCALENDARDETAILS_ITEM "CalDtls" /* Calendar details to harvest */
+#define MAIL_DOMAINNONCONTROVERSIALFIELDS_ITEM "CalDtls" /* Non-Controversial Calendar details to harvest */
+
+/* Address Book - "Connection" form item names */
+
+#define MAIL_LOCAL_CONNECTION_FORM "Local" /* Local Connection form name */
+#define MAIL_REMOTE_CONNECTION_FORM "Remote" /* Remote Connection form name */
+#define MAIL_CONNECTION_TYPE "Connection" /* Connection entry type */
+#define MAIL_CONNECTION_TYPE_ITEM "ConnectionType" /* Connection type item */
+#define MAIL_SOURCE_ITEM "Source" /* Source computer name */
+#define MAIL_SOURCEDOMAIN_ITEM "SourceDomain" /* Source domain name */
+#define MAIL_DESTINATION_ITEM "Destination" /* Destination computer name */
+#define MAIL_DESTINATIONDOMAIN_ITEM "DestinationDomain" /* Destination domain name */
+#define MAIL_PORTNAME_ITEM "PortName" /* Port name */
+#define MAIL_PHONENUMBER_ITEM "PhoneNumber" /* Phone number */
+#define MAIL_COUNTRYCODE_ITEM "Country" /* Phone number */
+#define MAIL_AREACODE_ITEM "AreaCode" /* Phone number */
+#define MAIL_AREACODEINPUT_ITEM "AreaCodeInput" /* Phone number */
+#define MAIL_ENABLED_ITEM "Enabled" /* Enabled/disabled item */
+#define MAIL_TASKS_ITEM "Tasks" /* Tasks item */
+#define MAIL_INTERVAL_ITEM "Interval" /* Interval item */
+#define MAIL_SCHEDULE_ITEM "Schedule" /* Schedule item */
+#define MAIL_COST_ITEM "Cost" /* Routing cost item */
+#define MAIL_REPLICATION_TYPE_ITEM "RepType" /* Replication type, e.g. pull/pull */
+#define MAIL_LINKINFO_ITEM "LinkInfo" /* For X.25 conn recs */
+#define MAIL_PASSTHRUSERVER_ITEM "PassthruServer" /* For passthru conn recs */
+#define MAIL_LOCALPHONENUMBER_ITEM "LocalPhoneNumber" /* set this in connrec for form compute */
+
+/* Address Book - "Group" form item names */
+
+#define MAIL_GROUP_FORM "Group" /* Form and type name */
+#define MAIL_GROUP_TYPE "GroupType" /* Form and type name */
+#define MAIL_LISTNAME_ITEM "ListName" /* Distribution list name */
+#define MAIL_LISTDESCRIPTION_ITEM "ListDescription" /* Distribution list name */
+#define MAIL_MEMBERS_ITEM "Members" /* Members names name */
+#define MAIL_LISTADMINISTRATOR_ITEM "Administrator" /* Group administrator */
+/* Part of SPR GOTO54JT5Q - Need this to get list owner for LDAP Group details display */
+#define MAIL_LISTOWNER_ITEM "ListOwner" /* List owner */
+/* Part of SPR GOTO54JT5Q - Need this to get administrator for LDAP Group details display */
+#define MAIL_LISTADMIN_ITEM "LocalAdmin" /* Group administrator */
+
+/* Address Book - "External Domain Network Information" form item names */
+
+#define MAIL_EXTERNAL_DOMAIN_NETWORK_INFORMATION_FORM "ExternalDomainNetworkInformation" /* Form and type name */
+
+/* Address Book - "User Setup Profile" form item names */
+
+#define PROFILE_FORM "Profile" /* Form and type name */
+
+/* Address Book - "Holiday" form item names */
+
+#define HOLIDAY_FORM "Holiday" /* Form and type name */
+
+/* Address Book - "(Alternate Language Personal Information)" form item names */
+
+#define LDAP_ALT_LANGUAGE_PERSONAL_INFO_FORM "AltLanguagePersonalInfo" /* Form and type name */
+
+/* Address Book - "(FileProtection)" form item names */
+
+#define FILE_PROTECTION_FORM "FileProtection" /* Form and type name */
+
+/* Address Book - "(Mapping)" form item names */
+
+#define MAPPING_FORM "Mapping" /* Form and type name */
+
+/* Address Book - "(Virtual Server)" form item names */
+
+#define VIRTUAL_SERVER_FORM "VirtualServer" /* Form and type name */
+
+/* Address Book - "Users" name space, items, and names */
+/* Address Book - local $Users namespace */
+#define LOCAL_USERNAMESSPACE "1\\$Users"
+#define USERNAMESSPACE "$Users"
+#define USERNAMESSPACE_ALT "($Users)"
+#define TYPEAHEADNAMESSPACE "$NamesFieldLookup"
+
+/* DB2 - domudf namelookup items */
+#define DB2_NAMELOOKUPITEMCOUNT 2
+#define DB2_NAMELOOKUPITEMS "FullName\0DB2UserName"
+
+#define MAIL_NAMELOOKUPITEMCOUNT 17
+#define MAIL_NAMELOOKUPSIMPLEITEMCOUNT 12 /* Excludes PublicKey */
+#define MAIL_LOCALNAMELOOKUPSIMPLEITEMCOUNT 13 /* Includes LNAB Entry */
+#define MAIL_LOCALNAMELOOKUPITEMCOUNT 19 /* Includes LNAB fields */
+
+#define MAIL_NAMELOOKUPITEMS \
+"FullName\0MailDomain\0MailAddress\0Location\0ListName\0Members\0InternetAddress\0AltFullName\0MessageStorage\0AltFullNameLanguage\0\
+$$NoteID\0$$DBName\0$$LNAB\0PublicKey\0Certificate\0UserCertificate\0$$LNABHasCertificates\0$$LNABHasUserCertificates\0SmimeUserCapabilities\0"
+
+#define FULLNAMEITEM 0
+#define DOMAINNAMEITEM 1
+#define MAILADDRESSITEM 2
+#define LOCATIONITEM 3
+#define LISTNAMEITEM 4
+#define MEMBERSITEM 5
+#define INTERNETADDRESSITEM 6
+#define ALTFULLNAMEITEM 7
+#define STORAGETYPEITEM 8
+#define ALTFULLNAMELANGUAGEITEM 9
+#define NOTEIDITEM 10
+#define DBNAMEITEM 11
+#define LNABENTRY 12
+#define PUBLICKEYITEM 13
+#define CERTIFICATEITEM 14
+#define USERCERTIFICATEITEM 15
+#define HASCERTIFICATEITEM 16
+#define HASUSERCERTIFICATEITEM 17
+#define SMIMECAPABILITYITEM 18
+
+
+/* Mail Group Expansion NAMELookup items (router\expander.c) */
+#define MAIL_GEX_NAMELOOKUPITEMCOUNT 5
+#define MAIL_GEX_NAMELOOKUPITEMS "FullName\0ListName\0Members\0MailAddress\0$$Readers"
+#define GEX_FULLNAMEITEM 0
+#define GEX_LISTNAMEITEM 1
+#define GEX_MEMBERSITEM 2
+#define GEX_MAILADDRESSITEM 3
+#define GEX_READERSITEM 4
+
+/* Lightweight Address book definitions */
+#define LNAB_ENTRY_Y 'Y'
+#define LNAB_ENTRY_YES "Y"
+#define LNAB_ENTRY_NO "N"
+#define LNAB_ENTRY_ITEM "$$LNAB"
+#define LNAB_HASCERTIFICATES_ITEM "$$LNABHasCertificates"
+#define LNAB_HASUSERCERTIFICATES_ITEM "$$LNABHasUserCertificates"
+#define FIELD_JIT_ITEM "$$JIT"
+#define FIELD_JITFAILED_ITEM "$$JITFailed"
+
+#define FIELD_FROM_BOOKMARK_ITEM "$$FromBookmark"
+#define FIELD_SAVE_NOTE_CLASS_ITEM "$$SaveNoteClass"
+#define FIELD_OUTLINE_POSITION_ITEM "OutlinePosition"
+
+#define MAIL_DELIVERYLOOKUPITEMCOUNT 12
+#define MAIL_DELIVERYSIMPLEITEMCOUNT 7 /* Excludes PublicKey */
+#define MAIL_DELIVERYLOOKUPITEMS \
+"FullName\0MailAddress\0MailServer\0MailFile\0ShortName\0ListName\0$$Readers\0\
+PublicKey\0EncryptIncomingMail\0MailDomain\0Certificate\0UserCertificate"
+
+#define MAIL_DELIVERYFULLNAMEITEM 0
+#define MAIL_DELIVERYMAILADDRESSITEM 1
+#define MAIL_DELIVERYMAILSERVERITEM 2
+#define MAIL_DELIVERYMAILFILEITEM 3
+#define MAIL_DELIVERYSHORTNAMEITEM 4
+#define MAIL_DELIVERYLISTNAMEITEM 5
+#define MAIL_DELIVERYREADERSITEM 6
+#define MAIL_DELIVERYPUBLICINFO 7
+#define MAIL_DELIVERYENCRYPTINCOMING 8
+#define MAIL_DELIVERYMAILDOMAINITEM 9
+#define MAIL_DELIVERYCERTIFICATEITEM 10
+#define MAIL_DELIVERYUSERCERTIFICATEITEM 11
+
+
+/* Address Book - "Domains" name space, items, and names */
+
+#define DOMAINNAMESSPACE "$Domains"
+#define ALIASDOMAINNAMESSPACE "($Domains)"
+
+#define MAIL_DOMAINLOOKUPITEMS "DomainName\0NextDomain\0MailServer\0MailFile"
+#define MAIL_DOMAINNAMEITEM 0
+#define MAIL_DOMAINNEXTDOMAINITEM 1
+#define MAIL_DOMAINMAILSERVERITEM 2
+#define MAIL_DOMAINMAILFILEITEM 3
+#define MAIL_DOMAINLOOKUPITEMCOUNT 4
+
+#define MAIL_DEFAULTGLOBALDOMAIN_ITEM "DefaultGlobalDomain"
+#define MAIL_SMTPDOMAINSUFFIXES_ITEM "SMTPDomainSuffixes"
+#define MAIL_GLOBALDOMAIN_ITEM "GlobalDomain"
+#define MAIL_SMTPADDRESSFORMAT_ITEM "SMTP822Format"
+#define MAIL_SMTPNOTESDOMAININCLUDED_ITEM "SMTPNotesDomainIncluded"
+#define MAIL_SMTPNOTESDOMAINSEPCHAR_ITEM "SMTPNotesDomainSepChar"
+#define MAIL_SMTPNOTESDOMAINPOS_ITEM "SMTPNotesDomainPos"
+#define MAIL_SMTPADDRLOOKUP_ITEM "SMTPAddrLookup"
+#define MAIL_SMTPLOCALPART_ITEM "SMTPLocalPart"
+#define MAIL_SMTPNOTESDOMAINLIST_ITEM "NotesDomainList"
+#define MAIL_SMTPALIASSEPCHAR_ITEM "DomainSeparatorChar"
+#define MAIL_SMTPADDRFORMAT_ADDRONLY '1'
+#define MAIL_SMTPADDRFORMAT_NAMEANDADDR '2'
+#define MAIL_SMTPLOCALPART_FULL '0'
+#define MAIL_SMTPLOCALPART_INTEGER_FULL 0
+#define MAIL_SMTPLOCALDOMAINSINCLUDED_99 "99"
+#define MAIL_SMTPLOCALDOMAINSINCLUDED_1 "1"
+#define MAIL_SMTPLOCALDOMAINSINCLUDED_0 "0"
+#define MAIL_SMTPLOCALPART_CN '1'
+#define MAIL_SMTPLOCALPART_INTEGER_CN 1
+#define MAIL_SMTPLOCALPART_SHORTNAME '2'
+#define MAIL_SMTPLOCALPART_INTEGER_SHORTNAME 2
+#define MAIL_SMTPLOCALDOMAINPOS_LEFT '1'
+#define MAIL_SMTPLOCALDOMAINPOS_RIGHT '2'
+#define MAIL_SMTPLOCALDOMAINSEPCHAR '%'
+#define MAIL_SMTPLOCALDOMAINS_NONE 0
+#define MAIL_SMTPLOCALDOMAINS_ONE 1
+#define MAIL_SMTPLOCALDOMAINS_ALL 127
+#define MAIL_SMTPADDRLOOKUP_DISABLED '0'
+#define MAIL_SMTPADDRLOOKUP_ENABLED '1'
+
+#define SMTPMTA_SUBFORM "$SMTPServerFormSubForm" /* Used by setup */
+
+/* Address Book - "Servers" name space, items, and names */
+
+#define SERVERNAMESSPACE "$Servers"
+#define SERVERNAMESSPACE_1 "1\\$Servers"
+#define DIRECTORIESNAMESSPACE "$Directories"
+#define DIRECTORIESNAMESSPACE_1 "1\\$Directories"
+
+
+#define MAIL_SERVERLOOKUPITEMS "ServerName\0Domain\0Network"
+#define MAIL_SERVERNAMEITEM 0
+#define MAIL_SERVERDOMAINITEM 1
+#define MAIL_SERVERNETWORKITEM 2
+#define MAIL_SERVERLOOKUPITEMCOUNT 3
+
+/* Address Book - "$People" name space, items, and names */
+
+#define MAIL_PEOPLENAMESPACE "$People"
+
+#define MAIL_PEOPLELOOKUPITEMS "FullName"
+#define MAIL_PEOPLEFULLNAMEITEM 0
+#define MAIL_PEOPLELOOKUPITEMCOUNT 1
+
+/* Address Book - "$Groups" name space, items, and names */
+
+#define MAIL_GROUPSNAMESPACE "$Groups"
+#define MAIL_GROUPSNAMESPACE_1 "1\\$Groups"
+
+#define REGISTER_GROUPSNAMESPACE "($RegisterGroups)"
+
+
+/* Group type definitions */
+#define GROUP_TYPE_MULTIPURPOSE '0'
+#define GROUP_TYPE_MAILONLY '1'
+#define GROUP_TYPE_ACCESSCONTROL '2'
+#define GROUP_TYPE_DENYLIST '3'
+
+#define MAIL_GROUPSLOOKUPITEMCOUNT 1
+#define MAIL_GROUPSLOOKUPITEMS "ListName"
+#define MAIL_GROUPSGROUPNAMEITEM 0
+
+/* Address Book - "$NameFieldLookup" name space, items, and names (Typeahead) */
+#define LOCAL_MAIL_NAMEFIELD_LOOKUP "1\\$NamesFieldLookup"
+#define MAIL_NAMEFIELD_LOOKUP "$NamesFieldLookup"
+#define TYPEAHEAD_STATUS_ITEM "TypeaheadStatus"
+#define DISABLE_TYPEAHEAD "DISABLE_TYPEAHEAD"
+
+/* Address Book - Name field composite lookup */
+
+#define MAIL_NAMEFIELD_COMPOSITE_NAMESSPACE "$Users\0$Groups\0$ServersLookup"
+#define NAMEFIELDCOMPOSITENAMESPACES 3
+
+/* Address Book - Server lookup */
+
+#define MAIL_SERVERSLOOKUP_NAMESSPACE "$ServersLookup"
+
+#define SERVERGROUPS_NAMESSPACE "($ServerGroups)"
+
+
+
+/* Address Book - public views displayed by the admin subprogram */
+
+#define ADMIN_GROUPS_VIEW "Groups"
+#define ADMIN_PEOPLE_VIEW "People"
+#define ADMIN_SERVERS_VIEW "Servers"
+#define ADMIN_CONFIGURATIONS_VIEW "Configurations"
+#define ADMIN_WEBCONFIGURATIONS_VIEW "WebConfigurations"
+#define ADMIN_CONNECTIONS_VIEW "Connections"
+#define ADMIN_PROGRAMS_VIEW "Programs"
+#define ADMIN_DOMAINS_VIEW "Domains"
+#define ADMIN_CLUSTERS_VIEW "Clusters"
+#define ADMIN_CERTIFICATES_VIEW "Certificates"
+#define ADMIN_LICENSES_VIEW "Licenses"
+#define ADMIN_HOLIDAYS_VIEW "Holidays"
+#define HIDDEN_HOLIDAYS_VIEW "($Holidays)"
+#define HIDDEN_NOTESINI_VIEW "($ServerParameters)"
+#define ADMIN_EXT_DOMAIN_NET_INFO_VIEW "ExternalDomainNetworkInformation"
+#define ADMIN_REP_EVENTS_VIEW "Replication Events"
+#define ADMIN_MAIL_USERS "Mail Users"
+#define ADMIN_MAILBOX_VIEW "Mail"
+#define ADMIN_POLICIES_VIEW "Policies"
+#define ADMIN_SETTINGS_VIEW "Settings"
+#define ADMIN_DIRECTORIES_VIEW "Directories"
+#define ADMIN_AGGDIRCFG_VIEW "AggregateDirConfig"
+#define ADMIN_CERT_AUTH_VIEW "Server\\Certificate Authorities"
+#define ADMIN_FILE_ID_VIEW "FileIdentifications"
+#define ADMIN_HOSTED_ORGS_VIEW "HostedOrganizations"
+#define ADMIN_SITES_VIEW "InternetSites"
+#define ADMIN_CERT_EXP_VIEW "PeopleCertExpiration"
+
+/* Address Book - Items and names used by Admin Panel */
+
+#define ADMIN_SERVERTYPEITEM 0
+#define ADMIN_SERVERNAMEITEM 1
+#define ADMIN_SERVERTITLEITEM 2
+#define ADMIN_SERVERDOMAINITEM 3
+#define ADMIN_SERVERNETWORKITEM 4
+#define ADMIN_SERVERCLUSTERNAMEITEM 5
+#define ADMIN_SERVERADMINISTRATORITEM 6
+#define ADMIN_SERVERVERSIONITEM 7
+#define ADMIN_SERVEROSITEM 8
+#define ADMIN_SERVERHOSTNAMEITEM 9
+#define ADMIN_SERVERDB2INSTANCEITEM 10
+#define ADMIN_SERVERDB2DIRECTORYITEM 11
+#define ADMIN_SERVERDB2DATABASEITEM 12
+#define ADMIN_SERVERDB2SCHEMAITEM 13
+#define ADMIN_SERVERDB2HOSTITEM 14
+#define ADMIN_SERVERDB2PORTITEM 15
+#define ADMIN_SERVERDB2DEFAULTITEM 16
+#define ADMIN_SERVERDB2UDFSRVITEM 17
+#define ADMIN_SERVERDB2UDFPATHITEM 18
+#define ADMIN_SERVERDB2ACCESSITEM 19
+#define ADMIN_SERVERLOOKUPITEMCOUNT 20
+#define ADMIN_SERVERLOOKUPITEMS "Type\0ServerName\0ServerTitle\0Domain\0Network\0ClusterName\0Administrator\0ServerBuildNumber\0ServerPlatform\0SMTPFullHostDomain\0DB2Inst\0DB2Dir\0DB2Db\0DB2Sche\0DB2Host\0DB2Port\0DB2Def\0DB2UDFSrv\0DB2UDFPath\0DB2AccessServer"
+
+#define ADMIN_SERVERGROUPLISTITEM 0
+#define ADMIN_SERVERGROUPLOOKUPITEMCOUNT 1
+#define ADMIN_SERVERGROUPLOOKUPITEMS "ListName"
+
+
+/* Address Book - Items and names outputted to admindata.xml for the Java controller */
+
+#define ADMINDATA_SERVERTYPEITEM 0
+#define ADMINDATA_SERVERNAMEITEM 1
+#define ADMINDATA_SERVERTITLEITEM 2
+#define ADMINDATA_SERVERDOMAINITEM 3
+#define ADMINDATA_SERVERNETWORKITEM 4
+#define ADMINDATA_SERVERCLUSTERNAMEITEM 5
+#define ADMINDATA_SERVERADMINISTRATORITEM 6
+#define ADMINDATA_SERVERVERSIONITEM 7
+#define ADMINDATA_SERVEROSITEM 8
+#define ADMINDATA_SERVERHOSTNAMEITEM 9
+#define ADMINDATA_SERVERCONTROLLERIP 10
+#define ADMINDATA_SERVERCONTROLLERPORT 11
+#define ADMINDATA_SERVERDB2ACCESSITEM 12
+#define ADMINDATA_SERVERDB2SCHEMAITEM 13
+#define ADMINDATA_SERVERLOOKUPITEMCOUNT 14
+#define ADMINDATA_SERVERLOOKUPITEMS "Type\0ServerName\0ServerTitle\0Domain\0Network\0ClusterName\0Administrator\0ServerBuildNumber\0ServerPlatform\0SMTPFullHostDomain\0DC_IP_Address\0DC_Port\0DB2AccessServer\0DB2Sche"
+
+/* Databases opened and displayed by the admin subprogram */
+
+#define ADMIN_LOG_FILE "log.nsf"
+#define ADMIN_CATALOG5_FILE "catalog.nsf"
+#define ADMIN_CATALOG_FILE "catalog.nsf"
+#define ADMIN_EVENTS_FILE "statrep.nsf"
+#define ADMIN_EVENT4_CONFIG_FILE "events4.nsf"
+#define ADMIN_EVENT4_SAV_FILE "events4.sav" /* In R5, we save off the users EVENTS4.NSF as EVENTS4.SAV */
+#define ADMIN_EVENT_CONFIG_FILE "events4.nsf"
+#define ADMIN_EVENT_CONFIG_TEMPLATE "events4.ntf"
+#define ADMIN_CERT_LOG_FILE "certlog.nsf"
+#define ADMIN_CERT_LOG_TEMPLATE "certlog.ntf"
+#define ADMIN_WEB_LOG_FILE "domlog.nsf"
+#define ADMIN_WEBCONFIG_FILE "domcfg.nsf"
+#define ADMIN_CERT_CA_FILE "certca.nsf"
+#define ADMIN_CERT_SRV_FILE "certsrv.nsf"
+#define ADMIN_REPORTS "reports.nsf"
+#define ADMIN_DECS_CFG "decsadm.nsf"
+#define ADMIN_DOLS_CFG "doladmin.nsf"
+#define ADMIN_FILE "domadmin.nsf"
+#define ADMIN_LDAP_SCHEMA "schema.nsf"
+#define ADMIN_LDAP_R5_SCHEMA "schema50.nsf"
+#define ADMIN_SMART_UPDATE_FILE "smupdate.nsf"
+#define ADMIN_LICENSE_TRK_FILE "userlicenses.nsf"
+#define ADMIN_CERT_PUB_FILE "certpub.nsf"
+#define ADMIN_CERT_REQ_FILE "certreq.nsf"
+
+#define ADMIN_FAULTREPORTS_FILE "lndfr.nsf"
+#define ADMIN_FAULTREPORTS_TEMPLATE "lndfr.ntf"
+
+#define ADMIN_REPORT_FORM "faReport"
+
+/* SMTP MTA files */
+#define ADMIN_SMTP_BOX "smtp.box"
+#define ADMIN_SMTP_IQ "smtpibwq.box"
+#define ADMIN_SMTP_OQ "smtpobwq.box"
+
+/* cc:Mail MTA files */
+#define ADMIN_CCMTA_BOX "ccmail.box"
+#define ADMIN_CCMTA_WQ "ccmcwq.box"
+
+/* X.400 MTA files */
+#define ADMIN_X400_BOX "x400.box"
+#define ADMIN_X400_DEAD "dead.box"
+#define ADMIN_X400_LOG "x400log.nsf"
+#define ADMIN_X400_MADMAN "madman.nsf"
+
+/* Softswitch files */
+#define ADMIN_SSW "ssw.nsf"
+
+/* Defense Messaging System files */
+#define ADMIN_DMS_BOX "dms.box"
+#define ADMIN_DMS_HOLD "dmshold.box"
+
+/* MTA Config dbs */
+#define ADMIN_MTA_CFG "mtatbls.nsf" /* MTA configuration tables, used by smtp, ccmail and x400 mta */
+#define ADMIN_MTA_FORMS "mtaforms.nsf" /* MTA forms, also used by all mta's */
+
+/* View in MAB used by admin */
+#define ADMIN_DA_VIEW "Directory Assistance"
+
+/* Schedule items in the events4.nsf */
+
+#define EVENT_SCHED_TYPE_ITEM "$sched.def"
+#define EVENT_SCHED_INTERVAL_UNIT_ITEM "$sched.unit"
+#define EVENT_SCHED_INTERVAL_ITEM "$sched.freq"
+#define EVENT_SCHED_24X7_ITEM "$sched.always"
+#define EVENT_SCHED_WEEKDAYS_ITEM "$sched.days"
+#define EVENT_SCHED_WEEKDAY_ITEM "$sched.single.day"
+#define EVENT_SCHED_START_HOURS_ITEM "$sched.start"
+#define EVENT_SCHED_END_HOURS_ITEM "$sched.end"
+#define EVENT_SCHED_TIME_ITEM "$sched.spec.time"
+#define EVENT_SCHED_MONTHDAY_ITEM "$sched.dom"
+#define EVENT_SCHED_MISS_ITEM "$sched.miss"
+
+#define EVENT_PROBE_INTERVAL_SECONDS 1
+#define EVENT_PROBE_INTERVAL_MINUTES 2
+#define EVENT_PROBE_DEFAULT_WEEKLY_DAY "2"
+#define EVENT_PROBE_DEFAULT_MONTH_DAY "1"
+
+#define EVENT_PROBE_TARGETSERVERS "TargetServers"
+#define EVENT_PROBE_PROBESERVER "ProbeServer"
+
+#define EVENT_PROBE_MISS_IGNORE 1
+#define EVENT_PROBE_MISS_STARTUP 2
+#define EVENT_PROBE_MISS_SCHED 3
+
+#define EVENT_PROBE_INTERVAL_SCHED 1
+#define EVENT_PROBE_DAILY_SCHED 2
+#define EVENT_PROBE_WEEKLY_SCHED 3
+#define EVENT_PROBE_MONTHLY_SCHED 4
+
+#define EVENT_PROBE_APP_ITEM "ProbeApp"
+#define EVENT_PROBE_DESCRIPTION_ITEM "description"
+#define EVENT_PROBE_AREA_ITEM "DNTType"
+#define EVENT_PROBE_AREA_SUBTYPE_ITEM "SubType"
+#define EVENT_PROBE_DLLNAME_ITEM "probedll"
+#define EVENT_PROBE_DLLFUNC_ITEM "func"
+#define EVENT_PROBE_DISABLED_ITEM "Disabled"
+#define EVENT_PROBE_PUID_ITEM "puid"
+#define EVENT_PROBE_FORM_ITEM "Form"
+
+#define ISPY_MAIL_FAIL_TIMEOUT "msg.nrpc.timeout.fail"
+#define ISPY_MAIL_WARN_HIGH_TIMEOUT "msg.nrpc.timeout.warn.high"
+#define ISPY_MAIL_WARN_LOW_TIMEOUT "msg.nrpc.timeout.warn.low"
+#define ISPY_MAIL_FAIL_ENABLE "msg.nrpc.fail.enable"
+#define ISPY_MAIL_WARN_HIGH_ENABLE "msg.nrpc.warn.high.enable"
+#define ISPY_MAIL_WARN_LOW_ENABLE "msg.nrpc.warn.low.enable"
+#define ISPY_MAIL_TARGET_RECIPIENT "msg.targetrecipient"
+#define ISPY_MAIL_MAIL_STATISTIC_NAME "MailProbeStatisticName"
+#define ISPY_MAIL_SOURCE_SERVER "SourceServerName"
+#define ISPY_MAIL_ALL_SELF_MONITOR "AllSelfMonitor"
+#define ISPY_MAIL_SHOW_HOPS "ShowHops"
+#define ISPY_PROBE_METHOD "ProbeMethod"
+
+#define ISPY_TCP_TARGET_SERVER "TargetServerName"
+#define ISPY_TCP_TCP_TIMEOUT "TCPTimeOut"
+#define ISPY_TCP_SSL_TIMEOUT "SSLTimeOut"
+#define ISPY_TCP_HTTP_URL "HTTPUrl"
+#define ISPY_TCP_HTTP_URL_FETCH "HTTPUrlFetch"
+#define ISPY_TCP_HTTPSSL_URL "HTTPSSLUrl"
+#define ISPY_TCP_HTTPSSL_URL_FETCH "HTTPSSLUrlFetch"
+#define ISPY_TCP_NNTP_COMMAND_SEND "NNTPCommandSend"
+#define ISPY_TCP_NNTP_COMMAND "NNTPCommand"
+#define ISPY_TCP_NNTP_PARAMETERS "NNTPParameters"
+#define ISPY_TCP_NNTP_GROUP "NNTPGroup"
+#define ISPY_TCP_NNTPSSL_COMMAND_SEND "NNTPSSLCommandSend"
+#define ISPY_TCP_NNTPSSL_COMMAND "NNTPSSLCommand"
+#define ISPY_TCP_NNTPSSL_PARAMETERS "NNTPSSLParameters"
+#define ISPY_TCP_NNTPSSL_GROUP "NNTPSSLGroup"
+#define ISPY_TCP_SOURCE_SERVER "SourceServerName"
+#define ISPY_TCP_ALL_SELF_MONITOR "AllSelfMonitor"
+#define ISPY_TCP_SERVICES "Services"
+#define ISPY_TCP_ALL_SERVICES "AllServices"
+#define ISPY_TCP_ALL_TARGET_SERVERS "AllTargetServers"
+
+#define ISPY_MAIL_POLLER_FUNC "GetMailPollerProbe"
+#define ISPY_TCP_POLLER_FUNC "GetTCPPollerProbe"
+
+#define EVENT_PROBE_TARGETDBS "TargetDbs"
+
+#define DDM_PROBE_TYPE_AGENT 0
+#define DDM_PROBE_TYPE_APPLICATION 1
+#define DDM_PROBE_TYPE_DIRECTORIES 2
+#define DDM_PROBE_TYPE_MESSAGING 3
+#define DDM_PROBE_TYPE_REPLICATION 4
+#define DDM_PROBE_TYPE_SECURITY 5
+#define DDM_PROBE_TYPE_WEB 6
+#define DDM_PROBE_TYPE_ADMINP 7
+
+#define DDM_PROBE_TEXT_AGENT "application code" /* formerlly "agent", made more inclusive for applets,web services */
+#define DDM_PROBE_TEXT_APPLICATION "application"
+#define DDM_PROBE_TEXT_DATABASE "database"
+#define DDM_PROBE_TEXT_DIRECTORIES "directory"
+#define DDM_PROBE_TEXT_MESSAGING "messaging"
+#define DDM_PROBE_TEXT_OS "operating system"
+#define DDM_PROBE_TEXT_REPLICATION "replication"
+#define DDM_PROBE_TEXT_SECURITY "security"
+#define DDM_PROBE_TEXT_WEB "web"
+#define DDM_PROBE_TEXT_ADMINP "server"
+
+#define DDM_PROBE_SUBTYPE_TEXT_COMPACT "compact"
+#define DDM_PROBE_SUBTYPE_TEXT_DB "Database"
+#define DDM_PROBE_SUBTYPE_TEXT_DESIGN "design"
+#define DDM_PROBE_SUBTYPE_TEXT_CONFIG "Configuration"
+#define DDM_PROBE_SUBTYPE_TEXT_BPCONFIG "bestpractices"
+#define DDM_PROBE_SUBTYPE_TEXT_CONFIGREVIEW "review"
+#define DDM_PROBE_SUBTYPE_TEXT_DBREVIEW "dbreview"
+#define DDM_PROBE_SUBTYPE_TEXT_ADMINP "adminp"
+
+
+#define DIR_PROBE_SUBTYPE_TEXT_LDAP_VIEW_UPDATE "ldapviewupdate"
+#define DIR_PROBE_SUBTYPE_TEXT_LDAP_SEARCH_RESPONSE "ldapsearchresponse"
+#define DIR_PROBE_SUBTYPE_TEXT_DA_SEARCH_RESPONSE "secldapsearchresponse"
+#define DIR_PROBE_SUBTYPE_TEXT_DD_SEARCH_RESPONSE "nrpcsearchresponse"
+#define DIR_PROBE_SUBTYPE_TEXT_AVAILABILITY "availability"
+#define DIR_PROBE_SUBTYPE_TEXT_AGGREGATION "aggregation"
+#define DIR_PROBE_SUBTYPE_TEXT_AGGREGATION_SCHED "aggregationsched"
+#define DIR_PROBE_TARGET_TEXT_NAMES_VIEW_UPDATE "NamesViewUpdate"
+
+#define DDM_TSK_CHECK_FUNC "GetLegacyProbeTaskCheck"
+#define DDM_SRV_ACCESS_FUNC "GetLegacyProbeServerAccess"
+#define DDM_FILE_CHECK_FUNC "GetLegacyProbeFileCheck"
+
+#define DDM_TARGET_PORT "TargetPort"
+#define DDM_TARGET_DOMAIN "TargetDomain"
+#define DDM_TARGET_REPID "TargetReplicaID"
+
+#define DDM_JS_APP_EVENT 0
+#define DDM_JS_APP_ISPY 1
+#define DDM_JS_APP_COUNT 2
+
+#define EVENT_PROBE_APP_EVENT 1
+#define EVENT_PROBE_APP_ISPY 2
+#define EVENT_PROBE_APP_EMBEDDED 3
+
+#define EVENT_PROBE_TARGET_SPECIAL_PREFIX '$'
+/* DDM special target servers */
+#define EVENT_PROBE_SERVER_SPECIAL_ADMIN "$AdminServer"
+#define EVENT_PROBE_SERVER_SPECIAL_LDAPSERVER "$LDAPServer"
+#define EVENT_PROBE_SERVER_SPECIAL_AGGSERVER_SCHED "$ScheduledDircatServer"
+#define EVENT_PROBE_SERVER_SPECIAL_IMAPSERVER "$IMAPServer"
+#define EVENT_PROBE_SERVER_SPECIAL_POP3SERVER "$POP3Server"
+#define EVENT_PROBE_SERVER_SPECIAL_SMTPINSERVER "$SMTPInServer"
+#define EVENT_PROBE_SERVER_SPECIAL_MAILROUTINGSERVER "$MailRoutingServer"
+
+#define EVENTS_DDM_PROBE_VIEW "($DDMConfig)"
+
+#define DDM_REPL_FLAGS_PULL 0x0001
+#define DDM_REPL_FLAGS_PUSH 0x0002
+
+#define DDM_REPL_FLAGS_NOTE_CONFLICT 0x0004
+#define DDM_REPL_FLAGS_NOTE_ERR 0x0008
+#define DDM_REPL_FLAGS_DISABLE_ON_ORIG 0x0010
+#define DDM_REPL_FLAGS_DISABLE_ON_TARG 0x0020
+#define DDM_REPL_FLAGS_NOTE_NONDATA 0x0040
+
+#define DDM_CONFIG_CHECK_TYPE_REPLCHECK 0x0001
+#define DDM_CONFIG_CHECK_TYPE_ERROR 0x0002
+#define DDM_REPL_FLAGS_NOTE_CONFLICT 0x0004
+
+/* View in events5 displayed by the monitor subprogram */
+
+#define ADMIN_STATSEL_VIEW "($StatSelection)"
+#define ADMIN_NUM_STATSEL_VIEW "($NumericalStatSelection)"
+#define ADMIN_STATISTIC_VIEW "($StatisticsPer)"
+#define ADMIN_NUMBER_TYPE "Number"
+#define EVENTS_VIEW "($Events)"
+#define ADMIN_NUM_STATSEL_R5_VIEW "($R5Statistics)"
+#define ADMIN_NUM_STATSEL_R6_VIEW "($D6Statistics)"
+
+#define ADMIN_TRENDS_ALL_VIEW "($StatTrendsAll)"
+#define ADMIN_TRENDS_SERVERS_VIEW "($StatTrendsServer)"
+#define ADMIN_TRENDS_DAILY_VIEW "($StatTrendsServerDaily)"
+#define ADMIN_TRENDS_HOURLY_VIEW "($StatTrendsServerHourly)"
+#define ADMIN_TRENDS_DB_VIEW "($StatTrendsDatabase)"
+#define ADMIN_TRENDS_USERS_VIEW "($StatTrendsUser)"
+#define ADMIN_TRENDS_PROFILE_VIEW "($StatTrendsActivityProfile)"
+#define ADMIN_TRENDS_CONNECTIONS_VIEW "($StatTrendsConnections)"
+#define ADMIN_LOADBAL_VIEW "($LoadBalanceStats)"
+#define ADMIN_LOADBAL_PROFILES_VIEW "($LoadBalanceProfiles)"
+
+#define ADMIN_STATNAME_ITEM "StatName"
+#define ADMIN_HASTRENDED_ITEM "HasTrended"
+#define ADMIN_HASPRIME_ITEM "HasPrime"
+#define ADMIN_UNITS_ITEM "Units"
+#define ADMIN_DESCRIPTION_ITEM "Description"
+#define ADMIN_PROFILESTAT_ITEM "IsProfileStat"
+#define ADMIN_LOADBALSTAT_ITEM "IsLoadBalance"
+#define ADMIN_LOADBALCAT_ITEM "LoadBalancingCategory"
+#define ADMIN_LOADBALNAME_ITEM "LoadBalanceName"
+#define ADMIN_COMPOSITESTATS_ITEM "CompositeStats"
+
+#define ADMIN_NUMBERLIST_TYPE "NumberList"
+#define ADMIN_TEXTLIST_TYPE "TextList"
+#define ADMIN_TEXT_TYPE "Text"
+#define ADMIN_TIMEDATE_TYPE "Time"
+#define ADMIN_SMART_UPDT_LINK_ITEM "SmartUpdDBLink"
+#define ADMIN_SU_GOVERNOR_ENABLED "SUGEnabled"
+#define ADMIN_SU_GOVERNOR_MAX_USER "SUGMaxUser"
+
+
+/* Form and view in domadmin used by trends charts */
+#define ADMIN_TRENDS_PROFILES_FORM "GraphTrendsProfile"
+#define ADMIN_TRENDS_PROFILES_VIEW "($GraphTrendsProfiles)"
+
+/* Trends profile types */
+#define ADMIN_TRENDS_PROFILE_SERVER "Server"
+#define ADMIN_TRENDS_PROFILE_DB "Database"
+#define ADMIN_TRENDS_PROFILE_USER "User"
+#define ADMIN_TRENDS_PROFILE_CONNECTION "Connection"
+#define ADMIN_TRENDS_PROFILE_HISTORY "History"
+#define ADMIN_TRENDS_PROFILE_DAILY "Daily"
+#define ADMIN_TRENDS_PROFILE_HOURLY "Hourly"
+#define ADMIN_TRENDS_PROFILE_ACTIVITY "Activity"
+
+/* Database containing UNAME database directory */
+
+#define UNAME_FILE "unames.nsf"
+
+/* Address Book - "ServerAccess" namespace, items, and names */
+
+#define ACCESS_GROUPS_NAMESPACE "$ServerAccess"
+#define ACCESS_GROUPS_NAMESPACE_1 "1\\$ServerAccess"
+
+#define MAIL_GROUPS_NAMESPACE "$MailGroups"
+#define MAIL_GROUPS_NAMESPACE_1 "1\\$MailGroups"
+
+#define ACCESS_ITEM_LISTNAME 0
+#define ACCESS_ITEM_DBINDEX 1
+#define ACCESS_ITEM_DOMAINTYPE 2
+#define ACCESS_GROUPEXP_LOOKUPITEMCOUNT 3
+#define ACCESS_LISTNAME_ITEM "ListName"
+#define ACCESS_GROUPEXP_LOOKUPITEMS "ListName\0$$DBIndex\0$$DomainType"
+
+/* Address Book - $Users name space, to look up server access */
+
+#define ACCESS_LOOKUP_ITEMS "FullName"
+#define ACCESS_ITEM_FULLNAME 0
+#define ACCESS_ITEM_COUNT 1
+
+/* Address Book -- $Adminp name space, for admin proxy agent */
+#define ADMINP_NAMESPACE "$Adminp"
+
+/* Address Book configuration parameters for the administration process */
+#define ADMINP_CONFIG_MAX_THREADS "AdminPMaxThreads" /* number */
+#define ADMINP_CONFIG_INTERVAL "AdminPInterval" /* number */
+#define ADMINP_CONFIG_DAILY_TIME "AdminPDailyTime" /* time */
+#define ADMINP_CONFIG_WEEK_DAYS "AdminPWeekDays" /* text list */
+#define ADMINP_CONFIG_DELAYED_TIME "AdminPDelayedTime"/* time */
+#define ADMINP_CONFIG_DEL_MAIL_FILE "AdminPMailFileDelInt" /* number */
+#define ADMINP_CONFIG_SUSPEND_RANGE "AdminPSuspendRange" /* timedate range */
+#define ADMINP_CONFIG_SAVE_NRESP "AdminPLogSetting"
+#define ADMINP_CONFIG_NAME_CHANGE_X "AdminPNameChangeExpiration"
+
+#define ADMINP_LOCAL_ADMIN "LocalAdmin"
+#define ADMINP_ALLOW_ACCESS "AllowAccess"
+#define ADMINP_DENY_ACCESS "DenyAccess"
+#define ADMINP_CREATE_ACCESS "CreateAccess"
+#define ADMINP_REPLICA_ACCESS "ReplicaAccess"
+#define ADMINP_PT_ACCESS "PTAccess"
+#define ADMINP_PT_CLIENTS "PTClients"
+#define ADMINP_PT_CALLERS "PTCallers"
+#define ADMINP_PT_TARGETS "PTTargets"
+#define ADMINP_LIST_OWNER "ListOwner"
+#define ADMINP_PASSTHRU_SERVER "PassthruServer"
+#define ADMINP_SMTP_ADMINISTRATOR "SMTPAdministrator"
+#define ADMINP_GROUP_TYPE "GroupType"
+#define ADMINP_PRIVATE_LIST "PrivateList"
+#define ADMINP_RESTRICTED_LIST "RestrictedList"
+#define ADMINP_UNRESTRICTED_LIST "UnrestrictedList"
+#define ADMINP_SERVERS_CPU_COUNT "ServerCPUCount"
+#define ADMINP_X509_CERT_PRESENT "$X509CertIsPresent"
+#define ADMINP_CCMAIL_ADMINISTRATOR "CCMAdmin"
+#define ADMINP_REQUESTING_SERVER_ITEM "RequestingServer"
+
+#define ADMINP_ACCESS_SERVER_INPUT_ITEM "AccessServerInput"
+#define ADMINP_ALLOW_NOTES_ADDR_ITEM "AllowNotesAddressesToMail"
+#define ADMINP_DENY_NOTES_ADDR_ITEM "DenyNotesAddressesToMail"
+#define ADMINP_NOI_RESTRICTED_ITEM "NOIRestrictedList"
+#define ADMINP_NOI_UNRESTRICTED_ITEM "NOIUnrestrictedList"
+#define ADMINP_REPORT_RECIPIENTS_ITEM "ReportRecipients"
+
+#define ADMINP_STATS_CPU_COUNT "CPU.Count"
+#define ADMINP_SERVER_PLATFORM "ServerPlatform"
+#define ADMINP_SERVER_DIRECTORY_NAME "ServerDirectoryName"
+#define ADMINP_SERVER_CONFIG_NAB "CfgNABonly"
+
+#define ADMINP_PROFILE_NOTEID "%NoteID"
+#define ADMINP_PROFILE_SIGNATURE_ITEM "$Sig_Signature"
+#define ADMINP_XDOMAIN_TRUSTED_ADMINS_ITEM "CrossDomainTrustedAdmins"
+#define ADMINP_DIR_PROFILE_NAME "DirectoryProfile"
+
+/* values for resource database */
+#define ADMINP_RESOURCE_DOCUMENT "Resource"
+#define ADMINP_RESOURCE_NAME_ITEM "ResourceName"
+#define ADMINP_PROGRAM_FORM "Program"
+
+/* known values of fields in the proxy database document form */
+#define AdminpDelete "0"
+#define AdminpRenameInTheACL "1"
+#define AdminpCopyPublicKey "2"
+#define AdminpStoreServerVersion "3"
+#define AdminpRenameServerInNAB "4"
+#define AdminpRenameUserInNAB "5"
+#define AdminpMoveUserInHier "6"
+#define AdminpDeleteStats "7"
+#define AdminpInitiateNABChange "8"
+#define AdminpRecertServerInNAB "9"
+#define AdminpRecertUserInNAB "10"
+#define AdminpServerClusterAdd "11"
+#define AdminpServerClusterRemove "12"
+#define AdminpCreateReplicas "13"
+#define AdminpMoveReplicas "14"
+#define AdminpPendedDeleteForMove "15"
+#define AdminpDeleteInPersonDocs "16"
+#define AdminpDeleteInTheACL "17"
+#define AdminpDeleteInReadersAuthors "18"
+#define AdminpRenameInPersonDocs "19"
+#define AdminpRenameInReadersAuthors "20"
+#define AdminpDeleteMailFile "21"
+#define AdminpApproveMailFileInfo "22"
+#define AdminpDeleteUnlinkedMailFile "23"
+#define AdminpCreateMailFile "24"
+#define AdminpMonitorMovedReplica "25"
+#define AdminpDeleteChangeRequests "26"
+#define AdminpGetMailFileInfo "27"
+#define AdminpRequestDeleteMailFile "28"
+#define AdminpResourceAdd "29"
+#define AdminpResourceDelete "30"
+#define AdminpApproveResourceDelete "31"
+#define AdminpCreateReplicasCheckAccess "32"
+#define AdminpMoveReplicasCheckAccess "33"
+#define AdminpSetPasswordFields "34"
+#define AdminpUpdateUserPW "35"
+#define AdminpUpdateServerPW "36"
+#define AdminpSetMABField "37"
+#define AdminpRenamePersonInFreeTime "38"
+#define AdminpRenamePersonInMailFile "39"
+#define AdminpRenameGroupInNAB "40"
+#define AdminpRenameGroupInPersonDocs "41"
+#define AdminpRenameGroupInTheACL "42"
+#define AdminpRenameGroupInReadersAuthors "43"
+#define AdminpAddPersonsX509Certificate "44"
+#define AdminpCheckMailServersAccess "45"
+#define AdminpUpgradeUser "46"
+#define AdminpCopyExternalDomainAddresses "47"
+#define AdminpPromoteMailServersAccess "48"
+#define AdminpCreateNewMailFileReplica "49"
+#define AdminpAddNewMailFileFields "50"
+#define AdminpMonitorNewMailFileFields "51"
+#define AdminpReplaceMailFileFields "52"
+#define AdminpLastPushToNewMailServer "53"
+#define AdminpDeletePersonInNAB "54"
+#define AdminpDeleteServerInNAB "55"
+#define AdminpDeleteGroupInNAB "56"
+#define AdminpDelegateMailFile "57"
+#define AdminpApproveDeletePersonInNAB "58"
+#define AdminpApproveDeleteServerInNAB "59"
+#define AdminpApproveRenamePersonInNAB "60"
+#define AdminpApproveRenameServerInNAB "61"
+#define AdminpResourceModify "62"
+#define AdminpUpdateNetworkTables "63"
+#define AdminpCreateISPYMailInDb "64"
+#define AdminpNCMoveReplicasCheckAccess "65"
+#define AdminpNCMoveReplicas "66"
+#define AdminpStoreServerCPUCount "67"
+#define AdminpRenamePersonInUnreadList "68"
+#define AdminpDeleteReplicaAfterMove "69"
+#define AdminpSetDNSFullHostName "70"
+#define AdminpStoreServerPlatform "71"
+#define AdminpApproveDeleteDesignElements "72"
+#define AdminpRequestDeleteDesignElements "73"
+#define AdminpDeleteDesignElements "74"
+#define AdminpApproveDeleteMovedReplica "75"
+#define AdminpRequestDeleteMovedReplica "76"
+#define AdminpSetDomainCatalog "77"
+#define AdminpWebDelegateMailFile "78"
+#define AdminpGetFileInfo "79"
+#define AdminpRequestDeleteFile "80"
+#define AdminpDeleteFile "81"
+#define AdminpApproveFileInfo "82"
+#define AdminpSetWebAdminFields "83"
+#define AdminpAcceleratedCreateReplica "84"
+#define AdminpSetConfigNAB "85"
+#define AdminpStoreServerDirectoryName "86"
+#define AdminpCreateRoamingUserRoamingFiles "87"
+#define AdminpPromoteRoamingServersAccess "88"
+#define AdminpReplaceRoamingServerField "89"
+#define AdminpMonitorMovedRoamingReplica "90"
+#define AdminpCreateRoamingReplStubs "91"
+#define AdminpRemoveRoamingUserRoamingFiles "92"
+#define AdminpCheckRoamingServerAccess "93"
+#define AdminpCreateRoamingReplicas "94"
+#define AdminpCertPublicationRequest "95"
+#define AdminpCrlPublicationRequest "96"
+#define AdminpUserModifyRequest "97"
+#define AdminpCertRemoveRequest "98"
+#define AdminpPolicyPublicationRequest "99"
+#define AdminpLastPushToNewRoamingServer "100"
+#define AdminpSignDatabase "101"
+#define AdminpCAConfigPublicationRequest "102"
+#define AdminpCrlRemoveRequest "103"
+#define AdminpDelegateIMAPMailFiles "104"
+#define AdminpCAConfigToBeSigned "105"
+#define AdminpRejectRenameUserInNAB "106"
+#define AdminpRetractNameChange "107"
+#define AdminpEnableMailAgent "108"
+#define AdminpReportServerUse "109"
+#define AdminpRejectRetractNameChange "110"
+#define AdminpDeleteServerFromCatalog "111"
+#define AdminpCopyTrendsRecord "112"
+#define AdminpDeletePolicy "113"
+#define AdminpApproveRetractNameChange "114"
+#define AdminpApproveRecertify "115"
+#define AdminpApproveNameChange "116"
+#define AdminpApproveNewPublicKeys "117"
+#define AdminpInitiateWebNameChange "118"
+#define AdminpRenameWebNameInTheACL "119"
+#define AdminpRenameWebNameInNAB "120"
+#define AdminpRenameWebNameInPersonDocs "121"
+#define AdminpRenameWebNameInReadersAuthors "122"
+#define AdminpRenameWebNameInFreeTime "123"
+#define AdminpRenameWebNameInMailFile "124"
+#define AdminpRenameWebNameInUnreadList "125"
+#define AdminpRemoveNameChangeInLDAPDir "126"
+#define AdminpChangeHTTPPasswordRequest "127"
+#define AdminpDefineServerMonitorQuery "128"
+#define AdminpCollectServerMonitorData "129"
+#define AdminpConsolidateServerMonitorData "130"
+#define AdminpCreateIMAPDelegations "131"
+#define AdminpDeleteHostedOrg "132"
+#define AdminpUpdateRoamingState "133"
+#define AdminpUpdateRoamingFields "134"
+#define AdminpCreateHostedOrgStorage "135"
+#define AdminpRecertCrossCert "136"
+#define AdminpCreateObjStore "137"
+#define AdminpDeleteHostedOrgStorageGetInfo "138"
+#define AdminpApproveDeleteHostedOrgStorage "139"
+#define AdminpDeleteHostedOrgStorage "140"
+#define AdminpRecertCAInNAB "141"
+#define AdminpFindNameInDomain "142"
+#define AdminpVerifyHostedOrgStorage "143"
+#define AdminpAddGroup "144"
+#define AdminpRecoveryIdRequest "145"
+#define AdminpPublishRecoveryInfo "146"
+#define AdminpDeletePersonInUnreadList "147"
+#define AdminpMonitorRoamingReplStubs "148"
+#define AdminpDelegateOnAdminServer "149"
+#define AdminpCreateReplicasCheckExeTime "150"
+#define AdminpMoveReplicasCheckExeTime "151"
+#define AdminpMoveMailCheckExeTime "152"
+#define AdminpNCMoveReplicasCheckExeTime "153"
+#define AdminpRegNewUserWithPolicy "154"
+#define AdminpRegNewUser "155"
+#define AdminpUpdateServerKeyring "156"
+#define AdminpEnableSSLPorts "157"
+#define AdminpNewAgentsMachine "158"
+#define AdminpXCertPublicationRequest "159"
+#define AdminpWebEnableMailAgent "160"
+#define AdminpUpdateReplicaSettings "161"
+#define AdminpRenameInSharedAgents "162"
+#define AdminpWebMailSetSoftDeletionTime "163"
+#define AdminpRenameInAgentsReadersField "164"
+#define AdminpDeleteInAgentsReadersField "165"
+#define AdminpMonitorServerSSLStatus "166"
+#define AdminpDelegateOnHomeServer "167"
+#define AdminpSetFaultRecoverySettings "168"
+#define AdminpCertNewServerKey "169"
+#define AdminpCertNewPersonKey "170"
+#define AdminpCertNewCertifierKey "171"
+#define AdminpAddDB2ToServerDoc "172"
+#define AdminpMonitorDB2ReplStub "173"
+#define AdminpDB2SetID "174"
+#define AdminpDB2MoveContainer "175"
+#define AdminpRenamePersonInDesignElements "176"
+#define AdminpDeletePersonInDesignElements "177"
+#define AdminpDB2AccessConnection "178"
+#define AdminpRenameWebNameInDesignElements "179"
+#define AdminpRenameGroupInDesignElements "180"
+
+#define AdminpDeleteWord 0
+#define AdminpRenameInTheACLWord 1
+#define AdminpCopyPublicKeyWord 2
+#define AdminpStoreServerVersionWord 3
+#define AdminpRenameServerInNABWord 4
+#define AdminpRenameUserInNABWord 5
+#define AdminpMoveUserInHierWord 6
+#define AdminpDeleteStatsWord 7
+#define AdminpInitiateNABChangeWord 8
+#define AdminpRecertServerInNABWord 9
+#define AdminpRecertUserInNABWord 10
+#define AdminpServerClusterAddWord 11
+#define AdminpServerClusterRemoveWord 12
+#define AdminpCreateReplicasWord 13
+#define AdminpMoveReplicasWord 14
+#define AdminpPendedDeleteForMoveWord 15
+#define AdminpDeleteInPersonDocsWord 16
+#define AdminpDeleteInTheACLWord 17
+#define AdminpDeleteInReadersAuthorsWord 18
+#define AdminpRenameInPersonDocsWord 19
+#define AdminpRenameInReadersAuthorsWord 20
+#define AdminpDeleteMailFileWord 21
+#define AdminpApproveMailFileInfoWord 22
+#define AdminpDeleteUnlinkedMailFileWord 23
+#define AdminpCreateMailFileWord 24
+#define AdminpMonitorMovedReplicaWord 25
+#define AdminpDeleteChangeRequestsWord 26
+#define AdminpGetMailFileInfoWord 27
+#define AdminpRequestDeleteMailFileWord 28
+#define AdminpResourceAddWord 29
+#define AdminpResourceDeleteWord 30
+#define AdminpApproveResourceDeleteWord 31
+#define AdminpCreateReplicasCheckAccessWord 32
+#define AdminpMoveReplicasCheckAccessWord 33
+#define AdminpSetPasswordFieldsWord 34
+#define AdminpUpdateUserPWWord 35
+#define AdminpUpdateServerPWWord 36
+#define AdminpSetMABFieldWord 37
+#define AdminpRenamePersonInFreeTimeWord 38
+#define AdminpRenamePersonInMailFileWord 39
+#define AdminpRenameGroupInNABWord 40
+#define AdminpRenameGroupInPersonDocsWord 41
+#define AdminpRenameGroupInTheACLWord 42
+#define AdminpRenameGroupInReadersAuthorsWord 43
+#define AdminpAddPersonsX509CertificateWord 44
+
+#define AdminpNewAdminpRequestFormat 45
+
+#define AdminpCheckMailServersAccessWord 45
+#define AdminpUpgradeUserWord 46
+#define AdminpCopyExternalDomainAddressesWord 47
+#define AdminpPromoteMailServersAccessWord 48
+#define AdminpCreateNewMailFileReplicaWord 49
+#define AdminpAddNewMailFileFieldsWord 50
+#define AdminpMonitorNewMailFileFieldsWord 51
+#define AdminpReplaceMailFileFieldsWord 52
+#define AdminpLastPushToNewMailServerWord 53
+#define AdminpDeletePersonInNABWord 54
+#define AdminpDeleteServerInNABWord 55
+#define AdminpDeleteGroupInNABWord 56
+#define AdminpDelegateMailFileWord 57
+#define AdminpApproveDeletePersonInNABWord 58
+#define AdminpApproveDeleteServerInNABWord 59
+#define AdminpApproveRenamePersonInNABWord 60
+#define AdminpApproveRenameServerInNABWord 61
+#define AdminpResourceModifyWord 62
+#define AdminpUpdateNetworkTablesWord 63
+#define AdminpCreateISPYMailInDbWord 64
+#define AdminpNCMoveReplicasCheckAccessWord 65
+#define AdminpNCMoveReplicasWord 66
+#define AdminpStoreServerCPUCountWord 67
+#define AdminpRenamePersonInUnreadListWord 68
+#define AdminpDeleteReplicaAfterMoveWord 69
+#define AdminpSetDNSFullHostNameWord 70
+#define AdminpStoreServerPlatformWord 71
+#define AdminpApproveDeleteDesignElementsWord 72
+#define AdminpRequestDeleteDesignElementsWord 73
+#define AdminpDeleteDesignElementsWord 74
+#define AdminpApproveDeleteMovedReplicaWord 75
+#define AdminpRequestDeleteMovedReplicaWord 76
+#define AdminpSetDomainCatalogWord 77
+#define AdminpWebDelegateMailFileWord 78
+#define AdminpGetFileInfoWord 79
+#define AdminpRequestDeleteFileWord 80
+#define AdminpDeleteFileWord 81
+#define AdminpApproveFileInfoWord 82
+#define AdminpSetWebAdminFieldsWord 83
+#define AdminpAcceleratedCreateReplicaWord 84
+#define AdminpSetConfigNABWord 85
+#define AdminpStoreServerDirectoryNameWord 86
+#define AdminpCreateRoamingUserRoamingFilesWord 87
+#define AdminpPromoteRoamingServersAccessWord 88
+#define AdminpReplaceRoamingServerFieldWord 89
+#define AdminpMonitorMovedRoamingReplicaWord 90
+#define AdminpCreateRoamingReplStubsWord 91
+#define AdminpRemoveRoamingUserRoamingFilesWord 92
+#define AdminpCheckRoamingServerAccessWord 93
+#define AdminpCreateRoamingReplicasWord 94
+#define AdminpCertPublicationRequestWord 95
+#define AdminpCrlPublicationRequestWord 96 /* AdminpCrlPublicationRequestWord */
+#define AdminpUserModifyRequestWord 97
+#define AdminpCertRemoveRequestWord 98
+#define AdminpPolicyPublicationRequestWord 99
+#define AdminpLastPushToNewRoamingServerWord 100
+#define AdminpSignDatabaseWord 101
+#define AdminpCAConfigPublicationRequestWord 102 /* AdminpCAConfigPublicationRequestWord */
+#define AdminpCrlRemoveRequestWord 103
+#define AdminpDelegateIMAPMailFilesWord 104
+#define AdminpCAConfigToBeSignedWord 105
+#define AdminpRejectRenameUserInNABWord 106
+#define AdminpRetractNameChangeWord 107
+#define AdminpEnableMailAgentWord 108
+#define AdminpReportServerUseWord 109
+#define AdminpRejectRetractNameChangeWord 110
+#define AdminpDeleteServerFromCatalogWord 111
+#define AdminpCopyTrendsRecordWord 112
+#define AdminpDeletePolicyWord 113
+#define AdminpApproveRetractNameChangeWord 114
+#define AdminpApproveRecertifyWord 115
+#define AdminpApproveNameChangeWord 116
+#define AdminpApproveNewPublicKeysWord 117
+#define AdminpInitiateWebNameChangeWord 118
+#define AdminpRenameWebNameInTheACLWord 119
+#define AdminpRenameWebNameInNABWord 120
+#define AdminpRenameWebNameInPersonDocsWord 121
+#define AdminpRenameWebNameInReadersAuthorsWord 122
+#define AdminpRenameWebNameInFreeTimeWord 123
+#define AdminpRenameWebNameInMailFileWord 124
+#define AdminpRenameWebNameInUnreadListWord 125
+#define AdminpRemoveNameChangeInLDAPDirWord 126
+#define AdminpChangeHTTPPasswordRequestWord 127
+#define AdminpDefineServerMonitorQueryWord 128
+#define AdminpCollectServerMonitorDataWord 129
+#define AdminpConsolidateServerMonitorDataWord 130
+#define AdminpCreateIMAPDelegationsWord 131
+#define AdminpDeleteHostedOrgWord 132
+#define AdminpUpdateRoamingStateWord 133
+#define AdminpUpdateRoamingFieldsWord 134
+#define AdminpCreateHostedOrgStorageWord 135
+#define AdminpRecertCrossCertWord 136
+#define AdminpCreateObjStoreWord 137
+#define AdminpDeleteHostedOrgStorageGetInfoWord 138
+#define AdminpApproveDeleteHostedOrgStorageWord 139
+#define AdminpDeleteHostedOrgStorageWord 140
+#define AdminpRecertCAInNABWord 141
+#define AdminpFindNameInDomainWord 142
+#define AdminpVerifyHostedOrgStorageWord 143
+#define AdminpAddGroupWord 144
+#define AdminpRecoveryIdRequestWord 145
+#define AdminpPublishRecoveryInfoWord 146
+#define AdminpDeletePersonInUnreadListWord 147
+#define AdminpMonitorRoamingReplStubsWord 148
+#define AdminpDelegateOnAdminServerWord 149
+#define AdminpCreateReplicasCheckExeTimeWord 150
+#define AdminpMoveReplicasCheckExeTimeWord 151
+#define AdminpMoveMailCheckExeTimeWord 152
+#define AdminpNCMoveReplicasCheckExeTimeWord 153
+#define AdminpRegNewUserWithPolicyWord 154
+#define AdminpRegNewUserWord 155
+#define AdminpUpdateServerKeyringWord 156
+#define AdminpEnableSSLPortsWord 157
+#define AdminpNewAgentsMachineWord 158
+#define AdminpXCertPublicationRequestWord 159
+#define AdminpWebEnableMailAgentWord 160
+#define AdminpUpdateReplicaSettingsWord 161
+#define AdminpRenameInSharedAgentsWord 162
+#define AdminpWebMailSetSoftDeletionTimeWord 163
+#define AdminpRenameInAgentsReadersFieldWord 164
+#define AdminpDeleteInAgentsReadersFieldWord 165
+#define AdminpMonitorServerSSLStatusWord 166
+#define AdminpDelegateOnHomeServerWord 167
+#define AdminpSetFaultRecoverySettingsWord 168
+#define AdminpCertNewServerKeyWord 169
+#define AdminpCertNewPersonKeyWord 170
+#define AdminpCertNewCertifierKeyWord 171
+#define AdminpAddDB2ToServerDocWord 172
+#define AdminpMonitorDB2ReplStubWord 173
+#define AdminpDB2SetIDWord 174
+#define AdminpDB2MoveContainerWord 175
+#define AdminpRenamePersonInDesignElementsWord 176
+#define AdminpDeletePersonInDesignElementsWord 177
+#define AdminpDB2AccessConnectionWord 178
+#define AdminpRenameWebNameInDesignElementsWord 179
+#define AdminpRenameGroupInDesignElementsWord 180
+
+#define ADMINP "Adminp"
+#define ADMINP_ALL_SERVERS "*"
+#define ADMINP_DELETE_MAIL_FILE_ON_HOME_SERVER "1"
+#define ADMINP_DELETE_MAIL_FILE_REPLICAS "2"
+#define ADMINP_DELETE_ONE_MAIL_FILE_REPLICA "3"
+#define ADMINP_DELETE_FILE_REPLICAS "4"
+#define ADMINP_DELETE_ONE_FILE_REPLICA "5"
+#define ADMINP_DISABLED "0"
+#define ADMINP_ENABLED "1"
+
+/* defines for "AdminpChangeHTTPPasswordRequest" sub-functions */
+#define ADMINP_CHANGE_HTTP_PASSWORD_NEW 0
+#define ADMINP_CHANGE_HTTP_PASSWORD_SYNC 1
+
+/* the view we use from the proxy database */
+#define ADMINP_MAIN_VIEW "All Requests by Action"
+#define ADMINP_BY_SERVER_RESPONSES_VIEW "($LoggedEvents)"
+#define ADMINP_ANY_SERVER_RESPONSES_VIEW "($LoggedAdminServerEvents)"
+#define ADMINP_REQUESTS_VIEW "($Requests)"
+#define ADMINP_RENAME_IN_ACL_DELETE_VIEW "($RenameInACLAndDeleteRequests)"
+#define ADMINP_RECEIVED_REQUESTS_VIEW "($ReceivedRequests)"
+#define ADMINP_RECEIVE_CONFIG_VIEW "($ReceiveCrossDomainRequests)"
+#define ADMINP_SUBMIT_CONFIG_VIEW "($SubmitCrossDomainRequests)"
+#define ADMINP_ORIG_UNID_VIEW "$Requests by UNID"
+
+/* fields in the proxy database document form */
+
+#define ADMINP_PROXY_DOCUMENT "AdminRequest"
+#define ADMINP_PROXY_XDOMAIN_DOCUMENT "CrossDomainAdminRequest"
+#define ADMINP_DOC_SERVER_ITEM "ProxyServer"
+#define ADMINP_ROAMING_SERVER_ITEM "ProxyRoamingServer"
+#define ADMINP_ACTION_ITEM "ProxyAction"
+#define ADMINP_DOC_SERVER_BUILD_NUMBER_ITEM "ProxyServerBuildNumber"
+#define ADMINP_DOC_SOURCE_SERVER_ITEM "ProxySourceServer"
+#define ADMINP_DOC_DEST_SERVER_ITEM "ProxyDestinationServer"
+#define ADMINP_DOC_CLUSTER_NAME_ITEM "ProxyClusterName"
+#define ADMINP_NAME_LIST_ITEM "ProxyNameList"
+#define ADMINP_DOC_AUTHOR_ITEM "ProxyAuthor"
+#define ADMINP_DOC_PROCESS_ITEM "ProxyProcess"
+#define ADMINP_DOC_TARGET_CERTIFIER_ITEM "ProxyTargetCertifier"
+#define ADMINP_DOC_CERTIFICATE_ITEM "ProxyCertificate"
+#define ADMINP_DOC_ROLLOVER_CERT_ITEM "ProxyRolloverCert"
+#define ADMINP_DOC_CHANGE_REQUEST_ITEM "ProxyChangeRequest"
+#define ADMINP_DOC_CHANGE_SIGNATURE_ITEM "ProxyChangeSignature"
+#define ADMINP_DOC_REPLICA_ID_ITEM "ProxyReplicaId"
+#define ADMINP_ROAMING_DB_REPIDS "ProxyRoamingReplicaIds"
+#define ADMINP_ROAMING_DB_LIST "ProxyRoamingReplicaList"
+#define ADMINP_ROAMING_DB_DISPLAY_LIST "ProxyRoamingPendingReplicaList"
+#define ADMINP_ROAMING_DB_PROMOTE_LIST "ProxyRoamingPromoteServerList"
+#define ADMINP_ROAMING_DB_REMOVE_LIST "ProxyRoamingRemoveReplicaList"
+#define ADMINP_DOC_DATABASE_PATH_ITEM "ProxyDatabasePath"
+#define ADMINP_ROAMING_DATABASE_PATH_ITEM "ProxyRoamingDatabasePath"
+#define ADMINP_ROAMING_DATABASE_DEST_PATH_ITEM "ProxyRoamingDestDatabasePath"
+#define ADMINP_ROAMING_ADDRESS_BOOK_ITEM "ProxyRoamingAddressBook"
+#define ADMINP_ROAMING_STATE_CHANGE_ITEM "ProxyRoamingStateChange"
+#define ADMINP_ROAMING_MODE_ITEM "ProxyRoamingMode"
+#define ADMINP_ROAMING_SETTING_ITEM "ProxyRoamingSetting"
+#define ADMINP_ROAMING_CLEANUP_PERIOD_ITEM "ProxyRoamingCleanupPeriod"
+#define ADMINP_ROAMING_ID_IN_NAB_ITEM "ProxyRoamingIdInNab"
+#define ADMINP_ROAMING_CLIENT_PROMPT_ITEM "ProxyRoamingClientPrompt"
+#define ADMINP_DOC_DATABASE_SOURCE_PATH_ITEM "ProxyDatabaseSourcePath"
+#define ADMINP_DATABASE_DESTINATION_PATH_ITEM "ProxyDestinationDatabasePath"
+#define ADMINP_DOC_DATABASE_NAME_ITEM "ProxyDatabaseName"
+#define ADMINP_DOC_COMMENTS_ITEM "ProxyRequestComments"
+#define ADMINP_DOC_DELETE_MAIL_FILE_ITEM "ProxyDeleteMailfile"
+#define ADMINP_DOC_DELETE_FILE_ITEM "ProxyDeleteFile"
+#define ADMINP_DOC_HOME_SERVER_ITEM "ProxyHomeServer"
+#define ADMINP_DOC_EXECUTION_TIME_ITEM "ProxyExecutionTime"
+#define ADMINP_DOC_MAIL_SERVER_ITEM "ProxySourceServer"
+#define ADMINP_DOC_DATABASE_ACL_ITEM "ProxyDatabaseACL"
+#define ADMINP_DOC_DATABASE_CLASS_ITEM "ProxyDatabaseTemplateName"
+#define ADMINP_DOC_RESOURCE_SITE_ITEM "ProxyResourceSite"
+#define ADMINP_DOC_RESOURCE_TYPE_ITEM "ProxyResourceType"
+#define ADMINP_DOC_RESOURCE_CAPACITY_ITEM "ProxyResourceCapacity"
+#define ADMINP_DOC_RESOURCE_DESCRIPTION_ITEM "ProxyResourceDescription"
+#define ADMINP_DOC_RESOURCE_DOMAIN_ITEM "ProxyResourceDomain"
+#define ADMINP_DOC_PASS_PASSWORD_ITEM "ProxyPassword"
+#define ADMINP_DOC_PASS_CHECK_PASSWORD_ITEM "ProxyPasswordCheck"
+#define ADMINP_DOC_PASS_GRACE_PERIOD_ITEM "ProxyPasswordGracePeriod"
+#define ADMINP_DOC_PASS_CHANGE_INTERVAL_ITEM "ProxyPasswordChangeInterval"
+#define ADMINP_DOC_PASS_QUALITY_IS_LENGTH_ITEM "ProxyPasswordQualityIsLength"
+#define ADMINP_DOC_PASS_QUALITY_ITEM "ProxyPasswordQuality"
+#define ADMINP_DOC_PASS_HISTORY_COUNT_ITEM "ProxyPasswordHistoryCount"
+#define ADMINP_DOC_PASS_HTTP_GRACE_PERIOD_ITEM "ProxyHTTPPasswordGracePeriod"
+#define ADMINP_DOC_PASS_HTTP_CHANGE_INTERVAL_ITEM "ProxyHTTPPasswordChangeInterval"
+#define ADMINP_DOC_PASS_HTTP_OPTIONS_ITEM "ProxyHTTPPasswordOptions"
+#define ADMINP_DOC_PASS_HTTP_QUALITY_ITEM "ProxyHTTPPasswordQuality"
+#define ADMINP_DOC_PASS_HTTP_FUNCTION_ITEM "ProxyHTTPPasswordFunction"
+#define ADMINP_DOC_PASS_HTTP_SYNCH_ITEM "ProxyHTTPPasswordNotesSync"
+#define ADMINP_DOC_PASS_HTTP_QUALITY_IS_LENGTH_ITEM "ProxyHTTPPasswordQualityIsLength"
+#define ADMINP_DOC_APPROVAL_FLAG_ITEM "ApprovalFlag"
+#define ADMINP_DOC_IMMEDIATE_FLAG_ITEM "ProxyImmediateFlag"
+#define ADMINP_NEW_GROUP_NAME_ITEM "ProxyNewGroupName"
+#define ADMINP_DOC_PERSONS_CERT_ITEM "ProxyUserCertificate"
+#define ADMINP_NAME_IN_X509_CERT_ITEM "ProxyNameInX509Certificate"
+#define ADMINP_DOC_DISPLAY_DESIGN_ELEMENTS_ITEM "ProxyDesignElementList"
+#define ADMINP_DOC_PRIVATE_DESIGN_ELEMENTS_ITEM "$ProxyPrivateDesignElements"
+#define ADMINP_DOC_DELETED_OBJECT_ITEM "$ProxyDeletedObject"
+#define ADMINP_DOC_MOVE_MAIL_DELETE_ITEM "$ProxyMoveMailDelete"
+#define ADMINP_DOC_ACL_FLAG_ITEM "ACLFlag"
+#define ADMINP_DOC_APPROVED_ITEM "$ProxyApproved"
+#define ADMINP_NAME_IN_CRL_ISSUEDBY_ITEM "ProxyNameInCRLIssuedBy"
+#define ADMINP_DOC_CERTIFIERS_CRL_ITEM "ProxyCertifierCrl"
+#define ADMINP_PUBLISH_REQUESTOR_NOTEID_ITEM "ProxyRequestorNoteId"
+#define ADMINP_CERTIFICATE_TYPE_ITEM "ProxyCertificateType"
+#define ADMINP_PUBLISH_ACTION_ITEM "ProxyPublishAction"
+#define ADMINP_PA_NAME_ITEM "ProxyPAName"
+#define ADMINP_DOC_FALLBACK_REQUEST_ITEM "ProxyReplicaFallbackRequest"
+#define ADMINP_FORMAT_PREF_INCOMING_MAIL_ITEM "ProxyFormatPrefIncomingMail"
+#define ADMINP_ENCRYPT_INCOMING_MAIL_ITEM "ProxyEncryptIncomingMail"
+#define ADMINP_INTERNET_PASSWORD_DIGEST_ITEM "ProxyInternetPasswordDigest"
+#define ADMINP_USERNAME_ITEM "ProxyUserName"
+#define ADMINP_ACCOUNT_ITEM "ProxyAccountName"
+#define ADMINP_POLICY_NAME_ITEM "ProxyPolicyName"
+#define ADMINP_POLICY_DB_NAME_ITEM "ProxyPolicyDBName"
+#define ADMINP_POLICY_DB_ATTACHMENT_ITEM "ProxyPolicyDBAttachment"
+#define ADMINP_POLICY_RA_LIST_ITEM "RegistrationAuthorities"
+#define ADMINP_POLICY_CA_LIST_ITEM "CAAdministrators"
+#define ADMINP_POLICY_CCS_STAMP_ITEM "ProxyPolicyCCSStamp"
+#define ADMINP_POLICY_SERVERNAME_ITEM "ProxyPolicyServerName"
+#define ADMINP_POLICY_LOCKID_ITEM "ProxyPolicyLockId"
+#define ADMINP_POLICY_ICLNAME_ITEM "ProxyPolicyICLName"
+#define ADMINP_PUBLISH_FLAGS_ITEM "ProxyPublishFlags"
+#define ADMINP_PUBLISH_CERT_FIELD_ITEM "ProxyPublishCertField"
+#define ADMINP_DOC_CLUSTER_MATES "ProxyClusterMates"
+#define ADMINP_DOC_CLUSTER_MATES_PATH "ProxyClusterMatesPath"
+#define ADMINP_DOC_CLUSTER_DELETE_REP "ProxyClusterDeleteRep"
+#define ADMINP_DOC_IMAP_DELEGATEES_ITEM "ProxyIMAPDelegatees"
+#define ADMINP_DOC_IMAP_MAILFILES_ITEM "ProxyIMAPDelegateesMailFiles"
+#define ADMINP_DOC_SECNAB_PATH_ITEM "ProxySecondaryDirectoryPath"
+#define ADMINP_DOC_SECNAB_NAME_ITEM "ProxySecondaryDirectoryName"
+#define ADMINP_DOC_SECNAB_REPLICA_ID_ITEM "ProxySecondaryDirectoryReplicaId"
+#define ADMINP_DOC_RETRACT_NAME_UNID_ITEM "ProxyRetractNameChangeUNID"
+#define ADMINP_NEW_WEB_NAME_ITEM "ProxyNewWebName"
+#define ADMINP_DOC_NEW_WEB_FIRST_NAME_ITEM "ProxyNewWebFirstName"
+#define ADMINP_DOC_NEW_WEB_MI_ITEM "ProxyNewWebMI"
+#define ADMINP_DOC_NEW_WEB_LAST_NAME_ITEM "ProxyNewWebLastName"
+#define ADMINP_NEW_HTTPPASSWORD_ITEM "ProxyNewHTPPPassword"
+#define ADMINP_OLD_HTTPPASSWORD_ITEM "ProxyOldHTPPPassword"
+#define ADMINP_DOC_TASK_TYPE_LIST_ITEM "ProxyTaskTypes"
+#define ADMINP_DOC_TASK_SEVERITY_ITEM "ProxyTaskSeverity"
+#define ADMINP_DOC_STATS_TYPE_LIST_ITEM "ProxyStatisticTypes"
+#define ADMINP_DOC_SMON_SERVERS_ITEM "ProxyMonitoredServer"
+#define ADMINP_DOC_STATREP_SERVER_ITEM "ProxyStaterepServer"
+#define ADMINP_DOC_SMON_TIMEFRAME_START_ITEM "ProxyMonitorTimeFrameStart"
+#define ADMINP_DOC_SMON_TIMEFRAME_END_ITEM "ProxyMonitorTimeFrameEnd"
+#define ADMINP_DOC_SMON_PARENT_UNID_ITEM "ProxyMonitorParentUNID"
+#define ADMINP_DOC_SERVER_RESTARTS_ITEM "ProxyServerRestarts"
+#define ADMINP_DOC_IGNORE_STATISTICS_ITEM "ProxyIgnoreTheseStatistics"
+#define ADMINP_DOC_IGNORE_EVENTS_ITEM "ProxyIgnoreTheseEvents"
+#define ADMINP_DOC_DIRECTORY_SERVER_NAME_ITEM "ProxyDirectoryServerName"
+#define ADMINP_DOC_DIRECTORY_NAME_ITEM "ProxyDirectoryName"
+#define ADMINP_DOC_DIRECTORY_TITLE_ITEM "ProxyDirectoryTitle"
+#define ADMINP_DOC_DIRECTORY_REPLICA_ID_ITEM "$ProxyDirectoryReplicaId"
+#define ADMINP_DOC_DIRECTORY_NOTE_UNID_ITEM "ProxyDirectoryNoteUNID"
+#define ADMINP_DOC_MAIL_SERVER_DNS_ITEM "ProxyMailServerDNS"
+#define ADMINP_DOC_MAIL_DOMAIN_ITEM "ProxyMailDomain"
+#define ADMINP_DOC_IS_WEB_MAIL_USER_ITEM "ProxyIsWebMailUser"
+#define ADMINP_DOC_HOSTED_ORG_ITEM "ProxyHostedOrg"
+#define ADMINP_DOC_HOSTED_ORG_ACTION_ITEM "ProxyHostedOrgAction"
+#define ADMINP_DOC_HOSTED_ORG_STORAGE_ITEM "ProxyHostedOrgStorage"
+#define ADMINP_DOC_WEB_NAME_CHANGE_EXPIRE_ITEM "ProxyWebNameChangeExpires"
+#define ADMINP_DOC_SHORT_NAME_ITEM "ProxyShortName"
+#define ADMINP_DOC_INTERNET_ADDRESS_ITEM "ProxyInternetAddress"
+#define ADMINP_DOC_NEW_DOMAIN_ITEM "ProxyNewDomain"
+#define ADMINP_DOC_OLD_DOMAIN_ITEM "ProxyOldDomain"
+#define ADMINP_HTTP_PASSWORD_SYNC_DATE_ITEM "ProxyHTTPSyncDate"
+#define ADMINP_DOC_AGENT_TO_SIGN_ITEM "ProxyAgentToSign"
+#define ADMINP_NEW_RESOURCE_NAME_ITEM "ProxyNewResourceName"
+#define ADMINP_DOC_RETIRE_DB_ITEM "ProxyRetireDb"
+#define ADMINP_CASCADE_DESIGN_ELEMENTS_ITEM "ProxyCascadeDesignElements"
+#define ADMINP_DOC_CREATE_TRENDS_REQ "ProxyCreateTrends"
+#define ADMINP_MAJOR_VERSION_NUMBER "MajVer"
+#define ADMINP_MINOR_VERSION_NUMBER "MinVer"
+#define ADMINP_QMR_VERSION_NUMBER "QMRVer"
+#define ADMINP_QMU_VERSION_NUMBER "QMUVer"
+#define ADMINP_HOT_VERSION_NUMBER "HotVer"
+#define ADMINP_FIXP_VERSION_NUMBER "FixPVer"
+#define ADMINP_FLAGS_VERSION_NUMBER "FlagsVer"
+#define ADMINP_DOC_MEMBER_LIST_ITEM "ProxyMemberList"
+#define ADMINP_DOC_AGENT_ACTIVATABLE_ITEM "ProxyAgentActivatable"
+#define ADMINP_DOC_AGENT_ENABLE_ITEM "ProxyAgentEnable"
+#define ADMINP_RECOVERY_INFO "RecoveryInfo"
+#define ADMINP_RECOVERY_INFO_TIMESTAMP "RecoveryInfoTimeStamp"
+#define ADMINP_CLIENT_HASH "ClntDgst"
+#define ADMINP_CLIENT_RECORD_DYNCONFIG "ClientInfoDynconfig"
+#define ADMINP_PROXY_MAINTAIN_DBQUOTA "ProxyMaintainDBQuota"
+#define ADMINP_DBQUOTA_WARNING_ITEM "ProxyDBQuotaWarning"
+#define ADMINP_DBQUOTA_LIMIT_ITEM "ProxyDBQuotaLimit"
+#define ADMINP_DB2_DEFAULT_ITEM "ProxyDB2Default"
+#define ADMINP_DB2_RESTART_ITEM "ProxyDB2RestartServer"
+#define ADMINP_DB2_ACCESS_COMMAND "ProxyDB2AccessCommand"
+#define ADMINP_DB2_ACCESS_DESTSRV "ProxyDB2AccessDestServer"
+#define ADMINP_DB2_ACCESS_DESTDOM "ProxyDB2AccessDestDomain"
+#define ADMINP_DB2_ACCESS_SRCSRV "ProxyDB2AccessSrcServer"
+#define ADMINP_DB2_ACCESS_SRCDOM "ProxyDB2AccessSrcDomain"
+#define ADMINP_DB2_ACCESS_OPTNET "ProxyDB2AccessOptNetAddress"
+#define ADMINP_DB2_ACCESS_PORTNAM "ProxyDB2AccessPortName"
+
+/* fields in the delete hosted organization adminp request */
+#define ADMINP_ORG_NAME_ITEM "Fullname"
+#define ADMINP_ORG_DIR_ITEM "Pathname"
+
+/* fields in the proxy database log form */
+#define ADMINP_PROXY_LOG "AdminLog"
+#define ADMINP_LOG_ACTION_REQUESTOR_ITEM "ProxyActionRequestor"
+#define ADMINP_LOG_SERVER_NAME_ITEM "ProxyServerName"
+#define ADMINP_LOG_ACTION_START_TIME_ITEM "ActionStartTime"
+#define ADMINP_LOG_ACTION_END_TIME_ITEM "ActionEndTime"
+#define ADMINP_LOG_DB_LIST_ITEM "ProxyDbList"
+#define ADMINP_LOG_STATUS_ITEM "ProxyStatus"
+#define ADMINP_LOG_STATUS_CODES_ITEM "ProxyStatusCodes"
+#define ADMINP_LOG_MODIFIED_RESPONSE_ITEM "ModifiedFlag"
+#define ADMINP_LOG_SHOW_MODIFIED_ITEM "ShowModified"
+#define ADMINP_LOG_OLD_NAME_ITEM "OldName"
+#define ADMINP_LOG_NEW_NAME_ITEM "NewName"
+#define ADMINP_LOG_ACTION_COMMENTS_ITEM "ActionComments"
+#define ADMINP_LOG_SHOW_ERROR "ErrorFlag"
+#define ADMINP_LOG_REPLICA_CREATION_TIME "ReplicaCreationTime"
+#define ADMINP_LOG_CREATED_DELETE_REQUEST "DeleteRequestCreated"
+#define ADMINP_LOG_SIGNED_NOTES "ProxySignedDocs"
+#define ADMINP_LOG_IN_PROGRESS "AdminPInProgress"
+#define ADMINP_LOG_SENT_TO_DOMAINS "ProxySentToDomains"
+#define ADMINP_LOG_ADD_IN_NAME "ProxyAddInProcess"
+#define ADMINP_LOG_ADD_IN_SIGNER "ProxyAddInSigner"
+#define ADMINP_LOG_PRIVATE_AGENTS "ProxyPrivateAgents"
+#define ADMINP_LOG_PRIVATE_FOLDERS "ProxyPrivateFolders"
+#define ADMINP_LOG_PRIVATE_VIEWS "ProxyPrivateViews"
+#define ADMINP_LOG_SHARED_AGENTS "ProxySharedAgents"
+#define ADMINP_LOG_NAME_EXPIRATION_ITEM "ProxyNameExpiration"
+#define ADMINP_LOG_ERROR_DBS "$AdminpErrorDbs"
+#define ADMINP_LOG_NO_ERROR_DBS "$AdminpNoErrorDbs"
+#define ADMINP_LOG_DESIGN_DBS "$AdminpDesignDbs"
+#define ADMINP_LOG_DESIGN_DB_LINKS "$AdminpDesignDbLinks"
+#define ADMINP_LOG_AGENT_REPLY_TO "$AgentReplyTo"
+#define ADMINP_LOG_RETRY_TIME_ITEM "ProxyRetryTime"
+#define ADMINP_LOG_ORG_LIST "ProxyOrgList"
+#define ADMINP_LOG_FOUND_IN_ECL "ProxyFoundECLDocs"
+#define ADMINP_LOG_SHARED_FOLDERS "ProxySharedFolders"
+#define ADMINP_LOG_SHARED_VIEWS "ProxySharedViews"
+#define ADMINP_LOG_SHARED_AGENTS_MODIFIED "ProxySharedAgentsModified"
+#define ADMINP_LOG_SHARED_FORMS "ProxySharedForms"
+#define ADMINP_LOG_UNSCHEDULED_AGENTS "ProxyUnscheduledAgents"
+#define ADMINP_LOG_AGENTS_WITH_READERS "ProxyAgentsWithReaders"
+#define ADMINP_LOG_DIRECTORY_ERROR_ITEM "ProxyDirectoryError"
+#define ADMINP_LOG_DIRECTORY_NOERROR_ITEM "ProxyDirectoryNoError"
+#define ADMINP_LOG_DIR_ERROR_DISP_ITEM "ProxyDirectoryErrorDisp"
+#define ADMINP_LOG_FOUND_IN_DIRECTORY "ProxyFoundNABDocs"
+#define ADMINP_LOG_LAST_ENTRY_REMOVED_ITEM "ProxyLastEntryRemoved"
+#define ADMINP_LOG_EXPIRED_NAME_CHANGES "ProxyExpiredNameChanges"
+
+/* fields in the proxy database profiles */
+
+#define ADMINP_PROFILE_TO_DOMAINS "ToDomains"
+#define ADMINP_PROFILE_FROM_DOMAINS "FromDomains"
+#define ADMINP_PROFILE_INBOUND_REP_SERVERS "InboundReplicaServers"
+#define ADMINP_PROFILE_OUTBOUND_REP_SERVERS "OutboundReplicaServers"
+#define ADMINP_PROFILE_OUTBOUND_REP_DOMAINS "OutboundReplicaDomains"
+#define ADMINP_INBOUND_APPROVED_SIGNERS "InboundApprovedSigners"
+#define ADMINP_OUTBOUND_APPROVED_SIGNERS "OutboundApprovedSigners"
+
+/* fields in the new user registration requests */
+/* REG_USER_INFO fields */
+#define ADMINP_NEW_USER_ORG_UNIT_ITEM "ProxyNewUserOrgUnit"
+#define ADMINP_NEW_USER_ALTORG_UNIT_ITEM "ProxyNewUserAltOrgUnit"
+#define ADMINP_NEW_USER_ALTNAME_ITEM "ProxyNewUserAltName"
+#define ADMINP_NEW_USER_ALTLANGUAGE_ITEM "ProxyNewUserAltLanguageName"
+#define ADMINP_NEW_USER_FIRST_NAME_ITEM "ProxyNewUserFirstName"
+#define ADMINP_NEW_USER_MIDDLE_NAME_ITEM "ProxyNewUserMiddleName"
+#define ADMINP_NEW_USER_LAST_NAME_ITEM "ProxyNewUserLastName"
+#define ADMINP_NEW_USER_PASSWORD_ITEM "ProxyNewUserPassword"
+#define ADMINP_NEW_USER_PASSWORD_QUALITY_ITEM "ProxyNewUserPasswordQuality"
+#define ADMINP_NEW_USER_SHORT_NAME_ITEM "ProxyNewUserShortName"
+#define ADMINP_NEW_USER_IADDRESS_ITEM "ProxyNewUserInternetAddress"
+#define ADMINP_NEW_USER_PREFLANGUAGE_ITEM "ProxyNewUserPrefLanguage"
+
+/* REG_MAIL_INFO fields */
+#define ADMINP_NEW_USER_MAIL_SYSTEM_ITEM "ProxyNewUserMailSystem"
+#define ADMINP_NEW_USER_MAIL_OWNER_ACCESS_ITEM "ProxyNewUserMailOwnerAccess"
+#define ADMINP_NEW_USER_DBQUOTA_LIMIT_ITEM "ProxyNewUserDbQuotaSizeLimit"
+#define ADMINP_NEW_USER_DBQUOTA_WARNING_ITEM "ProxyNewUserDbQuotaWarningThreshold"
+#define ADMINP_NEW_USER_MAIL_SERVER_ITEM "ProxyNewUserMailServer"
+#define ADMINP_NEW_USER_MAIL_FILE_ITEM "ProxyNewUserMailFile"
+#define ADMINP_NEW_USER_MAIL_TEMPLATE_ITEM "ProxyNewUserMailTemplate"
+#define ADMINP_NEW_USER_MAIL_FORWARD_ITEM "ProxyNewUserMailForwardAddress"
+#define ADMINP_NEW_USER_MAIL_MANAGER_ITEM "ProxyNewUserMailManager"
+#define ADMINP_NEW_USER_MAIL_REP_SERVERS_ITEM "ProxyNewUserMailReplicaServers"
+
+/* REG_ROAMING_INFO fields */
+#define ADMINP_NEW_USER_ROAMING_SERVER_ITEM "ProxyNewUserRoamingServer"
+#define ADMINP_NEW_USER_ROAMING_SUBDIR_ITEM "ProxyNewUserRoamingSubDir"
+#define ADMINP_NEW_USER_ROAMN_DB_ITEM "ProxyNewUserRoamingDB"
+#define ADMINP_NEW_USER_ROAMN_MODE_ITEM "ProxyNewUserRoamingMode"
+#define ADMINP_NEW_USER_ROAMN_CLEANUP_MODE_ITEM "ProxyNewUserRoamingCleanupMode"
+#define ADMINP_NEW_USER_ROAMN_CLEANUP_PERIOD_ITEM "ProxyNewUserRoamingCleanupPeriod"
+#define ADMINP_NEW_USER_ROAMN_REP_SERVERS_ITEM "ProxyNewUserRoamingReplicaServers"
+
+#define ADMINP_NEW_USER_IDTYPE_ITEM "ProxyNewUserIDType"
+#define ADMINP_NEW_USER_IDEXPIRATION_ITEM "ProxyNewUserIDExpiration"
+#define ADMINP_NEW_USER_GROUPS_ITEM "ProxyNewUserGroups"
+#define ADMINP_NEW_USER_ID_ITEM "ProxyNewUserIDFile"
+#define ADMINP_NEW_USER_LOCATION_ITEM "ProxyNewUserLocation"
+#define ADMINP_NEW_USER_COMMENT_ITEM "ProxyNewUserComment"
+#define ADMINP_NEW_USER_PROFILE_ITEM "ProxyNewUserProfile"
+#define ADMINP_NEW_USER_LOCAL_ADMIN_ITEM "ProxyNewUserLocalAdmin"
+#define ADMINP_NEW_USER_FLAGS_ITEM "ProxyNewUserFlags"
+#define ADMINP_NEW_USER_EXTFLAGS_ITEM "ProxyNewUserExtFlags"
+
+/* server keyring update request */
+#define ADMINP_PRIVATE_KEY_ITEM "ProxyPrivateKey"
+#define ADMINP_KEYRING_PASSWORD_ITEM "ProxyKeyringPassword"
+#define ADMINP_KEYRING_FILE_ITEM "ProxyKeyringFile"
+#define ADMINP_SUBJECT_ITEM "ProxySubjectName"
+#define ADMINP_ISSUER_ITEM "ProxyIssuerName"
+
+/* fields in the proxy database log form */
+#define ADMINP_PROXY_NAMEINDIR_REPORT "AdminNameInDirRpt"
+#define ADMINP_PROXY_NAMEINACL_REPORT "AdminNameInAclRpt"
+#define ADMINP_PROXY_NAMEINAGENT_REPORT "AdminNameInAgentRpt"
+#define ADMINP_PROXY_NAMEINFOLDER_REPORT "AdminNameInFolderRpt"
+#define ADMINP_PROXY_NAMEINNAMEFLD_REPORT "AdminNameInNamesFldRpt"
+#define ADMINP_PROXY_NAMEINXACL_REPORT "AdminNameInxAclRpt"
+#define ADMINP_PROXY_NAMEINECL_REPORT "AdminNameInEclRpt"
+#define ADMINP_PROXY_NAMEINPOLICY_REPORT "AdminNameInPolicyRpt"
+
+#define ADMINP_MAIL_FILE_TITLE_ITEM ADMINP_DOC_DATABASE_NAME_ITEM
+
+/* generic admin4.nsf fields */
+#define ADMINP_PROXY_TEXT_ITEM_1 "ProxyTextItem1"
+#define ADMINP_PROXY_TEXT_ITEM_2 "ProxyTextItem2"
+#define ADMINP_PROXY_TEXT_ITEM_3 "ProxyTextItem3"
+#define ADMINP_PROXY_TEXT_ITEM_4 "ProxyTextItem4"
+#define ADMINP_PROXY_TEXT_ITEM_5 "ProxyTextItem5"
+#define ADMINP_PROXY_TEXT_ITEM_6 "ProxyTextItem6"
+#define ADMINP_PROXY_TEXT_ITEM_7 "ProxyTextItem7"
+#define ADMINP_PROXY_TEXT_ITEM_8 "ProxyTextItem8"
+#define ADMINP_PROXY_TEXT_ITEM_9 "ProxyTextItem9"
+#define ADMINP_PROXY_TEXT_ITEM_10 "ProxyTextItem10"
+
+#define ADMINP_PROXY_DATE_ITEM_1 "ProxyDateItem1"
+#define ADMINP_PROXY_DATE_ITEM_2 "ProxyDateItem2"
+#define ADMINP_PROXY_DATE_ITEM_3 "ProxyDateItem3"
+
+#define ADMINP_PROXY_NUM_ITEM_1 "ProxyNumItem1"
+#define ADMINP_PROXY_NUM_ITEM_2 "ProxyNumItem2"
+
+#define ADMINP_PROXY_CREATE_FT_INDEX "ProxyCreateFullTextIndex"
+#define ADMINP_PROXY_PACKED_FTI_OPTIONS "ProxyPackedFullTextIndexOptions"
+#define ADMINP_PROXY_COPY_ACL "ProxyCopyACL"
+#define ADMINP_PROXY_PACKED_ACL "ProxyPackedACL"
+#define ADMINP_PROXY_PACKED_ACL_HISTORY "ProxyPackedACLHistory"
+#define ADMINP_PROXY_PACKED_ACL_HISTORY_COUNT "ProxyPackedACLHistoryCount"
+#define ADMINP_PROXY_LINK_DEST_TO_SCOS "ProxyLinkDestinationToSCOS"
+#define ADMINP_PROXY_MAILFILE_ACCESS "ProxyMailfileAccessLevel"
+#define ADMINP_PROXY_MAILREPLICA_SERVERS "ProxyMailReplicaServers"
+#define ADMINP_PROXY_ROAMNREPLICA_SERVERS "ProxyRoamingReplicaServers"
+#define ADMINP_PROXY_OVERRIDE_DEF_DATASTORE "ProxyOverrideDefaultDatastore"
+#define ADMINP_PROXY_DB2_PASSWORD_ITEM "ProxyDB2Password"
+#define ADMINP_PROXY_ALTERNATE_NAME_ITEM "ProxyAlternateName"
+#define ADMINP_PROXY_ALTERNATE_NAME_TAG_ITEM "ProxyAlternateNameTag"
+
+/* name and address book fields and field values adminp needs */
+#define ADMINP_NAB_SERVER_BUILD_NUMBER "ServerBuildNumber"
+#define ADMINP_NAB_DENY_ACCESS_GROUP "3"
+
+#define ADMINP_NAB_PASS_CHECK_PASSWORD "CheckPassword"
+#define ADMINP_NAB_PASS_GRACE_PERIOD "PasswordGracePeriod"
+#define ADMINP_NAB_PASS_CHANGE_INTERVAL "PasswordChangeInterval"
+#define ADMINP_NAB_PASS_QUALITY "PasswordQuality"
+#define ADMINP_NAB_PASS_QUALITY_IS_LENGTH "PwdQltyIsLen"
+#define ADMINP_NAB_PASS_HISTORY_COUNT "PwdHistCnt"
+#define ADMINP_NAB_PASS_WEB_GRACE_PERIOD "HTTPPasswordGracePeriod"
+#define ADMINP_NAB_PASS_WEB_CHANGE_INTERVAL "HTTPPasswordChangeInterval"
+#define ADMINP_NAB_PASS_WEB_OPTIONS "HTTPPasswordOptions"
+#define ADMINP_NAB_PASS_WEB_QUALITY "HTTPPasswordQuality"
+#define ADMINP_NAB_PASS_WEB_SYNCH "HTTPPasswordNotesSync"
+#define ADMINP_NAB_PASS_WEB_QUALITY_IS_LENGTH "HTTPPasswordQualityIsLength"
+#define ADMINP_NAB_PASS_WEB_FORCE_CHANGE "HTTPPasswordForceChange"
+
+#define ADMINP_NAB_MASTER_ADDRESS_BOOK "MasterAddressBook"
+
+#define ADMINP_SERVER_CONNECTION_FORM "Server\\Connection"
+#define ADMINP_NETWORK_CONNECTION_FORM "Network Connection"
+#define ADMINP_REMOTE_CONNECTION_X25_FORM "Remote Connection (X25)"
+#define ADMINP_REMOTE_CONNECTION_ISDN_FORM "Remote Connection (ISDN)"
+
+/* address book stuff for resources used by adminp */
+#define ADMINP_NAB_RESOURCE_FLAG_ITEM "ResourceFlag"
+#define ADMINP_NAB_DOCUMENT_ACCESS_ITEM "DocumentAccess"
+#define ADMINP_NAB_RESOURCE_CAPACITY_ITEM "ResourceCapacity"
+#define ADMINP_NAB_RESOURCE_TYPE_ITEM "ResourceType"
+#define ADMINP_NAB_RESOURCE_TYPE_ROOM "1"
+#define ADMINP_NAB_RESOURCE_TYPE_RESOURCE "2"
+#define ADMINP_NAB_RESOURCE_DOMAIN_ITEM "MailDomain"
+#define ADMINP_NAB_RESOURCE_CONFERENCE_DB_ITEM "ConfDB"
+#define ADMINP_NAB_RESOURCE_AFLAG_ITEM "AudioFlg"
+#define ADMINP_NAB_RESOURCE_VFLAG_ITEM "VidFlg"
+#define ADMINP_NAB_RESOURCE_AVFLAG_ITEM "AVFlg"
+#define ADMINP_NAB_RESOURCE_AVSELLIST_ITEM "AVSlctLst"
+
+/* address book stuff used for name change retraction */
+#define ADMINP_NAB_OLD_MAIL_CERTIFICATE_ITEM "AdminpOldCertificate"
+#define ADMINP_NAB_OLD_MAIL_FIRSTNAME_ITEM "AdminpOldFirstName"
+#define ADMINP_NAB_OLD_MAIL_LASTNAME_ITEM "AdminpOldLastName"
+#define ADMINP_NAB_OLD_MAIL_MIDDLEINITIAL_ITEM "AdminpOldMI"
+#define ADMINP_NAB_OLD_MAIL_FULLNAME_ITEM "AdminpOldFullName"
+#define ADMINP_NAB_OLD_MAIL_OWNER_ITEM "AdminpOldOwner"
+#define ADMINP_NAB_OLD_MAIL_ALTFULLNAME_ITEM "AdminpOldAltFullName"
+#define ADMINP_NAB_OLD_MAIL_ALTFULLNAMELANGUAGE_ITEM "AdminpOldAltFullNameLanguage"
+#define ADMINP_NAB_OLD_MAIL_INTERNETADDRESS_ITEM "AdminpOldInternetAddress"
+#define ADMINP_NAB_OLD_MAIL_SHORTNAME_ITEM "AdminpOldShortName"
+
+#define ADMINP_NAB_OLD_WEB_NAME_ITEM "$AdminpOldWebName"
+#define ADMINP_NAB_OLD_WEB_NAME_EXPIRES_ITEM "$AdminpOldWebNameExpires"
+
+#define ADMINP_EVENT_TYPE_ITEM "Type"
+
+#define TARGETSERVERSNAMESPACE "$TargetServers"
+#define MESSAGESBYTYPENAMESPACE "$MessagesByType"
+
+#define EVENT_TARGET_SERVER_NAME_ITEM "TargetServerName"
+#define EVENT_COLLECTING_SERVER_ITEM "SourceServerName"
+#define EVENT_REMOTE_DESTINATION_DB_ITEM "RemoteDestinationDb"
+#define EVENT_ORIGINAL_TEXT_ITEM "OriginalText"
+#define EVENT_SEVERITY_ITEM "Severity"
+#define EVENT_MONITOR_NUMBER_ITEM "MonitorNumber"
+#define EVENT_CODE_ITEM "Code"
+#define EVENT_TEXT_MATCH_ITEM "EventTextMatch"
+
+#define EVENT_UNSPECIFIED_SERVERS "2"
+#define EVENT_ALL_SERVERS "1"
+
+#define RESOURCES_NAMESPACE "$Resources"
+#define RESOURCES_VIEW "($Resources)"
+#define ROOMS_NAMESPACE "$Rooms"
+#define ROOMS_VIEW "($Rooms)"
+#define ROOMS_PICKLIST_COLUMN 1
+#define RESOURCES_PICKLIST_COLUMN 2
+
+/* SPR DDEY4ZSN4K - Add Online Meeting addressing support */
+#define ONLINE_MEETINGS_NAMESPACE "$OnlineMeetingPlaces"
+#define ONLINE_MEETINGS_VIEW "($OnlineMeetingPlaces)"
+#define ONLINE_MEETINGS_PICKLIST_COLUMN 1
+
+#define ADMINP_FLAG_SET "1"
+#define ADMINP_DOCUMENT_ACCESS_SET "[NetModifier]"
+#define ADMINP_ROOM "1"
+#define ADMINP_RESOURCE "2"
+#define ADMINP_ONLINE_RESOURCE '3'
+
+#define USER_MODIFIER "[UserModifier]"
+#define POLICY_CREATOR "[PolicyCreator]"
+#define POLICY_MODIFIER "[PolicyModifier]"
+#define GROUP_MODIFIER "[GroupModifier]"
+#define GROUP_CREATOR "[GroupCreator]"
+
+
+/* address book stuff for move mail file */
+#define ADMINP_NEW_MAILFILE_ITEM "NewMailFile"
+#define ADMINP_NEW_MAILSERVER_ITEM "NewMailServer"
+#define ADMINP_OLD_MAILFILE_ITEM "OldMailFile"
+#define ADMINP_OLD_MAILSERVER_ITEM "OldMailServer"
+#define ADMINP_NEW_MAIL_CLIENT_UPDATE_ITEM "NewMailClientUpdateFlag"
+/* address book stuff for roaming user delete, move, and status change */
+#define ADMINP_ROAMING_STATUS_UPDATE_ITEM "RoamingStatusUpdateItem"
+#define ADMINP_NEW_ROAMINGSTATUS_UPDATE_ITEM "NewRoamStatUpdtFl"
+#define ADMINP_NEW_ROAMINGSTATUS_DOWNGRD_ITEM "RoamStatDwnFl"
+#define ADMINP_OLD_ROAMINGSERVER_ITEM "OldRoamSrvr"
+#define ADMINP_OLD_ROAMINGDIRECTORY_ITEM "OldRoamDir"
+#define ADMINP_ROAM_UPGRADE_CASCADE_INFO "RoamUpgdCscdInfo" /* Item name for Request cascade information list */
+#define ADMINP_ROAM_MOVE_CASCADE_INFO "RoamMoveCscdInfo" /* Item name for Request cascade information list */
+#define ADMINP_MAIL_MOVE_CASCADE_INFO "MailMoveCscdInfo" /* Item name for Request cascade information list */
+
+/* Original Request information for Blocking cascaded requests */
+#define ADMINP_ORIGINATING_REQUEST_UNID "ProxyOriginatingRequestUNID"
+#define ADMINP_ORIGINATING_UNID ADMINP_ORIGINATING_REQUEST_UNID
+#define ADMINP_ORIGINATING_REQUEST_AUTHORID "ProxyOriginatingAuthor"
+#define ADMINP_SAVED_ORIGINATING_REQUEST_AUTHORID ADMINP_ORIGINATING_REQUEST_AUTHORID
+#define ADMINP_ORIGINATING_REQUEST_FULLNAME "FullName"
+#define ADMINP_ORIGINATING_REQUEST_ORG "ProxyOriginatingOrganization"
+#define ADMINP_ORIGINATING_REQUEST_INTERNET_DOMAIN "ProxyOriginatingInternetDomain"
+#define ADMINP_ORIGINATING_REQUEST_EXPECTED_LIST "ProxyOriginatingReqsExpected"
+#define ADMINP_ORIGINATING_REQUEST_POSSIBLE_LIST "ProxyOriginatingReqsPossible"
+#define ADMINP_ORIGINATING_TIMEDATE_ITEM "ProxyOriginatingTimeDate"
+
+#define ADMINP_SERV_MON_QUERY "ServMonQuery"
+#define ADMINP_SERV_MON_REPORT "ServMonReport"
+#define ADMINP_SERV_MON_SERV_LIST_ITEM "Server.List"
+#define ADMINP_SERV_MON_RESTRICTED_SERV_LIST_ITEM "Server.Restricted.List"
+
+#define ADMINP_SERV_MON_STAT_RESULTS "ServMonStats"
+#define ADMINP_SERV_MON_STAT_CATEGORY_ITEM "StatisticCategory"
+#define ADMINP_SERV_MON_STAT_NAME_ITEM "Statistic.Name"
+#define ADMINP_SERV_MON_STAT_MIN_ITEM "Statistic.Min.Value"
+#define ADMINP_SERV_MON_STAT_MIN_TD_ITEM "Statistic.Min.Time"
+#define ADMINP_SERV_MON_STAT_MAX_ITEM "Statistic.Max.Value"
+#define ADMINP_SERV_MON_STAT_MAX_TD_ITEM "Statistic.Max.Time"
+#define ADMINP_SERV_MON_STAT_ZEROVAL_ITEM "Statistic.Zero.Value"
+#define ADMINP_SERV_MON_STAT_ZEROVAL_TD_ITEM "Statistic.Zero.Time"
+#define ADMINP_SERV_MON_STAT_MINDELTA_ITEM "Statistic.Min.Difference"
+#define ADMINP_SERV_MON_STAT_MINDELTA_TERM1_ITEM "Statistic.Min.Diff.Term1"
+#define ADMINP_SERV_MON_STAT_MINDELTA_TERM2_ITEM "Statistic.Min.Diff.Term2"
+#define ADMINP_SERV_MON_STAT_MINDELTA_LOW_TD_ITEM "Statistic.Min.Difference.Low"
+#define ADMINP_SERV_MON_STAT_MINDELTA_UPP_TD_ITEM "Statistic.Min.Difference.High"
+#define ADMINP_SERV_MON_STAT_MAXDELTA_ITEM "Statistic.Max.Difference"
+#define ADMINP_SERV_MON_STAT_MAXDELTA_TERM1_ITEM "Statistic.Max.Diff.Term1"
+#define ADMINP_SERV_MON_STAT_MAXDELTA_TERM2_ITEM "Statistic.Max.Diff.Term2"
+#define ADMINP_SERV_MON_STAT_MAXDELTA_LOW_TD_ITEM "Statistic.Max.Difference.Low"
+#define ADMINP_SERV_MON_STAT_MAXDELTA_UPP_TD_ITEM "Statistic.Max.Difference.High"
+#define ADMINP_SERV_MON_STAT_ZERODELTA_ITEM "Statistic.Zero.Difference"
+#define ADMINP_SERV_MON_STAT_ZERODELTA_LOW_TD_ITEM "Statistic.Zero.Difference.Low"
+#define ADMINP_SERV_MON_STAT_ZERODELTA_UPP_TD_ITEM "Statistic.Zero.Difference.High"
+
+#define ADMINP_SERV_MON_EVENT_RESULTS "ServMonResults"
+#define ADMINP_SERV_MON_EVENT_STATUS_ITEM "Event.Name"
+#define ADMINP_SERV_MON_EVENT_TYPE_ITEM "Event.Type"
+#define ADMINP_SERV_MON_EVENT_ADDIN_ITEM "Event.Addin"
+#define ADMINP_SERV_MON_EVENT_SEVERITY_ITEM "Event.Severity"
+#define ADMINP_SERV_MON_EVENT_COUNT_ITEM "Event.Count"
+#define ADMINP_SERV_MON_EVENT_ERROR_MSG_ITEM "Event.Error.Message"
+
+#define ADMINP_CATALOG_NO_NAMES "0"
+#define ADMINP_CATALOG_READERS_AUTHORS "1"
+#define ADMINP_CATALOG_NAMES "2"
+
+/* Address Book - local $Programs namespace */
+#define LOCAL_PROGRAMS_NAMESPACE "1\\$Programs"
+#define PROGRAMSNAMESPACE "$Programs"
+#define PROG_CMD_LINE_ITEM "CmdLine"
+
+/* Address Book - local $Locations namespace */
+#define LOCAL_LOCATIONS_NAMESPACE "1\\$Locations"
+#define LOCATIONSNAMESPACE "$Locations"
+
+/* Address Book - local $Connections namespace */
+#define LOCAL_CONNECTIONS_NAMESPACE "1\\$Connections"
+#define CONNECTIONSNAMESPACE "$Connections"
+
+
+/* Address Book - "Connections" namespace */
+
+
+#define SOURCE_WILDCARD "*"
+
+#define NAME_CONNECTIONLOOKUPITEMCOUNT 9
+#define NAME_CONNECTIONLOOKUPITEMS "Source\0SourceDomain\0Destination\0DestinationDomain\0PortName\0Tasks\0Enabled\0Cost\0ConnectionType"
+#define NAME_CONNECTIONSRCITEM 0
+#define NAME_CONNECTIONSRCDOMAINITEM 1
+#define NAME_CONNECTIONDSTITEM 2
+#define NAME_CONNECTIONDSTDOMAINITEM 3
+#define NAME_CONNECTIONPORTITEM 4
+#define NAME_CONNECTIONTASKSITEM 5
+#define NAME_CONNECTIONENABLEDITEM 6
+#define NAME_CONNECTIONCOSTITEM 7
+#define NAME_CONNECTIONTYPEITEM 8
+
+#define DIALNAMELOOKUPITEMCOUNT 5
+#define DIALNAMELOOKUPITEMS "Destination\0PhoneNumber\0PortName\0LinkInfo\0LinkScriptInfo\0CreditCardPrefix\0CreditCardSuffix"
+#define DESTINATIONNAMEITEM 0
+#define PHONENUMBERITEM 1
+#define PORTNAMEITEM 2
+#define LINKINFOITEM 3
+#define LINKSCRIPTITEM 4
+#define CARDPREFIXITEM 5
+#define CARDSUFFIXITEM 6
+
+#define PT_NAMELOOKUPITEMCOUNT 3 /* For Passthru */
+#define PT_NAMELOOKUPITEMS "Destination\0PassthruServer\0Source"
+#define PT_NAMEITEM_DST 0
+#define PT_NAMEITEM_VIA 1
+#define PT_NAMEITEM_SRC 2
+
+/* Address Book - "Connections" Application field values */
+
+#define ROUTER_APPNAME "Mail Routing" /* Router application name */
+#define PULL_ROUTER_APPNAME "Pull Routing" /* Pull Routing application name */
+#define X400_APPNAME "X400 Mail Routing" /* X.400 MTA application name */
+#define CCMAIL_APPNAME "ccMail Routing" /* ccMail MTA application name */
+#define SMTP_APPNAME "SMTP Mail Routing" /* SMTP MTA application name */
+#define REPL_APPNAME "Replication" /* Replicator application name */
+#define RUNPGM_APPLNAME "Run Program" /* Run program application name */
+#define WKSREP_APPNAME "WksRep" /* Workstation Rep/Briefcase application name */
+#define WKSREPHI_APPNAME "WksRepHI" /* High-priority Rep/Briefcase application name */
+#define CLREPL_APPNAME "Cluster Replication" /* Cluster Replicator application name */
+#define NNTP_APPNAME "NNTP Feed" /* NNTP Feed application name */
+#define DIRCAT_APPNAME "Directory Cataloger" /* DIrectory Catalog Aggregator */
+#define DOMAIN_INDEXER_APPNAME "Domain Indexer" /* Domain Indexer */
+#define AUTODIALER_APPNAME "AutoDialer" /* AutoDialer */
+#define AMGR_APPNAME "Run Agent" /* Agent manager name */
+#define EVENT_APPNAME "Event Monitor"
+#define RUNJAVA_APPNAME "runjava" /* shell to run java class as an add in */
+#define ISPY_APPNAME "ISpy" /* a runjava task */
+#define RMEVAL_APPNAME "RMEval" /* a runjava task */
+#define COMPACT_APPNAME "Compact" /* Database compactor */
+#define DESIGN_APPNAME "Designer" /* Database design */
+#define COLLECTOR_APPNAME "Statistic Collector" /* Statistic Collector */
+
+/* Connection record items not defined above */
+
+#define CONNREC_USAGE_PRIORITY_ITEM "ConnectionRecordFirst" /* "Normal" use connection record first */
+#define CONNREC_LOCATION "ConnectionLocation" /* only for locations */
+#define CONNREC_OPTIONAL_NET_ADDRESS_ITEM "OptionalNetworkAddress" /* Optional network address field */
+#define CONNREC_REMOTE_DTE_ADDRESS_ITEM "RemoteDTEAddress" /* DTE address for X.25 */
+#define CONNREC_FCODE1_ITEM "fcode_1" /* X.25 facility code */
+#define CONNREC_FCODE2_ITEM "fcode_2" /* X.25 facility code */
+#define CONNREC_FCODE3_ITEM "fcode_3" /* X.25 facility code */
+#define CONNREC_FCODE4_ITEM "fcode_4" /* X.25 facility code */
+#define CONNREC_FVAL1_ITEM "fval_1" /* X.25 facility code value */
+#define CONNREC_FVAL2_ITEM "fval_2" /* X.25 facility code value */
+#define CONNREC_FVAL3_ITEM "fval_3" /* X.25 facility code value */
+#define CONNREC_FVAL4_ITEM "fval_4" /* X.25 facility code value */
+#define CONNREC_SCRIPTNAME_ITEM "ScriptName" /* Login script filename */
+#define CONNREC_LINKSCRIPT_INFO_ITEM "LinkScriptInfo" /* Login script information */
+#define CONNREC_SCRIPTARG1_ITEM "ScriptArg1" /* Login script argument */
+#define CONNREC_SCRIPTARG2_ITEM "ScriptArg2" /* Login script argument */
+#define CONNREC_SCRIPTARG3_ITEM "ScriptArg3" /* Login script argument */
+#define CONNREC_SCRIPTARG4_ITEM "ScriptArg4" /* Login script argument */
+#define CONNREC_WEEKDAYS_ITEM "WeekDays" /* Call schedule WeekDays item */
+#define CONNREC_REP_PRIORITY_ITEM "RepPriority" /* Replication priority item */
+#define CONNREC_REP_TYPE_ITEM "RepType" /* Replication type item */
+#define CONNREC_REP_FILELIST_ITEM "Filenames" /* Replication filename list item */
+#define CONNREC_REP_EXCLUDE_FILELIST_ITEM "ExclFNames" /* Excluse the list in "Filenames" item */
+#define CONNREC_REP_TIME_LIMIT_ITEM "TimeLimit" /* Replication time limit item */
+#define CONNREC_NNTP_TYPE_ITEM "NNTPFeedType" /* NNTP Feed type item */
+#define CONNREC_NNTP_AUTH_ITEM "NNTPAuthentication" /* NNTP Authentication item */
+#define CONNREC_NNTP_ENCRYPT_ITEM "NNTPChannelEncrypt" /* NNTP channel encrypt item */
+#define CONNREC_NNTP_CREATE_DBS_ITEM "NNTPCreateUsenetDBs" /* NNTP create db's item */
+#define CONNREC_NNTP_NEWSGROUP_SUBDIR_ITEM "NNTPNewsgroupSubDir" /* NNTP newsgroup subdirectory item */
+#define CONNREC_NNTP_NEWSGROUPS_ITEM "NNTPNewsgroups" /* NNTP newsgroups item */
+#define CONNREC_NNTP_SITES_ITEM "NNTPSites" /* NNTP sites item */
+#define CONNREC_NNTP_TIMELIMIT_ITEM "NNTPTimeLimit" /* NNTP Feed time limit item */
+#define CONNREC_NNTP_USER_ITEM "NNTPUserName" /* NNTP user name for feed */
+#define CONNREC_NNTP_PASSWD_ITEM "NNTPPassword" /* NNTP password for feed */
+#define CONNREC_DIALUP_SERVER_NAME_ITEM "DialViaName" /* Dial Up Server name item */
+#define CONNREC_CONNECTION_MODE_ITEM "ConnectionMode" /* Direct or Dial-Up connection mode */
+#define CONNREC_ROUTING_TYPE_ITEM "RouterType"
+#define CONNREC_ROUTING_SMTPPULL_ITEM "SMTPPullRouting" /* will be enabled if SMTP Push/Pull or Pull Only */
+#define CONNREC_PULL_TIMEOUT_ITEM "PullRoutingTimeout" /* Time to wait for an acknowledgement of the pull request */
+#define CONNREC_PULL_THIS_SERVER "PullThisServer" /* Include this server in pull request */
+#define CONNREC_PULL_ALL_PRIMARY "PullAllPrimary" /* Include all primary internet domains in pull request */
+#define CONNREC_PULL_ALL_ALTERNATE "PullAllAlternates" /* Include all alternate internet domains in pull request */
+#define CONNREC_PULL_CHOOSE_SPECIFIC "PullChooseSpecific" /* Include list specified in PullSpecificList in pull request */
+#define CONNREC_PULL_SPECIFIC_LIST "PullSpecificList" /* Include list of domains in pull request */
+
+
+/* Connection record Mail Routing types */
+
+#define CONNRECMAILTYPE_PUSHWAIT 0
+#define CONNRECMAILTYPE_PULLPUSH 1
+#define CONNRECMAILTYPE_PULL 2
+#define CONNRECMAILTYPE_PUSH 3
+
+/* Connection record types */
+
+#define CONNRECTYPE_NETWORK '0'
+#define CONNRECTYPE_REMOTE '1'
+#define CONNRECTYPE_PASSTHRU '2'
+#define CONNRECTYPE_REMOTE_LAN_SERVICE '5'
+#define CONNRECTYPE_X25 '6'
+#define CONNRECTYPE_ISDN '7'
+#define CONNRECTYPE_HUNT_GROUP '9'
+#define CONNRECTYPE_NNTP 'a'
+
+/* Network connection record item names */
+
+#define CONNREC_TYPE "ConnectionType"
+#define CONNREC_SOURCE "Source"
+#define CONNREC_DESTINATION "Destination"
+#define CONNREC_PORT "PortName"
+#define CONNREC_LANPORT "LanPortName"
+#define CONNREC_ADDRESS "OptionalNetworkAddress"
+#define CONNREC_COMMENTS "Comments"
+#define CONNREC_ENABLED "Enabled"
+
+#define CONNREC_RLAN_SERVICE "RemoteLanService"
+#define CONNREC_RLAN_DRIVERS "DisplayDriverList"
+#define CONNREC_RLAN_STATIC "StaticTag"
+#define CONNREC_RLAN_ITEMS "RLANItems"
+#define CONNREC_RLAN_NAME "RLANTag"
+#define CONNREC_RLAN_LOGIN "RLAN1"
+#define CONNREC_RLAN_PASSWORD "RLAN2"
+#define CONNREC_RLAN_NUMBER "RLAN3"
+#define CONNREC_RLAN_DOMAIN "RLAN7"
+#define CONNREC_RLAN_ITEMS_RAS "7"
+
+#define CONNREC_LANSERVICEDISPLAY "LANSERVICEDISPLAY"
+#define CONNREC_RLAN_ORIGINAL_SERVICE "OriginalService"
+
+#define CONNREC_RLAN_SERVICE_RAS_TEXT "RAS"
+#define CONNREC_RLAN_SERVICE_ARA_TEXT "ARA"
+
+/* Connection record precedence */
+#define CONNRECFIRST '1'
+#define CONNRECLOW '0'
+
+/* Connection modes */
+
+#define CONNREC_MODE_DIALUP 1
+#define CONNREC_MODE_DIRECT 0
+
+/* Authentication types */
+
+#define CONNREC_AUTH_NONE 0
+#define CONNREC_AUTH_PASSWORD 1
+
+
+/* Connection record fields required for Phonebook feature */
+
+#define CONNREC_LAN_PORTNAME "LanPortName"
+#define CONNREC_DIAL_AREA_CODE "DialAreaCode"
+#define CONNREC_LOCAL_PHONE_NUMBER "LocalPhoneNumber"
+#define CONNREC_REMOTE_PORT_NAME "RemotePortName"
+#define CONNREC_ACCOUNTNAME "ConnectionAccount"
+
+/* Address Book - "Connections" (and other views) Enabled field values */
+
+#define KWD_DISABLED "Disabled" /* Obsolete */
+#define KWD_NO "No" /* Obsolete */
+#define VALUE_NO '0'
+#define VALUE_DISABLED '0'
+#define VALUE_ENABLED '1'
+#define VALUE_STARTUP '2'
+
+/* Account form/view stuff in personal address book */
+
+#define ACCOUNTSNAMESPACE "$Accounts"
+
+/* fields in the form */
+#define ACCOUNT_FORM "Account"
+#define ACCOUNT_NAME "AccountName"
+#define ACCOUNT_SERVERNAME "AccountServer"
+#define ACCOUNT_USERNAME "AccountLoginName"
+#define ACCOUNT_PASSWORD "AccountPassword"
+#define ACCOUNT_PROTOCOL "AccountProtocol"
+#define ACCOUNT_FILENAME "AccountFilename"
+#define ACCOUNT_SSL "SSLStatus"
+#define ACCOUNT_LOCATION "AccountLocation"
+#define ACCOUNT_CONNECTION "ConnectionMode"
+#define ACCOUNT_PORT "AccountPortNumber"
+#define ACCOUNT_POPDELMAIL "PopDeleteMail"
+#define ACCOUNT_SSLSITECERTS "SSLSiteCerts"
+#define ACCOUNT_SSLEXPIREDCERTS "SSLExpiredCerts"
+#define ACCOUNT_SSLPROTOCOLVER "SSLProtocolVersion"
+#define ACCOUNT_SSLSENDCERTS "SSLSendCertificates"
+#define ACCOUNT_SSLSERVERAUTH "SSLServerAuthenticate"
+#define ACCOUNT_IMAPDRAFT "IMAPDrafts"
+#define ACCOUNT_IMAPSENT "IMAPSent"
+#define ACCOUNT_REPLHISTORY "AccountReplicationHistory"
+#define ACCOUNT_REPLICAS "AccountReplicas"
+#define ACCOUNT_IMAPFIRSTOPEN "IMAPFirstOpen"
+#define ACCOUNT_IMAPDELMAIL "IMAPDeleteMail"
+#define ACCOUNT_REPL_MAX_PULL "AccountReplicationMaxPull"
+
+#define ACCOUNT_SSL_ON "1"
+#define ACCOUNT_SSL_OFF "0"
+
+/* used to get appropriate accounts for NAMELookups */
+#define ACCOUNT_LOOKUPITEMS "AccountName\0AccountProtocol\0AccountLocation\0AccountFilename\0AccountServer\0IMAPMode\0%AccountFileList"
+#define ACCOUNT_NAMEITEM 0
+#define ACCOUNT_PROTOCOLITEM 1
+#define ACCOUNT_LOCATIONITEM 2
+#define ACCOUNT_DATABASEITEM 3 /* This is the proxy file name only */
+#define ACCOUNT_SERVERITEM 4
+#define ACCOUNT_IMAPMODEITEM 5
+#define ACCOUNT_FILELISTITEM 6 /* This is a list including the proxy file name and all replicas */
+#define ACCOUNT_LOOKUPITEMCOUNT 7
+
+/* Address Book views used by Mail Address in V3. */
+
+#define PEOPLE_GROUPS_FLAT_VIEW "($PeopleGroupsFlat)"
+
+/* Address Book view and column used by Mail Address in V4. */
+
+#define PEOPLE_GROUPS_HIER_VIEW "($PeopleGroupsHier)"
+#define MAIL_ADDRESS_VIEW "($PeopleGroupsFlat)"
+#define PEOPLE_GROUPS_CORP_HIER_VIEW "($PeopleGroupsCorpHier)"
+#define PEOPLE_GROUPS_BY_LANG_VIEW "($PeopleGroupsByLang)"
+
+#define MAIL_ADDRESS_PICKLIST_COLUMN 2
+#define MAIL_NAME_PICKLIST_COLUMN 3
+
+#define MAIL_ADDRESS_NAME_COLUMN "NPName"
+#define MAIL_ADDRESS_ADDRESS_COLUMN "MAMailAddress"
+#define MAIL_ADDRESS_ALT_NAME_COLUMN "AltFullName"
+
+#define EXTENDED_ACCESS_CONTROL_VIEW "($XACL)"
+
+
+/* ($PeoplesGroupsHier) column position, be careful with modifying these.
+ LDAP server uses this view and assumes these positions */
+#define MAIL_ADDRESS_HIER_COLUMN 3
+#define MAIL_NAME_HIER_COLUMN 4
+#define MAIL_NAME_HIER_TYPE 5
+#define MAIL_NAME_HIER_PUBLICKEY 6
+#define MAIL_HIER_MAILADDRESS "$25"
+#define MAIL_HIER_CN "$11"
+#define MAIL_HIER_DN "$24" /* This name had changed to "NPName" in R5.0
+ but has changed back because of compatibility */
+#define USERS_FULLNAME_COLUMN "$23" /* Users Full/List Name column named */
+
+/* #define MAIL_HIER_DN "NPName" */
+#define MAIL_HIER_TYPE "Type"
+#define MAIL_HIER_PUBLICKEY "$20"
+
+/* Person record field names */
+#define PERSON_HOME_STREETADDRESS "StreetAddress"
+#define PERSON_HOME_CITY "City"
+#define PERSON_HOME_STATE "State"
+#define PERSON_HOME_ZIP "Zip"
+#define PERSON_HOME_COUNTRY "Country"
+#define PERSON_HOME_FAX "HomeFAXPhoneNumber"
+#define PERSON_SPOUSE "Spouse"
+#define PERSON_CHILDREN "Children"
+#define PERSON_OFFICE_STREETADDRESS "OfficeStreetAddress"
+#define PERSON_OFFICE_CITY "OfficeCity"
+#define PERSON_OFFICE_STATE "OfficeState"
+#define PERSON_OFFICE_ZIP "OfficeZip"
+#define PERSON_OFFICE_COUNTRY "OfficeCountry"
+#define PERSON_OFFICE_FAX "OfficeFAXPhoneNumber"
+#define PERSON_OFFICE_NUMBER "OfficeNumber"
+#define PERSON_GENERATION_QUALIFIER "Suffix"
+#define PERSON_PERSONAL_TITLE "Title"
+#define PERSON_JOB_TITLE "JobTitle"
+#define PERSON_MANAGER "Manager"
+#define PERSON_CELL_PHONE "CellPhoneNumber"
+#define PERSON_PAGER "PhoneNumber_6"
+#define PERSON_ASSISTANT "Assistant"
+#define PERSON_ENCRYPT_INCOMING_MAIL "EncryptIncomingMail"
+#define PERSON_X400_ADDRESS "x400Address"
+#define PERSON_WEB_SITE "WebSite"
+#define PERSON_EMPLOYEE_ID "EmployeeID"
+#define PERSON_ALTFULLNAMESORT "AltFullNameSort" /* Phonetic Name */
+#define PERSON_PERSONAL_PAGER "PersPager"
+#define PERSON_BRIEFCASE "Briefcase"
+
+
+/* Address Book view used by ServerConfig (to refresh Notes.INI parameters). */
+
+#define SERVER_CONFIG_NAMESPACE "$ServerConfig"
+#define SERVER_CONFIG_NAMESPACE_1 "1\\$ServerConfig"
+#define SERVER_CONFIG_VIEW "($ServerConfig)"
+#define SERVER_ACCESS_VIEW "($ServerAccess)"
+
+/* Server Configuration form items */
+#define SERVER_CONFIG_FORM "ServerConfig"
+#define CONFIG_SERVERNAME_ITEM "ServerName" /* Server name */
+#define CONFIG_MAILEXT_ITEM "MailExternalSMTP"
+
+/* LDAP related definitions */
+#define LDAP_ACCESS_CONTROL_ITEM "LDAPAccessControl"
+#define LDAP_MAXENTRIES_ITEM "LDAPMaxEntries"
+#define LDAP_MINCHAR_ITEM "LDAPMinChar"
+#define LDAP_TIMEOUT_ITEM "LDAPTimeout"
+#define LDAP_PORT_ITEM "LDAP_Port"
+#define LDAP_PORTSTATUS_ITEM "LDAP_PortStatus"
+#define LDAP_SSLPORT_ITEM "LDAP_SSLPort"
+#define LDAP_SSLSTATUS_ITEM "LDAP_SSLStatus"
+#define LDAP_USESSL_ITEM "LDAP_UseSSL"
+#define LDAP_TCP_NAME_PASSWORD_ITEM "LDAP_TCPNP"
+#define LDAP_ALLOWANONYMOUS_ITEM "LDAP_AllowAnonymous"
+#define LDAP_ENFORCE_ACCESS_ITEM "LDAP_EnforceAccess"
+#define LDAP_SEARCH_ITEM "LDAP_Search"
+#define LDAP_AUTHENTICATION_TYPE_ITEM "LDAP_AuthenticationType"
+#define LDAP_GET_CLIENT_CERT_ITEM "LDAP_SSLCert"
+#define LDAP_SSL_NAME_PASSWORD_ITEM "LDAP_SSLNP"
+#define LDAP_SSLANONYMOUS_ITEM "LDAP_SSLAnonymous"
+#define LDAP_CONFIG_FORM "($LDAPSettings)"
+#define LDAP_AMBIGUOUS_WRITE_ITEM "LDAPAmbiguousWrite"
+#define LDAP_CLIENT_ACCESS_ITEM "LDAPAllowWriteAccess"
+#define LDAP_OPTIMIZEVIEW_ITEM "LDAPOptimizeSearch"
+#define LDAP_QUERYEXTENDEDOBJECT_ITEM "LDAPOptimizeSearch" /* "LDAPQueryExtendedObjects" - Post R5.0 */
+#define LDAP_QUERYALTLANG_ITEM "LDAPQueryAltLangInfo"
+#define LDAP_VIEW_TYPE "%LDAPType"
+#define LDAP_EXTENDED_OBJECTCLASS_ITEM "$objectclass"
+#define LDAP_ENFORCE_SCHEMA_ITEM "LDAPEnfrcSchema"
+#define LDAP_FT_INDEX_ITEM "LDAPFTI"
+#define LDAP_MAXREFERRALS_ITEM "LDAPMaxRefs"
+#define LDAP_UTF8RESULTS_ITEM "LDAPUTF8Res"
+#define LDAP_STRICTRFCADHERENCE_ITEM "LDAPStrictRFC"
+#define LDAP_LOGFIELDSIZELIMIT_ITEM "LDAPLogFldSzLim"
+#define LDAP_DEREFALIASESENABLED_ITEM "LDAPDerefAliasesEnabled"
+
+
+/* LDAP View names */
+#define LDAP_CN_VIEW "($LDAPCN)"
+#define LDAP_CN_VIEW_ALT "$LDAPCN"
+#define LDAP_S_VIEW "($LDAPS)"
+#define LDAP_G_VIEW "($LDAPG)"
+#define LDAP_HIER_VIEW "($LDAPHIER)"
+#define LDAP_RDN_HIER_VIEW "($LDAPRDNHIER)"
+#define HIGH_SECURITY_AUTH_VIEW "($HIGH_SECURITY_AUTH)"
+#define LDAP_ALIAS_VIEW "($LDAPAlias)"
+
+/* LDAP Directory Assistance defines */
+#define DA_LDAPURL_ITEM "LDAPURL" /* LDAP Server Flag */
+#define DA_LDAP_MAX_URL_LEN 256
+
+#define DA_LDAPADMINDN_ITEM "LDAPAdminDN"
+#define DA_LDAPADMINPASSWORD_ITEM "LDAPAdminPassword"
+
+#define DA_LDAPPORT_ITEM "LDAPPort" /* LDAP Port Number */
+
+/* Column names */
+#define LDAP_DN_COLUMN "%DN"
+
+
+#define MSG_CONFIG_FORM "($MessagingSettings)"
+#define CAT_CONFIG_FORM "($CatalogerSettings)"
+
+
+/* Address Book - Items used for Message Tracking Configuration */
+
+#define MT_ENABLED_ITEM "MTEnabled"
+#define MT_NOTRACKING_FOR_ITEM "MTNoTrackingFor"
+#define MT_ALLOWEDTO_TRACK_ITEM "MTAllowTracking"
+#define MT_SUBJECTS_ENABLED_ITEM "MTLogSubjects"
+#define MT_NOSUBJECTS_FOR_ITEM "MTNoSubjectsFor"
+#define MT_ALLOWEDTO_TRACKSUBJECTS_ITEM "MTAllowSubjects"
+#define MT_ALLOWEDTO_CAUSEDIALING_ITEM "MTCallers"
+#define MT_COLLECTOR_INTERVAL_ITEM "MTInterval"
+#define MT_MAXRESPONSES "MTMaxResponses"
+
+/* Address Book - Items used for Mail Journalling Configuration */
+#define MAIL_JOURNALLING_ENABLED_ITEM "JrnlEnbld"
+#define MAIL_JOURNALLING_METHOD_ITEM "JrnlMthd"
+#define MAIL_JOURNALLING_DB_NAME_ITEM "JrnlDBName"
+#define MAIL_JOURNALLING_DESTINATION_ITEM "JrnlDest"
+#define MAIL_JOURNALLING_SCOS_ITEM "JournallingSCOSReconsitute"
+#define MAIL_JOURNALLING_ENCRYPT_EXCL_ITEM "JrnlFldEncryptExcl"
+#define MAIL_JOURNALLING_CERTIFICATE_ITEM "JrnlCert"
+#define MAIL_JOURNALLING_DB_METHOD_ITEM "JrnlDBMthd"
+#define MAIL_JOURNALLING_DB_SIZE_ITEM "JrnlDBSz"
+#define MAIL_JOURNALLING_DB_PURGE_INT_ITEM "JrnlDBPurgeInt"
+#define MAIL_JOURNALLING_PERIODICITY_ITEM "JrnlDBPrd"
+
+/* Address Book & INI - Items used for Transactional Logging Configuration INI */
+
+#define TRANSLOG_STATUS "TRANSLOG_Status"
+#define TRANSLOG_PATH "TRANSLOG_Path"
+#define TRANSLOG_MAXSIZE "TRANSLOG_MaxSize"
+#define TRANSLOG_PERFORMANCE "TRANSLOG_Performance"
+#define TRANSLOG_STYLE "TRANSLOG_Style"
+#define TRANSLOG_USEALL "TRANSLOG_UseAll"
+#define TRANSLOG_AUTOFIXUP "TRANSLOG_AutoFixup"
+#define TRANSLOG_RECREATE_LOGCTRL "TRANSLOG_Recreate_Logctrl"
+#define TRANSLOG_MEDIAONLY "TRANSLOG_MediaOnly"
+
+/* Address Book & INI - Items used for shared mail server doc and Configuration INI */
+#define SCOS_DIR_DEF "SCOS_DIR_1"
+#define SCOS_DIR_ACTIVE_DEF "SCOS_DIR_ACTIVE_FILES_1"
+
+/* Address Book & INI - Items used for quota enforcement server doc and Configuration INI */
+#define NSF_QUOTA_METHOD_INI "NSF_QUOTA_METHOD"
+#define NSF_QUOTA_METHOD_DOC "QtaMthd"
+
+/* Address Book & INI - Items used to keep compute in check */
+#define FORMULA_TIMEOUT "FormulaTimeout"
+
+/* Address Book - Items and names used by name server */
+
+#define NS_SERVERNAMEITEM 0
+#define NS_SERVERTITLEITEM 1
+#define NS_SERVERNETWORKITEM 2
+#define NS_SERVERNETADDRESSESITEM 3
+#define NS_SERVERPORTSITEM 4
+#define NS_SERVERLOOKUPITEMCOUNT 5
+#define NS_SERVERLOOKUPITEMS "ServerName\0ServerTitle\0Network\0NetAddresses\0Ports"
+
+/* Address Book - Items and names used by DbQuotaSet to verify access */
+
+#define DBQUOTA_SERVERADMINITEM 0
+#define DBQUOTA_SERVERLOOKUPITEMCOUNT 1
+#define DBQUOTA_SERVERLOOKUPITEMS "Administrator"
+
+/* Address Book - Items and names used by server during initialization */
+
+#define INIT_SERVERNAMEITEM 0
+#define INIT_SERVERTITLEITEM 1
+#define INIT_SERVERADMINITEM 2
+
+#define INIT_SERVERCERTIFICATE 3
+#define INIT_SERVERCHANGEREQUEST 4
+
+#define INIT_SERVERALLOWITEM 5
+#define INIT_SERVERDENYITEM 6
+#define INIT_SERVERCREATEITEM 7
+#define INIT_SERVERREPLICAITEM 8
+
+#define INIT_SERVERPTTARGETITEM 9
+#define INIT_SERVERPTCLIENTITEM 10
+#define INIT_SERVERPTCALLERITEM 11
+#define INIT_SERVERPTACCESSITEM 12
+
+#define INIT_SERVER_WHITELIST 13
+#define INIT_SERVER_WHITELISTLOG 14
+#define INIT_SERVER_ANONYMOUSACCESS 15
+
+#define INIT_SERVER_BUILDNUMBER 16
+/*
+*/
+#define INIT_SERVER_MAJORVERSION 17
+#define INIT_SERVER_MINORVERSION 18
+#define INIT_SERVER_QMRVERSION 19
+#define INIT_SERVER_QMUVERSION 20
+#define INIT_SERVER_HOTFIXVERSION 21
+#define INIT_SERVER_FIXPVERSION 22
+#define INIT_SERVER_FLAGSVERSION 23
+/*
+*/
+#define INIT_SERVERRESTRICTEDLIST 24
+#define INIT_SERVERUNRESTRICTEDLIST 25
+
+#define INIT_SERVER_CHECK_CLIENT_PW 26
+#define INIT_SERVER_CLUSTERNAME 27
+
+#define INIT_SERVERMONITORALLOWLIST 28
+#define INIT_SERVERMONITORDENYLIST 29
+
+#define INIT_SERVERSMTPENABLED 30
+
+#define INIT_TRANSLOG_STATUS 31 /* Items used for Transactional Logging Configuration */
+#define INIT_TRANSLOG_PATH 32
+#define INIT_TRANSLOG_MAXSIZE 33
+#define INIT_TRANSLOG_PERFORMANCE 34
+#define INIT_TRANSLOG_STYLE 35
+#define INIT_TRANSLOG_USEALL 36
+#define INIT_TRANSLOG_AUTOFIXUP 37
+
+#define INIT_SERVER_MIN_NOTES_PW 38
+#define INIT_SERVER_ENABLE_HTTPSYNC 39
+#define INIT_QUOTA_METHOD 40
+#define INIT_FORMULA_TIMEOUT 41
+
+#define INIT_SERVER_PUBKEY_MINWIDTH 42
+#define INIT_SERVER_PUBKEY_MAXWIDTH 43
+#define INIT_SERVER_PUBKEY_DEFWIDTH 44
+#define INIT_SERVER_PUBKEY_MAXAGE 45
+#define INIT_SERVER_PUBKEY_MINDATE 46
+#define INIT_SERVER_PUBKEY_DUEDATE 47
+#define INIT_SERVER_PUBKEY_PRIORITY 48
+#define INIT_SERVER_PUBKEY_OLDKEYDAYS 49
+
+#define INIT_DB2_ITEM_INIT 50
+#define INIT_DB2_ITEM_DIRECTORY 51
+#define INIT_DB2_ITEM_INSTANCE 52
+#define INIT_DB2_ITEM_DB 53
+#define INIT_DB2_ITEM_SCHEMA 54
+#define INIT_DB2_ITEM_DEFAULT 55
+#define INIT_DB2_ITEM_PREF 56
+#define INIT_DB2_ITEM_UDFSRV 57
+#define INIT_DB2_ITEM_UDFPATH 58
+#define INIT_DB2_ITEM_DB2GRPMAX 59
+
+#define INIT_SERVERLOOKUPITEMCOUNT 60
+#define INIT_SERVERLOOKUPITEMS \
+"ServerName\0ServerTitle\0Administrator\0\
+Certificate\0ChangeRequest\0\
+AllowAccess\0DenyAccess\0CreateAccess\0ReplicaAccess\0\
+PTTargets\0PTClients\0PTCallers\0PTAccess\0\
+WhiteList\0WhiteListLog\0AnonymousAccess\0\
+ServerBuildNumber\0MajVer\0MinVer\0QMRVer\0QMUVer\0HotVer\0FixPVer\0FlagsVer\0\
+RestrictedList\0UnrestrictedList\0\
+ServerCheckPasswords\0ClusterName\0AllowMonitors\0DenyMonitors\0\
+SMTPListenerEnabled\0\
+TRANSLOG_Status\0TRANSLOG_Path\0TRANSLOG_MaxSize\0TRANSLOG_Performance\0\
+TRANSLOG_Style\0TRANSLOG_UseAll\0TRANSLOG_AutoFixup\0\
+MinumumNotesPW\0EnableHTTPSyncWithNotesPW\0QtaMthd\0FormulaTimeOut\0\
+PKMinWidth\0\
+PKMaxWidth\0\
+PKDefWidth\0\
+PKMaxAge\0\
+PKMinDate\0\
+PKDueDate\0\
+PKPriority\0\
+PKOldKeyDays\0\
+DB2Init\0\
+DB2Dir\0\
+DB2Inst\0\
+DB2Db\0\
+DB2Sche\0\
+DB2Def\0\
+DB2Pref\0\
+DB2UDFSrv\0\
+DB2UDFPath\0\
+DB2GroupMax\0"
+
+/* Address Book - Items and names used by cconsole to verify access */
+
+#define CCONSOLE_SERVERADMINITEM 0
+#define CCONSOLE_SERVERLOOKUPITEMCOUNT 1
+#define CCONSOLE_SERVERLOOKUPITEMS "Administrator"
+
+/*
+ * Address Book - Items and names used by Assist to verify agent execution
+ * access.
+ */
+
+#define ASSIST_PRIVATE_ITEM 0
+#define ASSIST_RESTRICTED_ITEM 1
+#define ASSIST_UNRESTRICTED_ITEM 2
+#define ASSIST_START_ITEM 3
+#define ASSIST_END_ITEM 4
+#define ASSIST_MAX_START_ITEM 5
+#define ASSIST_MAX_END_ITEM 6
+
+#define ASSIST_LOOKUP_AMGR_ITEM_COUNT 7
+#define ASSIST_LOOKUP_AMGR_ITEMS "PrivateList\0RestrictedList\0UnrestrictedList\0StartTime\0EndTime\0MaxStartTime\0MaxEndTime"
+
+#define ASSIST_PRIVATE_LIST_NAME "PRIVATE_LIST"
+#define ASSIST_RESTRICTED_LIST_NAME "RESTRICTED_LIST"
+#define ASSIST_UNRESTRICTED_LIST_NAME "UNRESTRICTED_LIST"
+
+/*
+ * Address Book - Items and names used by Agent Manager to verify agent
+ * execution access.
+ */
+
+#define AMGR_RELOAD_ITEM 0
+#define AMGR_NORMAL_START_ITEM 1
+#define AMGR_NORMAL_END_ITEM 2
+#define AMGR_NORMAL_CONCURRENT_TASKS_ITEM 3
+#define AMGR_NORMAL_MAX_EXECUTION_ITEM 4
+#define AMGR_NORMAL_PERCENT_TIME_ITEM 5
+#define AMGR_MAX_START_ITEM 6
+#define AMGR_MAX_END_ITEM 7
+#define AMGR_MAX_CONCURRENT_TASKS_ITEM 8
+#define AMGR_MAX_MAX_EXECUTION_ITEM 9
+#define AMGR_MAX_PERCENT_TIME_ITEM 10
+#define AMGR_CREATE_DB_ITEM 11
+#define AMGR_PRIVATE_ITEM 12
+#define AMGR_RESTRICTED_ITEM 13
+#define AMGR_UNRESTRICTED_ITEM 14
+#define AMGR_ALLOWACCESS_ITEM 15
+#define AMGR_DENYACCESS_ITEM 16
+#define AMGR_CREATEREPLICA_DB_ITEM 17
+#define AMGR_SERVERS_NOTEID_ITEM 18 /* expanded lookup to include servers id note */
+#define AMGR_SERVERS_NAPATH_ITEM 19 /* expanded lookup to include N&A path */
+
+
+#define AMGR_LOOKUP_ITEM_COUNT 18
+#define AMGR_LOOKUP_ITEMS \
+"ReloadTime\0StartTime\0EndTime\0ConcurrentAgents\0MaxExecution\0\
+PercentTime\0MaxStartTime\0MaxEndTime\0MaxConcurrentAgents\0\
+MaxMaxExecution\0MaxPercentTime\0CreateAccess\0PrivateList\0\
+RestrictedList\0UnrestrictedList\0AllowAccess\0DenyAccess\0\
+ReplicaAccess"
+
+/* extended lookup used for web agents and synch new mail agents, i.e. API based invocation */
+#define AMGR_EXT_LOOKUP_ITEM_COUNT 20
+#define AMGR_EXT_LOOKUP_ITEMS \
+"ReloadTime\0StartTime\0EndTime\0ConcurrentAgents\0MaxExecution\0\
+PercentTime\0MaxStartTime\0MaxEndTime\0MaxConcurrentAgents\0\
+MaxMaxExecution\0MaxPercentTime\0CreateAccess\0PrivateList\0\
+RestrictedList\0UnrestrictedList\0AllowAccess\0DenyAccess\0\
+ReplicaAccess\0$$NoteId\0$$DBName"
+
+/* Address book - Contains port configuration and other parameters used by
+ * DIIOP process.
+ */
+#define DIIOP_TCP_PORT_STR "IIOP_Port"
+#define DIIOP_TCP_PORT_STATUS_STR "IIOP_PortStatus"
+#define DIIOP_SSL_PORT_STR "IIOP_SSLPort"
+#define DIIOP_SSL_PORT_STATUS_STR "IIOP_SSLStatus"
+#define DIIOP_IOR_HOST_STR "IIOP_IORHost"
+#define DIIOP_IDLE_MINS_ALLOWED_STR "IIOP_IdleMinsAllowed"
+#define DIIOP_EXTERNAL_HTML_DIR_STR "IIOP_HtmlDir"
+#define HTTP_HTML_DIR_STR "HTTP_HtmlDir"
+#define HTTP_SSL_KEYFILE_STR "HTTP_SSLKeyFile"
+
+#define INTERNET_AUTH_VIEW "HTTP_AuthView"
+
+
+/* Address book - Items used by the Domino back-end objects for security
+ * configuration
+ */
+
+#define LSBE_BROWSE_FLAG 0
+#define LSBE_VIEW 1
+#define LSBE_IIOP_TCP_NAME_AND_PASSWD 2
+#define LSBE_IIOP_TCP_ANONYMOUS 3
+#define LSBE_IIOP_SSL_NAME_AND_PASSWD 4
+#define LSBE_IIOP_SSL_ANONYMOUS 5
+#define LSBE_HTTP_SESSION_AUTH 6
+#define LSBE_HTTP_SSO_CONFIG 7
+
+#define LSBE_SECURITY_ITEM_COUNT 8
+#define LSBE_SECURITY_ITEMS "HTTP_DatabaseBrowsing\0HTTP_AuthView\0\
+IIOP_TCPNP\0IIOP_AllowAnonymous\0\
+IIOP_SSLNP\0IIOP_SSLAnonymous\0HTTP_enableSessionAuth\0HTTP_SSOCfg"
+
+/* Address book - Items used by the Domino back-end objects for getting person
+ * information
+ */
+#define LSBE_HTTPPASSWORD 0
+#define LSBE_FULLNAME 1
+#define LSBE_ALTFULLNAME 2
+#define LSBE_ALTFULLNAMELANG 3
+#define LSBE_DOMAINTYPE 4
+#define LSBE_PERSON_ITEM_COUNT 5
+#define LSBE_FULL_PERSON_ITEMS "HTTPPassword\0FullName\0AltFullName\0AltFullNameLanguage\0$$DomainType\0$$DBIndex"
+#define LSBE_LIM_PERSON_ITEMS "HTTPPassword\0%DN\0AltFullName\0AltFullNameLanguage\0$$DomainType\0$$DBIndex"
+
+/* Address book - Lightweight third-party Authentication Items
+ */
+
+#define LTPA_SVITEMS "HTTP_enableSessionAuth\0HTTP_WebSSOConfig"
+#define LTPA_SVITEM_SESSIONAUTH 0
+#define LTPA_SVITEM_WEBSSOCONFIG 1
+#define LTPA_SVITEMS_COUNT 2
+
+#define LTPA_NAMESPACE "($WebSSOConfigs)"
+
+#define LTPA_WSTOKENNAME "LtpaToken"
+
+#define LTPA_TOKENNAME "Ltpa_TokenName"
+#define LTPA_TOKENDOMAIN "Ltpa_TokenDomain"
+#define LTPA_TOKENEXPR "Ltpa_TokenExpiration"
+#define LTPA_DOMSECRET "Ltpa_DominoSecret"
+#define LTPA_DOMSECRETNEXT "Ltpa_DominoSecretNext"
+#define LTPA_DOMSECRETPREV "Ltpa_DominoSecretPrev"
+#define LTPA_WSENABLED "Ltpa_WSEnabled"
+#define LTPA_WS3DESDATA "Ltpa_WS3DESData"
+#define LTPA_WSRSADATA "Ltpa_WSRSAData"
+#define LTPA_WSREALM "Ltpa_WSRealm"
+#define LTPA_WSVERSION "Ltpa_WSVersion"
+#define LTPA_ROLLOVERENABLED "Ltpa_RolloverEnabled"
+#define LTPA_LASTROLLOVERDATE "Ltpa_LastRolloverDate"
+#define LTPA_IDLETIMEOUTMAX "Ltpa_IdleTimeoutMax"
+#define LTPA_IDLETIMEOUTMIN "Ltpa_IdleTimeoutMin"
+#define LTPA_NAMEMAPPING "Ltpa_MapNm"
+
+#define LTPA_MAXTOKENLEN 2048
+#define LTPA_MAXTOKENNAMELEN 64
+#define LTPA_MAXTOKENDOMAINLEN MAX_TCP_HOST_NAME
+#define LTPA_MAXWSREALMLEN 256
+
+
+/* Address book - Items used by Calendaring & Scheduling for user lookup
+ and domain lookup. */
+
+#define SCHED_USERLOOKUPITEMCOUNT 6
+#define SCHED_USERLOOKUPITEMS "FullName\0ListName\0MailAddress\0MailDomain\0MailServer\0CalendarDomain"
+#define SCHED_USERLOOKUPFULLNAMEITEM 0
+#define SCHED_USERLOOKUPLISTNAMEITEM 1
+#define SCHED_USERLOOKUPMAILADDRESSITEM 2
+#define SCHED_USERLOOKUPMAILDOMAINITEM 3
+#define SCHED_USERLOOKUPMAILSERVERITEM 4
+#define SCHED_USERLOOKUPCALENDARDOMAINITEM 5
+
+#define SCHED_DOMAINLOOKUPITEMCOUNT 3
+#define SCHED_DOMAINLOOKUPITEMS "DomainType\0CalendarServer\0CalendarSystem"
+#define SCHED_DOMAINLOOKUPDOMAINTYPEITEM 0
+#define SCHED_DOMAINLOOKUPCALENDARSERVERITEM 1
+#define SCHED_DOMAINLOOKUPCALENDARSYSTEMITEM 2
+
+#define SCHEDULE_MGR_LOOKUP_ITEM_COUNT 7
+#define SCHEDULE_MGR_LOOKUP_ITEMS "FullName\0MailServer\0MailFile\0MailDomain\0CalendarDomain\0Type\0MailAddress"
+#define SCHEDULE_MGR_LOOKUP_ITEM_MAILSERVER 1
+#define SCHEDULE_MGR_LOOKUP_ITEM_MAILFILE 2
+#define SCHEDULE_MGR_LOOKUP_ITEM_MAILDOMAIN 3
+#define SCHEDULE_MGR_LOOKUP_ITEM_CALENDARDOMAIN 4
+#define SCHEDULE_MGR_LOOKUP_ITEM_TYPE 5
+#define SCHEDULE_MGR_LOOKUP_ITEM_MAILADDRESS 6
+
+/* View note item names */
+
+#define VIEW_TITLE_ITEM FIELD_TITLE /* Title */
+#define VIEW_COLLECTION_ITEM "$Collection" /* Contains object ID */
+#define VIEW_CONTAINER_ITEM "$ViewContainer" /* Contains storage object ID */
+#define VIEW_FORMULA_ITEM "$Formula" /* Selection formula buffer */
+#define VIEW_FORMULA_TIME_ITEM "$FormulaTV" /* If present, formula is "time-relative" (@NOW-based) */
+#define VIEW_CLASSES_ITEM "$FormulaClass" /* Formula note classes */
+#define VIEW_COLLATION_ITEM "$Collation" /* Collation buffer */
+#define VIEW_TOTALS_ITEM "$Totals" /* Subtotalling specification */
+#define VIEW_VIEW_FORMAT_ITEM "$ViewFormat" /* View table format item */
+#define VIEW_INDEX_ITEM "$Index" /* Index disposition options */
+#define VIEW_DESIGN_VER_ITEM_V2 "$DesignVersion" /* Design note version, for V2 backward compatibility */
+#define VIEW_DESIGN_VER_ITEM "$Version" /* Design note version */
+#define VIEW_NOTEREF_ITEM FIELD_LINK /* Note Reference item */
+#define VIEW_CONFLICT_ITEM "$Conflict" /* Replication update conflict */
+#define VIEW_FORM_FORMULA_ITEM "$FormFormula" /* Form Formula */
+#define VIEW_COMMENT_ITEM "$Comment" /* View comment. */
+#define VIEW_SELQUERY_ITEM "$SelQuery" /* View selection query object */
+#define VIEW_LASTSEENUID_ITEM "$LastSeenUID" /* Internet Replication Last Seen UID */
+#define ITEM_NAME_REFOPT "$RefOptions" /* ALlow a ref to original
+ note to be included. */
+#define VIEW_FORMAT_CUSTOMIZE_ITEM "$CustomViewFormat"
+#define VIEW_INHERITED_FROM_ITEM "$ViewInheritedFrom" /* what was this view/folder based on */
+#define VIEW_SQLQUERY_ITEM "$ViewSQLQuery" /* SQL Query for View Selection */
+
+/* Calendar view print customization items... */
+#define VIEW_FORMAT_CALDAYPRINT_ITEM "$CalDayPrintCustomFormat"
+#define VIEW_FORMAT_CALWEEKPRINT_ITEM "$CalWeekPrintCustomFormat"
+#define VIEW_FORMAT_CALMONTHPRINT_ITEM "$CalMonthPrintCustomFormat"
+#define VIEW_FORMAT_CALWORKWEEKPRINT_ITEM "$CalWorkWeekPrintCustomFormat"
+#define VIEW_FORMAT_CALROLLINGPRINT_ITEM "$CalRollingPrintCustomFormat"
+#define VIEW_FORMAT_CALLISTPRINT_ITEM "$CalListPrintCustomFormat"
+
+/* Some custom view information stored in bookmark cache. */
+#define VIEW_FORMAT_CUSTOM_FLAGS_ITEM "$ViewCustomFlags"
+#define VIEW_FORMAT_CUSTOM_NEWESTMAIL_TIME "$NewestMailTime" /* what time the last refresh was done. */
+#define VIEW_FORMAT_CUSTOM_NEWESTMAIL_UNID "$NewestMailUNID" /* what is the unid of topmost newest mail */
+
+/* Calendar style view items */
+
+#define VIEW_CALENDAR_FORMAT_ITEM "$CalendarFormat" /* Calendar View format item */
+
+#define VIEW_FORMAT_DAILY_CAL_ITEM "$DailyCalViewFormat"
+#define VIEW_FORMAT_WEEKLY_CAL_ITEM "$WeeklyCalViewFormat"
+#define VIEW_FORMAT_MONTHLY_CAL_ITEM "$MonthlyCalViewFormat"
+#define VIEW_FORMAT_ROLLING_CAL_ITEM "$RollingCalViewFormat"
+#define VIEW_FORMAT_LIST_CAL_ITEM "$ListCalViewFormat"
+
+/* Folder-related view items */
+/* Pre-build 126 items, can be removed before V4 ship - only exposed internally */
+#define VIEW_UNID_SELECTION_ITEM "$UNIDSelection" /* List of UNID's which are in view. */
+#define VIEW_USE_UNID_SELECTION_ITEM "$UseUNIDSelection" /* If present, uses UNID selection table. */
+
+#define VIEW_FOLDER_OBJECT "$FolderObject" /* If present, is ODS version of FOHEADER and
+ set of entries, see dbfolder.h. The view
+ may have additional items with suffixes
+ on this item name, e.g., $FolderObject1 */
+#define VIEW_FOLDER_IDTABLE "$FolderIDTable" /* If present, is ID table representing the
+ contents of the folder */
+#define VIEW_ANTIFOLDER_IDTABLE "$AntiFolderIDTable"
+#define VIEW_VIEWLOGGING "$ViewLogging" /* If present, states whether to log backing btree */
+
+
+/* Used only within NSF for single copy template */
+#define NOTE_REFERENCE_ITEM "$NoteReference" /* Reference to template note that this note inherits from */
+
+
+/* Hidden view name prefix/postfix strings. */
+
+#define HIDDEN_VIEW_NAME_PREFIX "("
+#define HIDDEN_VIEW_NAME_POSTFIX ")"
+
+/* ViewMap note item names */
+
+#define VIEWMAP_DATASET_ITEM "$ViewMapDataset" /* Contains ViewMap dataset data */
+#define VIEWMAP_LAYOUT_ITEM "$ViewMapLayout" /* Contains layout objects */
+#define VIEWMAP_IMAGEMAP_ITEM "$NavImagemap" /* Contains the navigator's imagemap */
+
+/* UName special fields */
+
+#define UNAME_PATH_ITEM "Path"
+#define UNAME_SERVER_ITEM "Server"
+#define UNAME_DB_ITEM "Database"
+
+/* Actions */
+
+#define ACTION_ITEM "$ACTIONS"
+#define V5ACTION_ITEM "$V5ACTIONS"
+
+/* Filter note item names */
+
+#define FILTER_TYPE_ITEM "$Type"
+#define FILTER_COMMENT_ITEM "$Comment"
+#define FILTER_FORMULA_ITEM "$Formula" /* Required */
+#define FILTER_FORMULA2_ITEM "$Formula2" /* Second one, optional */
+#define FILTER_SCAN_ITEM "$Scan" /* all in view, selected in view, all in db, unread in db */
+#define FILTER_HIGHLIGHT_ITEM "$Highlight" /* '1' if hilites enabled, '0' to remove */
+#define FILTER_QUERY_ITEM "$Query" /* Full text query string used to refine notes to do */
+#define FILTER_OPERATION_ITEM "$Operation" /* update, create new, select */
+#define FILTER_PERIOD_ITEM "$Period" /* hourly, daily, or weekly */
+#define FILTER_LEFTTODO_ITEM "$LeftToDo" /* Data structure describing what's left to do */
+#define FILTER_MACHINE_ITEM "$MachineName" /* name of machine on which this background filter may run */
+
+/* filter types */
+
+#define FILTER_TYPE_MENU 0
+#define FILTER_TYPE_BACKGROUND 1
+#define FILTER_TYPE_MAIL 2
+#define FILTER_TYPE_ONCE 3
+
+/* filter scan options */
+
+#define FILTER_SCAN_ALL 0
+#define FILTER_SCAN_UNREAD 1
+#define FILTER_SCAN_VIEW 2
+#define FILTER_SCAN_SELECTED 3
+#define FILTER_SCAN_MAIL 4
+#define FILTER_SCAN_NEW 5
+
+#define FILTER_OP_UPDATE 0
+#define FILTER_OP_SELECT 1
+#define FILTER_OP_NEW_COPY 2
+
+/* filter periods */
+
+#define PERIOD_HOURLY 0
+#define PERIOD_DAILY 1
+#define PERIOD_WEEKLY 2
+#define PERIOD_DISABLED 3
+
+/* Query note item names. */
+
+/* If the user has typed in a query, it is stored in $SimpleQuery; If
+ the user has created a query using the Query Builder, it is stored
+ in the $Builder... fields. */
+
+#define QUERY_SIMPLEQUERY_ITEM "$SimpleQuery" /* simple query */
+#define QUERY_BUILDERQUERY_ITEM "$BuilderQuery" /* Query Builder: text list of */
+ /* different portions of query: */
+ /* any of these, all of these, */
+ /* none of these, author */
+
+#define QUERY_BUILDERDATE_ITEM "$BuilderDate" /* Date before or after */
+#define QUERY_BUILDERFLAGS_ITEM "$BuilderFlags" /* query builder flags */
+#define QUERY_FIELDQUERY_ITEM "$FieldQuery" /* query by form query */
+
+#define QUERY_FIELDACTION_ITEM "$FieldAction" /* action by form struct */
+#define QUERY_FORMULAACTION_ITEM "$FormulaAction" /* @function action formula */
+
+#define QUERY_BUILDERFLAG_NEAR 'N' /* Apply near to 'all of these' */
+#define QUERY_BUILDERFLAG_DATEBEFORE 'B' /* Before $BuilderDate (as opposed to after) */
+
+/* V4 Search Bar queries */
+
+#define QUERY_V4_OBJECTQUERY_ITEM "$V4QueryObject" /* Query object built by the V4 Search Builder */
+#define QUERY_V4_OPTIONS_ITEM "$V4QueryOptions" /* Query options from the V4 Search Builder */
+
+/* V4 Assistants */
+
+#define ASSIST_INFO_ITEM "$AssistInfo" /* info (TYPE_ASSISTANT_INFO) */
+#define ASSIST_TYPE_ITEM "$AssistType" /* Type of assistant - related to action type */
+#define ASSIST_QUERY_ITEM "$AssistQuery" /* assistant query item */
+#define ASSIST_ACTION_ITEM "$AssistAction" /* assistant action item */
+#define ASSIST_LASTRUN_ITEM "$AssistLastRun" /* TimeDate of last run */
+#define ASSIST_DOCCOUNT_ITEM "$AssistDocCount" /* Number of docs run on last run */
+#define ASSIST_RUNINFO_ITEM "$AssistRunInfo" /* Run information object */
+#define ASSIST_EXACTION_ITEM "$AssistAction_Ex" /* assistant action item - extra data */
+#define ASSIST_VERSION_ITEM "$AssistVersion" /* TIMEDATE of when the agent design
+ (as opposed to enable/disable state)
+ was changed */
+#define ASSIST_FORMAT_VER "$AssistFormatVer" /* format of the agent structure */
+#define ASSIST_FORMAT_VER5040 "05040" /* introduced in 5.04 */
+#define ASSIST_FORMAT_VER5030 "05030" /* introduced in 5.03 */
+
+
+/* Types for ASSIST_TYPE_ITEM - the following defines are used to determine
+ * what type of assistant we are dealing with -- ie, what is the main
+ * action type that the user has defined. The formula ones are for
+ * backwards compatability with V3.
+ * See ods.h for the SIG_ACTION_xxx values used for regular V4 generic agents.
+ */
+
+#define ASSIST_SIG_ACTION_NONE -1 /* No action defined */
+/* formula, update only -FILTER_OP_UPDATE 0 */
+/* formula, select only -FILTER_OP_SELECT 1 */
+/* formula, new copy -FILTER_OP_NEW_COPY 2 */
+
+/* The default search form and default action forms are used by query by form
+ and action by form. */
+
+#define DEFAULT_QUERY_BY_FORM "$DefaultSearch"
+#define DEFAULT_ACTION_BY_FORM "$DefaultAction"
+
+/* Misc Flags */
+
+#define ASSIST_FLAG_ENABLED 'E'
+#define ASSIST_FLAG_DISABLED 'D'
+#define ASSIST_FLAG_NEWCOPY 'N'
+#define ASSIST_FLAG_HIDDEN 'H'
+#define ASSIST_FLAG_PRIVATE 'P'
+#define ASSIST_FLAG_THREAD 'T'
+#define ASSIST_FLAG_ALLOW_REMOTE_DEBUGGING 'R'
+#define ASSIST_FLAG_ALLOW_UNSECURE_LS_LIBS 'L'
+#define ASSIST_FLAG_AGENT_RUNASWEBUSER 'u' /* signed "shadow" flag to verify value of unsigned DESIGN_FLAG_AGENT_RUNASWEBUSER*/
+#define ASSIST_FLAG_AGENT_RUNASSIGNER 's' /* signed "shadow" flag to verify value of unsigned DESIGN_FLAG_AGENT_RUNASWEBUSER*/
+#define ASSIST_FLAGS_ITEM "$AssistFlags" /* Misc flags */
+#define ASSIST_FLAGS_ITEM2 "$AssistFlags2" /* Unsigned Misc flags */
+#define ASSIST_ONBEHALFOF "$OnBehalfOf" /* used by agents to specify whose authority the agents
+ runs under (other than the signer) */
+#define ASSIST_RESTRICTED "$Restricted" /* agent designer can force the agent to have restricted
+ rights, even if the signer has unrestricted rights , or
+ raise their rights to be full admin + unrestricted */
+
+#define ASSIST_RESTRICTED_RESTRICTED 0x00000001 /* base value for restricted */
+#define ASSIST_RESTRICTED_UNRESTRICTED 0x00000000 /* base value for unrestricted */
+#define ASSIST_RESTRICTED_NOT_FORCED 0x00000000 /* used when the item is not used to force restrictions in the agent
+ agent can be unrestricted, if the signiture allows it */
+#define ASSIST_RESTRICTED_FORCED 0x00000001 /* used when the designer wants to force the agent to be only restricted
+ note: this flag has no effect when the agent signer is restricted or
+ has no rights to run the agents */
+#define ASSIST_RESTRICTED_FULLADMIN 0x00000002 /* unrestricted (low bit of zero, plus fulladmin */
+#define ASSIST_RESTRICTED_NOT_PRESENT 0x10000000 /* (in-memory) used when the item is not present in the agent */
+#define ASSIST_RESTRICTED_FORCED_USED 0x20000000 /* (in-memory) set when the flag was used to lower permissions */
+#define ASSIST_RESTRICTED_SCRIPT_LIBRARY 0x40000000 /* (in-memory) used when the agent rights are lowered because of the script library */
+
+
+#define ASSIST_MAIL_ITEM "$AssistMail" /* If this field exists in a mail note, it means that */
+ /* mail message was created by an agent. */
+
+#define ASSIST_TRIGGER_ITEM "$AssistTrigger" /* (Read-only) Assistant's trigger type */
+#define FORM_SCRIPT_OBJECT "$$FormScript_O" /* Script object code item */
+
+/* These were moved here from \edit\dmem.h */
+#define FORM_SCRIPT_ITEM_NAME "$$FormScript"
+#define DOC_SCRIPT_ITEM "$Script"
+#define DOC_SCRIPT_ITEM_OBJECT "$$Script_O"
+#define DOC_ACTION_ITEM "$$FormAction"
+#define DOC_SCRIPT_NAME "$$ScriptName"
+#define DOC_SCRIPT_BREAKPOINTS "$Breakpoints"
+
+/* View Script items */
+#define VIEW_SCRIPT_NAME "$ViewScript"
+#define VIEW_SCRIPT_OBJECT "$ViewScript_O"
+#define VIEW_GLOBAL_SCRIPT_NAME "$ViewGlobalScript"
+#define VIEW_GLOBAL_SCRIPT_OBJECT "$ViewGlobalScript_O"
+#define VIEW_ACTION_ITEM_NAME "$ViewAction" /* Formula for view script event */
+#define VIEW_ACTION_EVENT_COUNT 14 /* ie, $ViewAction0-$ViewAction10 - one per view script event that can contain formulas */
+
+/* Database Script items */
+#define DB_SCRIPT_DESIGN_NAME "Database Script"
+#define DB_SCRIPT_NAME "$DBScript"
+#define DB_SCRIPT_OBJECT "$DBScript_O"
+#define DB_ACTION_ITEM_NAME "$DBAction"
+
+/* Script Library items */
+#define SCRIPTLIB_ITEM_NAME "$ScriptLib"
+#define SCRIPTLIB_OBJECT "$ScriptLib_O"
+#define JAVASCRIPTLIBRARY_CODE "$JavaScriptLibrary"
+
+/* Servlet items */
+#define SERVLET_FLAGS_ITEM "$ServletFlags"
+#define SERVLET_FLAG_HASSOURCE 'S' /* has real source, not just included files */
+
+/* Web Service items */
+//#define WEBSERVICE_NAMESPACE "$WSNameSpace"
+#define WEBSERVICE_PORTTYPE "$WSPortType"
+#define WEBSERVICE_ELTNAME "$WSEltName"
+#define WEBSERVICE_PORTNAME "$WSPortName"
+#define WEBSERVICE_PORTCLASS "$WSPortClass"
+
+#define WEBSERVICE_FLAGS_ITEM "$WebServiceFlags"
+#define WEBSERVICE_FLAG_SOAPDEFAULT 'S'
+#define WEBSERVICE_FLAG_SOAPOPERATION 'O'
+#define WEBSERVICE_FLAG_DOCBIND 'D'
+#define WEBSERVICE_FLAG_WRAPBIND 'W'
+#define WEBSERVICE_FLAG_LITERALBIND 'L'
+#define WEBSERVICE_FLAG_XMLDATAMAP 'X'
+#define WEBSERVICE_FLAG_XMLDOCTYPE 'Y'
+#define WEBSERVICE_FLAG_ISVALID 'V'
+#define WEBSERVICE_FLAG_FROZEN 'F'
+#define WEBSERVICE_FLAG_VALIDATION 'N'
+#define WEBSERVICE_FLAG_BADCOMPILE 'C'
+
+/* Replication formula note item names */
+
+#define REPLFORMULA_SERVER_ITEM FIELD_TITLE
+#define REPLFORMULA_VERSION_ITEM "$ReplVersion"
+#define REPLFORMULA_SOURCE_SERVERS "$ReplSrcServers"
+#define REPLFORMULA_NOTECLASS_ITEM "$ReplClassMasks"
+#define REPLFORMULA_FORMULA_ITEM "$ReplFormula"
+#define REPLFORMULA_VIEW_ITEM "$ReplView" /* V4 feature; sel repl by view */
+#define REPLFORMULA_PRIVATE_FOLDER_ITEM "$ReplPrivateFolder" /* V4 feature; sel repl by private folder */
+#define REPLFORMULA_FIELDS_ITEM "$ReplFields" /* V4.5 feature; sel repl by fields */
+#define REPLFORMULA_LOCAL_FOLDER_ITEM "$ReplLocalFolder"
+
+#define REPL_LOCAL_FOLDER_DEFAULT "($KeepLocal)"
+
+#define REPLICATION_FORM "$Replication" /* Name of replication form */
+#define REPLFORMULA_FORM_ITEM "$ReplForm" /* V6 feature; sel repl by form */
+#define REPLFORMULA_FORM_NOTUSED "0"
+#define REPLFORMULA_FORM_USED "1"
+#define REPLFORMULA_FORM_FORMULA_ITEM "$ReplFormFormula"
+
+
+#define FIELD_NAME_DELIMITER ';'
+#define VIEW_NAME_DELIMITER ';'
+#define VIEW_NAME_DELIMETER VIEW_NAME_DELIMITER /* (misspelled!) */
+
+/* Special replication flags */
+
+#define REPLFLAGS_ITEM "$ReplFlags"
+#define REPL_FLAG_NOREPL 'n'
+
+/* Icon note item names */
+
+#define DESK_ICON_ITEM "IconBitmap"
+#define LSECFLAGS_ITEM "$LSECFlags"
+#define DEFAULT_NAVIGATOR_ITEM "$DefaultNavigator"
+#define DEFAULT_WEB_NAVIGATOR_ITEM "$DefaultWebNavigator"
+#define DEFAULT_WEBPAGE_ITEM "$DefaultWebPage"
+#define DEFAULT_OUTLINE_ITEM "$DefaultOutline"
+#define DEFAULT_FRAMESET_ITEM "$DefaultFrameset"
+#define DEFAULT_WEB_FRAMESET_ITEM "$DefaultWebFrameset"
+#define DEFAULT_WEB_PAGE_ITEM "$DefaultWebLaunchPage"
+#define ICON_TEMPLATEMODTIME_ITEM "$TemplateModTime"
+#define ICON_TEMPLATESERVERNAME_ITEM "$TemplateServerName"
+#define ICON_TEMPLATEFILENAME_ITEM "$TemplateFileName"
+#define ICON_UPDATEDBYLIMIT "$UpdatedByLimit"
+#define ICON_REVISIONSLIMIT "$RevisionsLimit"
+#define ICON_SOFTDELETE_EXPIRE_HOURS "$SoftDeleteExpireHours"
+#define LAUNCH_VIEWNAME_ITEM "$LaunchViewName"
+#define LAUNCH_WEB_VIEWNAME_ITEM "$LaunchWebViewName"
+#define LAUNCH_DOCLINK_ITEM "$LaunchDoclink"
+#define LAUNCH_WEB_DOCLINK_ITEM "$LaunchWebDoclink"
+#define LAUNCH_WEB_DOCLINK_ANCHOR_ITEM "$LaunchWebDoclinkAnchor"
+#define DEFAULT_LANGUAGE "$DefaultLanguage"
+#define DEFAULT_COLLATION "$DefaultCollation"
+#define COLLATION_TYPE "$CollationType"
+
+/* Character flags for replicated local security property ($LSECFlags field
+ in the icon note */
+
+#define CHFLAG_SET_LOCALSEC 's' /* should set local access control */
+#define CHFLAG_CLEAR_LOCALSEC 'c' /* should clear local access control */
+#define CHFLAG_COMPACT_LOCALSEC 'p' /* compact should set local access control */
+
+/* character flags for the "replicated file header" ($Flags field in the
+ icon note) */
+
+/* NOTE: These flags are not in alphabetical order. There are more of them than
+ you think. Keep looking until you see a comment saying the set is over. */
+
+/* ----< This is the beginning of the CHFLAGs >---- */
+
+#define ICON_FLAGS DESIGN_FLAGS
+
+/* icon flags */
+#define CHFLAG_LAUNCH_APP 'a'
+#define CHFLAG_MAILBOX_TYPE 'A'
+#define CHFLAG_ADDRESS_BOOK_TYPE 'b'
+#define CHFLAG_LIGHT_ADDRESS_BOOK_TYPE 'B'
+#define CHFLAG_SHOW_CHANGED_POLICY 'c'
+#define CHFLAG_LAUNCH_DOCLINK 'd'
+#define CHFLAG_LAUNCH_FRAMESET 'F'
+#define CHFLAG_RESTRICT_STORED_FORMS 'f'
+#define CHFLAG_LIBRARY_TYPE 'g'
+#define CHFLAG_DEFERRED_LOADED_IMAGES 'i'
+#define CHFLAG_PERSONALJOURNAL_TYPE 'j'
+#define CHFLAG_LAUNCH_NAVIGATOR 'l'
+#define CHFLAG_SEARCH_SCOPE_TYPE 'm'
+#define CHFLAG_NEVER_SHOW_POLICY 'n'
+#define CHFLAG_LAUNCH_OUTLINE 'o' /* Launch Outline as the navigator */
+#define CHFLAG_ALWAYS_SHOW_POLICY 'p'
+#define CHFLAG_MAILFILE_TYPE 'r'
+#define CHFLAG_SOLO_NAVIGATOR 's'
+#define CHFLAG_OBSOLETE_DONTUSE 't'
+#define CHFLAG_SITEDB_TYPE 'u'
+ /* 'refresh' flag from build 130-133 */
+ /* has been superceded by a flag in */
+ /* ICON_FLAGS_NOREFRESH, below. */
+ /* don't use this one anymore... */
+#define CHFLAG_NO_SHOW_VIEW 'v'
+
+#define CHFLAG_LAUNCH_WEBPAGE 'W' /* Launch navigator of type Web Page */
+#define CHFLAG_PANE_BIGFOLDER 'w' /* preview pane orientation; mutually exclusive with below */
+#define CHFLAG_PANE_SMALLVIEW 'x' /* preview pane orientation; mutually exclusive with above*/
+#define CHFLAG_PANE_MAXIMIZED 'y' /* preview pane size */
+
+/* web-specific launch flags */
+#define CHFLAG_WEB_LAUNCH_DOCLINK 'D'
+#define CHFLAG_WEB_LAUNCH_NAVIGATOR 'L'
+#define CHFLAG_WEB_ALWAYS_SHOW_POLICY 'P'
+#define CHFLAG_WEB_LAUNCH_THISDOCLINK 'T'
+#define CHFLAG_WEB_LAUNCH_VIEWNAME 'V'
+#define CHFLAG_WEB_USEJAVASCRIPT 'J'
+#define CHFLAG_WEB_USESSLCONN 'X'
+#define CHFLAG_WEB_LAUNCH_PAGE 'E'
+#define CHFLAG_WEB_LAUNCH_FRAMESET 'S'
+#define CHFLAG_RESTORE_VIEW 'K'
+
+#define CHFLAG_MULTILINGUAL_DB 'M'
+#define CHFLAG_ALLOW_DECS_CONNECTIONS 'C'
+
+#define CHFLAG_NOUNREAD_MARKS 'z'
+#define CHFLAG_DISABLE_RESPONSE_INFO '1'
+#define CHFLAG_FORM_BUCKET_OPT '2'
+#define CHFLAG_MAINTAIN_LAST_ACCESSED '3'
+#define CHFLAG_DELETES_ARE_SOFT '4'
+
+#define CHFLAG_IS_LOCK_DB '5'
+#define CHFLAG_IS_DESIGN_LOCK_DB '6'
+#define CHFLAG_LARGE_UNKTABLE '7'
+#define CHFLAG_HIDE_FROM_WEB '8'
+#define CHFLAG_IS_WEBAPPLICATION '9'
+
+#define CHFLAG_REFRESH_ON_ADMIN 'e'
+
+#define CHFLAG_COPY_PROFILES 'G' /* For templates - copy profile notes on creating database from this one
+ and when refreshing databases from it */
+#define CHFLAG_LZ1 'Z' /* LZ1 compression db option. */
+#define CHFLAG_REPL_UNREAD_CLUSTERED 'Q'
+#define CHFLAG_REPL_UNREAD_EVERYWHERE 'U' /* Icon flag for enabling replication of unread marks - on AND off cluster */
+#define CHFLAG_TRACK_REPLYFORWARD 'h' /* inherited track reply/forward flag */
+
+/* ----< This is the end of the CHFLAGs >---- */
+
+/* unlike the $Flags field, this field doesn't get
+ refreshed/replaced on a design refresh/replace
+ and they don't inherit from parent templates
+*/
+#define ICON_FLAGS_NOREFRESH "$FlagsNoRefresh"
+
+#define CHFLAG_NR_ADV_TEMPLATE 't'
+#define CHFLAG_NR_SINGLE_COPY_TEMPLATE 's'
+
+#define CHFLAG_NR_DONTTRACK_REPLYFORWARD 'r' /* need separate flags here because */
+#define CHFLAG_NR_DOTRACK_REPLYFORWARD 'f' /* we need to know if user turned off OR on to override template setting */
+#define CHFLAG_NR_REPLUNREAD_NEVER 'v'
+#define CHFLAG_NR_REPLUNREAD_CLUSTERED 'Q'
+#define CHFLAG_NR_REPLUNREAD_EVERYWHERE 'U'
+
+/* Special replication flags */
+
+#define REPLFLAGS_ITEM "$ReplFlags"
+#define REPL_FLAG_NOREPL 'n'
+
+/* Auto-merge replication conflicts */
+
+#define ITEM_CONFLICT_ACTION "$ConflictAction" /* enable auto-merge conflicts if 1 */
+#define CONFLICT_AUTOMERGE '1'
+#define CONFLICT_NONE '2'
+#define CONFLICT_BEST_MERGE '3'
+
+#define ITEM_CONFLICT_ITEMS "$ConflictItems"
+
+/* Form note item names */
+
+#define ITEM_NAME_TEMPLATE "$Body" /* form item to hold form CD */
+#define ITEM_NAME_DOCUMENT "$Info" /* document header info */
+#define ITEM_NAME_TEMPLATE_NAME FIELD_TITLE /* form title item */
+#define ITEM_NAME_FORMLINK "$FormLinks" /* form link table */
+#define ITEM_NAME_FIELDS "$Fields" /* field name table */
+#define ITEM_NAME_FORMPRIVS "$FormPrivs" /* form privileges */
+#define ITEM_NAME_FORMUSERS "$FormUsers" /* text list of users allowed to use the form */
+#define ITEM_NAME_FRAMESET "$FrameSet" /* form item to hold form Frameset definition */
+#define ITEM_NAME_FRAMEINFO "$FrameInfo" /* frameset used to open form */
+
+/* Special form flags */
+
+#define ITEM_NAME_KEEP_PRIVATE "$KeepPrivate"
+#define PRIVATE_FLAG_YES '1' /* $KeepPrivate = TRUE force disabling of printing, mail forwarding and edit copy */
+#define PRIVATE_FLAG_YES_RESEND '2' /* $KeepPrivate = TRUE same as PRIVATE_FLAG_YES except allow resend */
+
+#define ITEM_NAME_DATEPICKER_MONTH "$DatePickerMonth"
+#define ITEM_NAME_DATEPICKER_DAY "$DatePickerDay"
+#define ITEM_NAME_DATEPICKER_YEAR "$DatePickerYear"
+#define ITEM_NAME_HEADERAREA "$HeaderArea"
+#define ITEM_NAME_FOOTERAREA "$FooterArea"
+#define ITEM_NAME_REGIONFRAMESET "$RegionFrameset"
+#define ITEM_NAME_BACKGROUNDGRAPHIC "$Background"
+#define ITEM_NAME_BACKGROUNDGRAPHICR5 "$BackgroundR5"
+#define ITEM_NAME_BACKGROUNDGRAPHICBODY "$BackgroundBody"
+#define ITEM_NAME_PAPERCOLOR "$PaperColor"
+#define ITEM_NAME_PAPERCOLOREX "$PaperColorEx"
+#define ITEM_NAME_LAYER "$Layer"
+#define ITEM_NAME_LAYERTEXT "$LayerText"
+#define ITEM_NAME_RESTRICTBKOVERRIDE "$NoBackgroundOverride"
+#define RESTRICTBK_FLAG_NOOVERRIDE '1' /* $NoBackgroundOverride = TRUE Don't allow user to override document background */
+#define ITEM_NAME_HTMLCODE "$HTMLCode"
+#define ITEM_NAME_HTMLCODE_CLIENT "$HTMLCodeClient"
+#define ITEM_NAME_DAVNAME "$DAVName"
+
+#define ITEM_NAME_AUTO_EDIT_NOTE "$AutoEditMode"
+#define AUTO_EDIT_FLAG_YES '1' /* $AutoEditMode = TRUE force edit mode on open regardless of Form flag */
+
+#define ITEM_NAME_SHOW_NAVIGATIONBAR "$ShowNavigationBar" /* Display the URL navigation Bar */
+#define ITEM_NAME_HIDE_SCROLL_BARS "$HideScrollBars"
+#define WINDOW_SCROLL_BARS_NONE '1'
+#define WINDOW_SCROLL_BARS_HORZ '2'
+#define WINDOW_SCROLL_BARS_VERT '3'
+
+#define ITEM_NAME_BACKGROUNDGRAPHIC_REPEAT "$BackgroundRepeat"
+#define ITEM_NAME_BACKGROUNDGRAPHIC_REPEATBODY "$BackgroundRepeatBody"
+#define ITEM_NAME_USER_BACKGROUNDGRAPHIC_REPEAT "$UserBackgroundRepeat"
+#define ITEM_NAME_USER_BACKGROUNDGRAPHIC_REPEATBODY "$UserBackgroundRepeatBody"
+#define BACKGROUNDGRAPHIC_REPEAT_ONCE '1'
+#define BACKGROUNDGRAPHIC_REPEAT_VERT '2'
+#define BACKGROUNDGRAPHIC_REPEAT_HORIZ '3'
+#define BACKGROUNDGRAPHIC_REPEAT_BOTH '4'
+#define BACKGROUNDGRAPHIC_REPEAT_SIZE '5'
+#define BACKGROUNDGRAPHIC_REPEAT_CENTER '6'
+
+#define ITEM_NAME_HIDE_GRAPHIC_IN_EDIT_MODE "$HideGraphicInEditMode"
+
+
+#define ITEM_NAME_RFSAVEINFO "$RFSaveInfo"
+
+
+
+#define ITEM_NAME_VERSION_OPT "$VersionOpt" /* Over-ride the Form flags for versioning. */
+#define VERSION_FLAG_NONE '0' /* $Version = 0, None */
+#define VERSION_FLAG_MURESP '1' /* $Version = 1, Manual - Update becomes response */
+#define VERSION_FLAG_AURESP '2' /* $Version = 2, Auto - Update becomes response */
+#define VERSION_FLAG_MUPAR '3' /* $Version = 3, Manual - Update becomes parent */
+#define VERSION_FLAG_AUPAR '4' /* $Version = 4, Auto - Update becomes parent */
+#define VERSION_FLAG_MUSIB '5' /* $Version = 5, Manual - Update becomes sibling */
+#define VERSION_FLAG_AUSIB '6' /* $Version = 6, Auto - Update becomes sibling */
+
+
+/* Document note item names */
+
+#define ITEM_NAME_TEMPLATE_USED FIELD_FORM /* form name used to create note, user-visible */
+#define ITEM_NAME_NOTEREF FIELD_LINK /* optional reference to another note */
+#define ITEM_NAME_VERREF "$VERREF" /* optional reference to master version note */
+#define ITEM_NAME_LINK "$Links" /* note link table */
+#define ITEM_NAME_REVISIONS "$Revisions" /* Revision history */
+#define ITEM_NAME_CONFLICT VIEW_CONFLICT_ITEM /* Replication update conflict */
+#define ITEM_NAME_AUTHORS "$Authors" /* text list of users allowed to modify document below editor access */
+#define ITEM_NAME_WRITERS "$Writers" /* text list of users allowed to modify document */
+#define ITEM_NAME_PROVISIONAL_WRITERS "$PWriters" /* text list of users provisionally allowed to modify document */
+#define ITEM_NAME_TEMP_PROVISIONAL_WRITERS "$PTWriters" /* text list of users provisionally allowed to temporarily modify document */
+#define ITEM_NAME_WRITERSDATE "$WritersDate" /* timedate of when any form of $[X]Writers was taken out */
+
+/* Document and form note item names, all items are optional */
+
+#define ITEM_NAME_FONTS "$Fonts" /* font table */
+#define ITEM_NAME_HEADER "$Header" /* print page header */
+#define ITEM_NAME_FOOTER "$Footer" /* print page footer */
+#define ITEM_NAME_HFFLAGS "$HFFlags" /* header/footer flags */
+ #define HFFLAGS_NOPRINTONFIRSTPAGE '1' /* suppress printing header/footer on first page */
+ #define HFFLAGS_DIRECTION_RTL 'R' /* header/footer is RTL */
+#define ITEM_NAME_WINDOWTITLE "$WindowTitle"/* window title */
+#define ITEM_NAME_ATTACHMENT "$FILE" /* file attachment, MUST STAY UPPER-CASE BECAUSE IT'S SIGNED! */
+#define ITEM_NAME_HTMLHEADTAG "$HTMLHeadTag"/* Override for HTML head tag */
+#define ITEM_NAME_HTMLBODYTAG "$HTMLBodyTag"/* Override for HTML body tag */
+#define ITEM_NAME_WEBQUERYSAVE "$WEBQuerySave" /*WebQuerySave formula */
+#define ITEM_NAME_WEBQUERYOPEN "$WEBQueryOpen" /*WebQueryOpen formula */
+#define ITEM_NAME_APPHELPFORMULA "$AppHelpFormula" /* Help doc to load */
+#define ITEM_NAME_STYLESHEETLIST "$StyleSheetList"/* Style Sheet List */
+#define ITEM_NAME_DEFAULTDECSINFO "$DefaultDECSInfo" /* default DECS info for all form fields */
+#define ITEM_NAME_EXTERNAL_FIELDS "$ExternalFields" /* # of DECS fields in form */
+#define ITEM_NAME_CLIENTEVENTINFO "$ClientEventTag"
+#define ITEM_NAME_WEBEVENTINFO "$WebEventTag"
+
+#define ITEM_NAME_WEBFLAGS "$WebFlags" /* Web related flags for form or document */
+#define WEBFLAG_NOTE_USEAPPLET_INBROWSER 'B' /* use appropriate applet when serving to browser */
+#define WEBFLAG_NOTE_IS_HTML 'H' /* treat this document or form as plain HTML, do not convert styled text to HTML */
+#define WEBFLAG_NOTE_CONTAINS_VIEW 'V' /* optimization for web server: this note contains an embedded view */
+#define WEBFLAG_NOTE_HTML_ALL_FLDS 'F' /* gen'd HTML for all fields */
+#define WEBFLAG_NOTE_CONTAINS_JSBUTTON 'J' /* Generate <FORM> tag */
+#define WEBFLAG_NOTE_ALLOW_DOC_SELECTIONS 'S'
+
+/* THESE NEXT TWO FLAGS ARE OBSOLETE - SHOULD BE REMOVED ASAP */
+#define WEBFLAG_NOTE_FILE_DEPLOYABLE 'D' /* for web apps, this file is ready for primetime */
+#define WEBFLAG_NOTE_DONTREFRESH_ON_REDEPLOY 'R' /* for web apps, this file should not be replaced on redeploy */
+#define ITEM_NAME_WEBPUBLISHING "$WebPublishing"
+#define ITEM_NAME_TEXTPROPERTIES "$TextProperties" /* Text Properties table */
+#define ITEM_NAME_DAVPROPERTIES "$DavProps" /* WebDAV dead properties */
+#define ITEM_NAME_DAVNAMESPACES "$DavNamespaces" /* WebDAV namespaces for dead properties */
+
+
+
+/* Document note Sign/Seal item names */
+
+#define ITEM_NAME_NOTE_SIGNATURE "$Signature"
+#define ITEM_NAME_NOTE_SIG_PREFIX "$Sig_" /* Prefix for multiple signatures. */
+#define ITEM_NAME_NOTE_STOREDFORM_SIG "$SIG$Form" /* stored form signature */
+#define ITEM_NAME_NOTE_STOREDSUBFORM_SIG_PREFIX "$SIG$" /* stored subform signature prefix - followed by subform name*/
+#define ITEM_NAME_NOTE_STOREDFORM_SIG_PREFIX "$SIG" /* stored form and subform signature prefix - followed by either $FORM or the subform name*/
+#define ITEM_NAME_NOTE_SEAL "$Seal"
+#define ITEM_NAME_NOTE_SEALDATA "$SealData"
+#define ITEM_NAME_NOTE_SEALNAMES "SecretEncryptionKeys"
+#define ITEM_NAME_NOTE_SEALUSERS "PublicEncryptionKeys"
+#define ITEM_NAME_NOTE_FORCESIGN "Sign"
+#define ITEM_NAME_NOTE_FORCESEAL "Encrypt"
+#define ITEM_NAME_NOTE_FORCEMAIL "MailOptions"
+#define ITEM_NAME_NOTE_FORCESAVE "SaveOptions"
+#define ITEM_NAME_NOTE_FORCESEALSAVED "EncryptSaved"
+#define ITEM_NAME_NOTE_MAILSAVE "MailSaveOptions"
+#define ITEM_NAME_NOTE_FOLDERADD "FolderOptions"
+/* also see EncryptionStatus and SignatureStatus below */
+
+/* Item name suffixes for design note items that are add to data note when "store form with document" is used. */
+
+#define STOREDFORM_ITEM_SUFFIX "_StoredForm"
+#define STOREDSUBFORM_ITEM_SUFFIX "_StoredSubform" /* A number 1 - Number of subforms will also be append... _StoredSubform1 */
+#define ITEM_NAME_STOREDFORM_CRC "$StoredFormCRC" /* A CRC on the first $Body item of a stored form in doc document. Used to detect down stream client changes. */
+
+#define ITEM_NAME_STOREDFORM_REPID "$Form_RepId_SF" /* Replica id of a form's originating database. */
+
+/*
+ * This item name (which is '$Body_StoredForm') is the "new" way of storing a form with a document. This item
+ * and all items with the _StoredForm and/or _StoredSubformX suffix supercede the the original item names
+ * in documents that have stored forms unless a downstream client... pre 5.0.6... makes a change as detected
+ * with $StoredFormCRC as mentioned above.
+ */
+#define ITEM_NAME_TEMPLATE_STOREDFORM ITEM_NAME_TEMPLATE STOREDFORM_ITEM_SUFFIX
+
+/* Group expansion item and legal values */
+
+#define ITEM_NAME_NOTE_GROUPEXP "ExpandPersonalGroups" /* For backward compatibility */
+#define ITEM_NAME_NOTE_EXPANDGROUPS "$ExpandGroups"
+#define MAIL_DONT_EXPAND_GROUPS '0'
+#define MAIL_EXPAND_LOCAL_GROUPS '1'
+#define MAIL_EXPAND_PUBLIC_GROUPS '2'
+#define MAIL_EXPAND_LOCAL_AND_PUBLIC_GROUPS '3'
+
+/* Search term highlights item name prefix. An item name is
+ concatenated to this; e.g. $Highlights_Body. */
+
+#define ITEM_NAME_HIGHLIGHTS "$Highlights_"
+
+/* Import/Export document item names */
+
+#define IMPORT_BODY_ITEM_NAME "Body"
+#define IMPORT_FORM_ITEM_NAME FIELD_FORM
+#define NEW_FORM_ITEM_NAME FIELD_FORM
+
+/* Help index note item names */
+
+#define ITEM_OBJECT "$Section"
+#define HELP_VIEW_NAME "(All)"
+#define APP_HELP_DEFAULT_VIEW_NAME "(Help)"
+
+/* Help view names */
+
+#define HELP_VIEW_TOC "Top10" /* Table of contents view */
+#define HELP_VIEW_MSG "MSG" /* Messages view */
+#define HELP_VIEW_ATFUNC "REF" /* @Functions view */
+#define HELP_VIEW_INDEX "IDX" /* Index view */
+#define HELP_VIEW_NEWS "NEWS" /* Release Notes view */
+#define HELP_VIEW_V3CMD "CLASSIC" /* V3 Menu Command Equivalents */
+
+/* Help navigator names */
+
+#define HELP_NAV_HOW "Help Topics - How"
+#define HELP_NAV_INDEX "Help Topics - Index"
+#define HELP_NAV_MSG "Help Topics - Trouble"
+#define HELP_NAV_ATFUNC "Help Topics - Tell Me"
+#define HELP_NAV_KBD "Help Topics - Tell Me"
+
+/* Notes Help Template String */
+#define HELP_TEMPLATE_STRING "NotesHelp"
+
+/* Catalog form names */
+
+#define NOTEFILE_FORM_NAME "Notefile"
+#define CONNECTION_FORM_NAME "Connection"
+
+/* Catalog view names */
+#define CATALOG_VIEW_REPLICA_ID "Databases by _Replica ID"
+#define CATALOG_VIEW_CATEGORY "Databases by _Category"
+#define CATALOG_VIEW_MULTIDBBIT "($MultiDbIndex)"
+
+/* Catalog document note item names */
+
+#define CATALOG_ITEM_SERVER "Server"
+#define CATALOG_ITEM_REMOTE_SERVER "RemoteServer"
+#define CATALOG_ITEM_PATHNAME "Pathname"
+#define CATALOG_ITEM_TITLE "Title"
+#define CATALOG_ITEM_REPLICAID "ReplicaID"
+#define CATALOG_ITEM_POLICY_DATE "PolicyDate"
+#define CATALOG_ITEM_LICENSEID "LicenseID"
+#define CATALOG_ITEM_MANAGERS "Managers"
+#define CATALOG_ITEM_BODY "Body"
+#define CATALOG_ITEM_VIEW_INDEX "View"
+#define CATALOG_ITEM_CATEGORY1 "Category1"
+#define CATALOG_ITEM_CATEGORY2 "Category2"
+#define CATALOG_ITEM_CATEGORY3 "Category3"
+#define CATALOG_ITEM_CATEGORY4 "Category4"
+#define CATALOG_ITEM_CATEGORY5 "Category5"
+#define CATALOG_ITEM_CAT MAIL_CATEGORIES_ITEM
+#define CATALOG_ITEM_FULLNAME "FullName"
+#define CATALOG_ITEM_META_TITLE "Title"
+#define CATALOG_ITEM_META_CREATOR "Creator"
+#define CATALOG_ITEM_META_DESCRIPTION "Description"
+#define CATALOG_ITEM_META_TYPE "MetaType"
+#define CATALOG_ITEM_META_IDENTIFIER "URL"
+#define CATALOG_ITEM_META_CREATION_DATE "CreationDate"
+#define CATALOG_ITEM_META_CATEGORIES "Categories"
+#define CATALOG_ITEM_ADMIN_SERVER "DbAdminServer"
+#define CATALOG_ITEM_ADMIN_SERVER_NAMES "DbAdminServerNames"
+/* for agents */
+#define CATALOG_ITEM_AGENT_AGENTNAME "AgentName"
+#define CATALOG_ITEM_AGENT_DB "AgentDb"
+#define CATALOG_ITEM_AGENT_SIGNER "AgentSigner"
+#define CATALOG_ITEM_AGENT_ONBEHALF "AgentOnBehalf"
+#define CATALOG_ITEM_AGENT_INTERVALTYPE "AgentIntervalType"
+#define CATALOG_ITEM_AGENT_INTERVAL "AgentInterval"
+#define CATALOG_ITEM_AGENT_TIME1 "AgentTimeOne"
+#define CATALOG_ITEM_AGENT_TIME2 "AgentTimeTwo"
+#define CATALOG_ITEM_AGENT_STARTTIME "AgentStartTime"
+#define CATALOG_ITEM_AGENT_ENDTIME "AgentEndTime"
+#define CATALOG_ITEM_AGENT_NOWEEKEND "AgentNoWeekend"
+#define CATALOG_ITEM_AGENT_PERSONAL "AgentPersonal"
+#define CATALOG_ITEM_AGENT_COUNT "AgentCount"
+#define CATALOG_ITEM_AGENT_FIELDCOUNT "AgentFieldCount"
+#define CATALOG_ITEM_AGENT_TRIGGERTYPE "AgentTriggerType"
+#define CATALOG_ITEM_AGENT_SEARCHTYPE "AgentSearchType"
+#define CATALOG_ITEM_AGENT_SERVER "AgentServer"
+#define CATALOG_ITEM_AGENT_LASTRUN "AgentLastRunTime"
+#define CATALOG_ITEM_AGENT_DOCPROCESSED "AgentDocsProcessed"
+#define CATALOG_ITEM_AGENT_ENABLED "AgentEnabled"
+#define CATALOG_ITEM_AGENT_ACTIVATABLE "AgentActivatable"
+#define CATALOG_ITEM_AGENT_RUNASWEB "AgentRunAsWebUser"
+#define CATALOG_ITEM_AGENT_RESTRICTED "AgentRestricted"
+#define CATALOG_ITEM_AGENT_LANGUAGE "AgentLanguage"
+
+
+
+/* Multi DB searching document forms, item names, and item values */
+
+#define MULTIDB_FORM_CONFIG "ConfigurationForm"
+#define MULTIDB_FORM_ENTRY "Database"
+#define MULTIDB_ITEM_ACL "ACL"
+#define MULTIDB_ITEM_CATEGORIES "DatabaseCategories"
+#define MULTIDB_ITEM_CONFIGLINK "ConfigLink"
+#define MULTIDB_ITEM_DOMAIN "Domain"
+#define MULTIDB_ITEM_INDEXOPTIONS "IndexOptions"
+#define MULTIDB_ITEM_PATHNAME "Pathname"
+#define MULTIDB_ITEM_REPLICAID "ReplicaID"
+#define MULTIDB_ITEM_SCOPE "Scope"
+#define MULTIDB_ITEM_SERVER "Server"
+#define MULTIDB_ITEM_TITLE "Title"
+#define MULTIDB_ITEM_VIEWCHOICE "DbViews"
+#define MULTIDB_ITEM_VIEWLIST "DatabaseViews"
+#define MULTIDB_INDEX_NONE "0"
+#define MULTIDB_INDEX_SUMMARY "1"
+#define MULTIDB_INDEX_FULLNOTE "2"
+#define MULTIDB_INDEX_ATTACHMENT "3"
+#define MULTIDB_SCOPE_DATABASE "0"
+#define MULTIDB_SCOPE_DIRECTORY "1"
+#define MULTIDB_SCOPE_SERVER "2"
+#define MULTIDB_SCOPE_DOMAIN "3"
+#define MULTIDB_VIEW_REPLICAID "$ReplicaID"
+
+/* Library document note item names */
+
+#define LIBRARY_ITEM_AUTHOR "Author"
+#define LIBRARY_ITEM_SERVER "Server"
+#define LIBRARY_ITEM_PATHNAME "Pathname"
+#define LIBRARY_ITEM_TITLE "Title"
+#define LIBRARY_ITEM_REPLICAID "ReplicaID"
+#define LIBRARY_ITEM_ABSTRACT "Abstract"
+#define LIBRARY_PATHNAME "LibraryPathName"
+#define LIBRARY_TITLE "LibraryTitle"
+#define LIBRARY_SENDTO "SendTo"
+#define LIBRARY_LIBRARIAN "Librarian"
+
+/* Library Form Names */
+#define LIBRARIAN_FORM_NAME "Librarian"
+
+/* Library View Names */
+#define LIBRARY_REPID_VIEW "($RepID)"
+#define LIBRARY_LIBRARIAN_VIEW "($Librarians)"
+
+/* Disk directory search item names and values */
+
+#define DBDIR_PATH_ITEM "$Path" /* Path name */
+#define DBDIR_TYPE_ITEM "$Type" /* Type item */
+#define DBDIR_TYPE_ITEM_DIRECTORY "$DIR" /* Directory type name */
+#define DBDIR_TYPE_ITEM_NOTEFILE "$NOTEFILE" /* Notefile type name */
+#define DBDIR_TYPE_ITEM_OLDNOTEFILE "$OLDNOTEFILE"
+#define DBDIR_INFO_ITEM "$Info" /* Info item */
+#define DBDIR_LENGTH_ITEM "$Length"
+#define DBDIR_MODIFIED_ITEM "$Modified"
+#define DBDIR_PROPERTIES_ITEM "$Properties"
+#define DBDIR_LINK_ITEM "$LinkInfo"
+#define DBDIR_DIRECTORY_LINK "$DIRLINK" /* Directory Link */
+#define DBDIR_DATABASE_LINK "$DBLINK" /* Database Link */
+#define DBDIR_DBOPTIONS_ITEM "$DBOPTIONS" /* Database Options */
+#define DBDIR_DBVERSIONS_ITEM "$DBVERSIONS" /* Database Major and Minor versions */
+#define DBDIR_DBCREATED_ITEM "$DBCREATED" /* Database Created date */
+#define DBDIR_LASTFIXUP_ITEM "$LASTFIXUP" /* Last database fixup time */
+#define DBDIR_QUOTALIMIT_ITEM "$QUOTALIMIT" /* Database quota limit */
+#define DBDIR_QUOTAWARNING_ITEM "$QUOTAWARNING" /* Database quota warning */
+#define DBDIR_MAXDBSIZE_ITEM "$MAXDBSIZE" /* Database MAximum Size - 1Gb, 2GB, 3GB, 4GB */
+#define DBDIR_PHYSICALPATH_ITEM "$PHYSICALPATH" /* Physical file path (OS level path) */
+#define DBDIR_ISLOGGED_ITEM "$ISLOGGED" /* Is the db logged? */
+#define DBDIR_LENGTH2_ITEM "$Length2" /* File Size as NSFDISKPOS */
+#define DBDIR_DBOPTIONS2_ITEM "$DBOPTIONS2" /* Database Options[1] */
+#define DBDIR_DBOPTIONS3_ITEM "$DBOPTIONS3" /* Database Options[2] */
+#define DBDIR_DBOPTIONS4_ITEM "$DBOPTIONS4" /* Database Options[3] */
+#define DBDIR_DATAMODIFIED_ITEM "$DATAMOD" /* Data Modified time */
+#define DBDIR_NONDATAMODIFIED_ITEM "$NONDATAMOD" /* Non Data Modified time */
+#define DBDIR_CURRENTUSAGE_ITEM "$CURRENTUSAGE" /* CurrentSpace Utilization */
+#define DBDIR_STORAGEPATH_ITEM "$STORAGEPATH" /* Raw file path (all links translated) */
+#define DBDIR_REPLFLAGS_ITEM "$ReplFlags" /* Replica Flags */
+#define DBDIR_DB2_DATABASE_LINK "$DB2LINK" /* DB2 Database Link */
+
+/* Form names for log database. */
+
+#define LOG_EVENT_FORM "Events"
+#define LOG_REPLICA_FORM "Replication"
+#define LOG_MAIL_FORM "Mail Routing"
+#define LOG_SESSION_FORM "Session"
+#define LOG_USAGE_FORM "Activity"
+#define LOG_SIZE_FORM "Size"
+#define LOG_PHONE_FORM "Phone Call"
+#define LOG_PHONE_IN_FORM "Phone Call - Incoming"
+#define LOG_PHONE_OUT_FORM "Phone Call - Outgoing"
+#define LOG_PT_FORM "Passthru Connection"
+#define LOG_OBJSTORE_USAGE_FORM "ObjStoreUsageForm"
+/* This is the form name used by the log package "activity logging API" */
+#define LOG_ACTIVITY_FORM "ActivityData"
+
+/* View names for log database. */
+
+#define LOG_OBJSTORE_USAGE_VIEW "ObjStoreUsageView"
+#define LOG_MAIL_ROUTING_EVENTS_VIEW "MailRoutingEvents"
+#define LOG_ACTIVITY_DATA_VIEW "($ActivityData)"
+#define LOG_ACTIVITY_SCHEMA_VIEW "($ActivitySchema)"
+
+/* Item names used by the log facility itself or commonly used
+ by different packages that call the log facility. */
+
+#define LOG_ITEM_STARTTIME "StartTime"
+#define LOG_ITEM_STARTTIME_TEXT "StartTimeText"
+#define LOG_ITEM_ENDTIME "FinishTime"
+#define LOG_ITEM_BODY "Body"
+#define LOG_ITEM_SERVER "Server"
+#define LOG_ITEM_PORT "Port"
+#define LOG_ITEM_EVENTS "Events"
+#define LOG_ITEM_EVENT_LIST "EventList"
+#define LOG_ITEM_EVENT_STATUS "EventStatus"
+#define LOG_ITEM_EVENT_TYPE "EventType"
+#define LOG_ITEM_EVENT_SEV "EventSeverity"
+#define LOG_ITEM_EVENT_TIME "EventTime"
+#define LOG_ITEM_EVENT_TIME_SIZE "EventTimeSize"
+#define LOG_ITEM_EVENT_ADDERR "EventAdditionalErrorCode"
+#define LOG_ITEM_EVENT_ADDERR_TYPE "EventAdditionalErrorType"
+#define LOG_ITEM_EVENT_ADDERR_SEV "EventAdditionalErrorSeverity"
+#define LOG_ITEM_EVENT_ADDIN "EventAddinName"
+#define LOG_ITEM_EVENT_PARAMETERS "EventParameters"
+#define LOG_ITEM_PATHNAME "Pathname"
+#define LOG_ITEM_TITLE "Title"
+#define LOG_ITEM_CAT MAIL_CATEGORIES_ITEM
+#define LOG_ITEM_BYTESIN "BytesIn"
+#define LOG_ITEM_BYTESOUT "BytesOut"
+
+/* Item names for replicator notes in log file. */
+
+#define REPLICA_ITEM_SOURCE_SERVER "SourceServer"
+#define REPLICA_ITEM_INITIATED_BY "InitiatedBy"
+
+/* Item names for session notes in log file. */
+
+#define SESSION_ITEM_USERNAME "UserName"
+#define SESSION_ITEM_READS "Reads"
+#define SESSION_ITEM_WRITES "Writes"
+#define SESSION_ITEM_SENT_FROM "SentFromServer"
+#define SESSION_ITEM_SENT_TO "SentToServer"
+#define SESSION_ITEM_UNCOMPSENT_FROM "SentFromServerUncompressed"
+#define SESSION_ITEM_UNCOMP_SENT_TO "SentToServerUncompressed"
+#define SESSION_ITEM_COMPSENT_FROM "SentFromServerCompressed"
+#define SESSION_ITEM_COMP_SENT_TO "SentToServerCompressed"
+
+#define SESSION_ITEM_TRANSACTIONS "Transactions"
+
+/* Item names for escrow log */
+
+#define ESCROW_SENDTO "Escrow Agent"
+
+#define ESCROW_USER "User"
+#define ESCROW_SERVER "Server"
+#define ESCROW_CERTIFIER "Certifier"
+
+#define ESCROW_LOCATION_ITEM "Location"
+#define ESCROW_COMMENT_ITEM "Comment"
+
+/* Item names for database activity note in log file */
+
+#define ACTIVITY_ITEM_MANAGERS "Managers"
+#define ACTIVITY_ITEM_VIEWTITLES "ViewTitles" /* Obsolete in R6 */
+#define ACTIVITY_ITEM_VIEWSIZES "ViewSizes" /* Obsolete in R6 */
+#define ACTIVITY_ITEM_ALLVIEWINFO "AllViewInfo" /* New in R6 */
+#define ACTIVITY_ITEM_DISKSPACE "DiskSpace"
+#define ACTIVITY_ITEM_DISKUSAGE "DiskUsage"
+#define ACTIVITY_ITEM_PERIOD "Period"
+#define ACTIVITY_ITEM_PERIOD_USES "PeriodUses"
+#define ACTIVITY_ITEM_PERIOD_READS "PeriodReads"
+#define ACTIVITY_ITEM_PERIOD_WRITES "PeriodWrites"
+#define ACTIVITY_ITEM_DAY_USES "DayUses"
+#define ACTIVITY_ITEM_DAY_READS "DayReads"
+#define ACTIVITY_ITEM_DAY_WRITES "DayWrites"
+#define ACTIVITY_ITEM_WEEK_USES "WeekUses"
+#define ACTIVITY_ITEM_WEEK_READS "WeekReads"
+#define ACTIVITY_ITEM_WEEK_WRITES "WeekWrites"
+#define ACTIVITY_ITEM_MONTH_USES "MonthUses"
+#define ACTIVITY_ITEM_MONTH_READS "MonthReads"
+#define ACTIVITY_ITEM_MONTH_WRITES "MonthWrites"
+
+/* Items associated with server activity in the log */
+
+#define SRVACT_ITEM_ACTIVITY_NAME "ActivityName"
+#define SRVACT_ITEM_ACTIVITY_FIELDS "ActivityFields"
+#define SRVACT_ITEM_ACTIVITY_TYPES "ActivityTypes"
+#define SRVACT_ITEM_ACTIVITY_SCHEMA "ActivitySchema"
+
+
+/* Item names for unet notes in log file. */
+#define UNIXNET_ITEM_BODY "UnixBody"
+
+#if 0
+
+/* Address Book - "X400Server" form item names */
+
+#define MAIL_X400_SERVER_FORM "Server" /* Form and type name */
+#define MAIL_X400_SERVERNAME_ITEM "ServerName" /* X400 MTA name */
+#define MAIL_X400_GLOBAL_DOMAIN_ITEM "GlobalDomain" /* Global domain identifier */
+#define MAIL_X400_COUNTRY_ITEM "Country" /* Country name */
+#define MAIL_X400_ADMD_ITEM "ADMD" /* Administration Management Domain name*/
+#define MAIL_X400_PRMD_ITEM "Domain" /* Private Domain name */
+#define MAIL_X400_CREDENTIALS_ITEM "Credentials" /* MTA credentials */
+#define MAIL_X400_SUPP_APP_CONTEXTS_ITEM "SupportedApplicationsContext" /* Supported app. contexts */
+#define MAIL_X400_DEL_CONTENT_LENGTH_ITEM "DeliveryContentLength" /* Delivery content length */
+#define MAIL_X400_DEL_CONTENT_TYPE_ITEM "DeliveryContentTypes" /* Delivery content types */
+#define MAIL_X400_PSEL_ITEM "PSEL" /* Presentation selector */
+#define MAIL_X400_SSEL_ITEM "SSEL" /* Session selector */
+#define MAIL_X400_TSEL_ITEM "TSEL" /* Transport selector */
+#define MAIL_X400_NADDRESSES_ITEM "NAddresses" /* Network addresses */
+
+#endif
+
+
+
+/* Public Queue Names */
+
+#define TASK_QUEUE_PREFIX "MQ$" /* Prepended to "addin" task */
+ /* name to form task's queue name */
+
+#define SERVER_QUEUE_NAME "_SERVER" /* DB Server */
+#define REPL_QUEUE_NAME TASK_QUEUE_PREFIX"REPLICATOR" /* Replicator */
+#define ROUTER_QUEUE_NAME TASK_QUEUE_PREFIX"ROUTER" /* Mail Router */
+#define UPDATE_QUEUE_NAME TASK_QUEUE_PREFIX"INDEXER" /* Index views & full text process */
+#define LOGIN_QUEUE_NAME TASK_QUEUE_PREFIX"LOGIN" /* Login Process */
+#define EVENT_QUEUE_NAME TASK_QUEUE_PREFIX"EVENT" /* Event process */
+#define REPORT_QUEUE_NAME TASK_QUEUE_PREFIX"REPORTER" /* Report process */
+#define CLREPL_QUEUE_NAME TASK_QUEUE_PREFIX"CLREPL" /* Cluster Replicator */
+#define FIXUP_QUEUE_NAME TASK_QUEUE_PREFIX"FIXUP" /* Fixup */
+#define COLLECT_QUEUE_NAME TASK_QUEUE_PREFIX"COLLECTOR" /* Collector*/
+#define NOI_QUEUE_NAME TASK_QUEUE_PREFIX"DIIOP" /* NOI Process */
+#define ALARM_QUEUE_NAME TASK_QUEUE_PREFIX"ALARMS" /* Alarms Cache daemon */
+#define MONITOR_QUEUE_NAME TASK_QUEUE_PREFIX"MONITOR" /* Monitor */
+#define MONALARM_QUEUE_NAME TASK_QUEUE_PREFIX"MONITORALARM" /* Monitor */
+#define APDAEMON_REQ_QUEUE TASK_QUEUE_PREFIX"APDAEMONREQ" /* Admin Panel Daemon (Request Queue) */
+#define APDAEMON_FILERES_QUEUE TASK_QUEUE_PREFIX"APDAEMONFILERESPONSE" /* Admin Panel Daemon (File Response Queue) */
+#define APDAEMON_FILEREQ_QUEUE TASK_QUEUE_PREFIX"APDAEMONFILEREQUEST" /* Admin Panel Daemon (Server Response Queue) */
+#define BKTASKS_QUEUE_NAME TASK_QUEUE_PREFIX"BKTASKS" /* bktasks */
+#define RZINTER_QUEUE_NAME TASK_QUEUE_PREFIX"RZINTER" /* Red Zone Interface to Collector */
+#define RZEXTRA_QUEUE_NAME TASK_QUEUE_PREFIX"RZEXTRA" /* Red Zone Extra MQ */
+#define RZBG_QUEUE_NAME TASK_QUEUE_PREFIX"RZBG" /* Red Zone Background MQ */
+#define RZBGEXTRA_QUEUE_NAME TASK_QUEUE_PREFIX"RZBGEXTRA" /* Red Zone Background Extra MQ */
+#define REALTIME_STATS_QUEUE_NAME TASK_QUEUE_PREFIX"REALTIME" /* Monitor */
+#define RUNJAVA_QUEUE_NAME TASK_QUEUE_PREFIX"RUNJAVA" /* Runjava (used by ISpy) */
+#define STATS_QUEUE_NAME TASK_QUEUE_PREFIX"STATS" /* Runjava (used by ISpy) */
+#define LOG_SEARCH_QUEUE_NAME TASK_QUEUE_PREFIX"LOGSEARCH" /* Runjava (used by ISpy) */
+#define DAEMON_EVENT_QUEUE_NAME TASK_QUEUE_PREFIX"DAEMONEVENT" /* Event process */
+#define DAEMON_COLLECT_QUEUE_NAME TASK_QUEUE_PREFIX"DAEMONCOLLECTOR" /* Collector*/
+#define DIRCAT_QUEUE_NAME TASK_QUEUE_PREFIX"DIRCAT" /* Dircat */
+#define RMEVAL_QUEUE_NAME TASK_QUEUE_PREFIX"RMEVAL" /* RMEval */
+#define SCRREPL_QUEUE_NAME TASK_QUEUE_PREFIX"SCR" /* Streaming Cluster Replicator */
+
+
+
+/* Names for server access lists and other stuff from NOTES.INI */
+
+#define SERVER_TITLE_NAME "SERVER_TITLE"
+#define ALLOW_ACCESS_NAME "ALLOW_ACCESS"
+#define DENY_ACCESS_NAME "DENY_ACCESS"
+#define CREATE_FILE_ACCESS_NAME "CREATE_FILE_ACCESS"
+#define CREATE_REPLICA_ACCESS_NAME "CREATE_REPLICA_ACCESS"
+#define ADMIN_ACCESS_NAME "ADMIN_ACCESS"
+#define ALLOW_PASSTHRU_TARGET_NAME "ALLOW_PASSTHRU_TARGETS"
+#define ALLOW_PASSTHRU_CLIENT_NAME "ALLOW_PASSTHRU_CLIENTS"
+#define ALLOW_PASSTHRU_CALLER_NAME "ALLOW_PASSTHRU_CALLERS"
+#define ALLOW_PASSTHRU_ACCESS_NAME "ALLOW_PASSTHRU_ACCESS"
+#define ALLOW_RESTRICTED_LOTUSCRIPT_NAME "ALLOW_RESTRICTED_LOTUSSCRIPT"
+#define ALLOW_UNRESTRICTED_LOTUSCRIPT_NAME "ALLOW_UNRESTRICTED_LOTUSSCRIPT"
+#define ALLOW_MONITORS_NAME "ALLOW_MONITORS"
+#define DENY_MONITORS_NAME "DENY_MONITORS"
+
+/* Field Names for server access lists and other stuff from NAMES.NSF */
+
+#define ALLOW_ACCESS_ITEM "AllowAccess"
+#define DENY_ACCESS_ITEM "DenyAccess"
+#define CREATE_FILE_ACCESS_ITEM "CreateAccess"
+#define CREATE_REPLICA_ACCESS_ITEM "ReplicaAccess"
+#define CREATE_TEMPLATE_ACCESS_ITEM "TemplateAccess"
+#define ADMIN_ACCESS_ITEM "Administrator"
+#define ALLOW_PASSTHRU_TARGET_ITEM "PTTargets"
+#define ALLOW_PASSTHRU_CLIENT_ITEM "PTClients"
+#define ALLOW_PASSTHRU_CALLER_ITEM "PTCallers"
+#define ALLOW_PASSTHRU_ACCESS_ITEM "PTAccess"
+#define ALLOW_RESTRICTED_LOTUSCRIPT_ITEM "RestrictedList"
+#define ALLOW_UNRESTRICTED_LOTUSCRIPT_ITEM "UnrestrictedList"
+#define ALLOW_ON_BEHALF_ITEM "OnBehalfOfLst"
+#define ALLOW_ON_BEHALF_INVOKER_ITEM "OnBehalfOfInvokerLst"
+#define ALLOW_PERSONAL_ITEM "PrivateList"
+#define ALLOW_LIBRARIES_ITEM "LibsLst"
+#define ALLOW_REMOTE_HNAMES_ITEM "TrustedSrvrs"
+#define ALLOW_MONITORS_ITEM "AllowMonitors"
+#define DENY_MONITORS_ITEM "DenyMonitors"
+#define FULL_ADMIN_ACCESS_ITEM "FullAdmin"
+#define DB_ADMIN_ACCESS_ITEM "DBAdmin"
+#define REMOTE_ADMIN_ACCESS_ITEM "RemoteAdmin"
+#define VO_ADMIN_ACCESS_ITEM "VOAdmin"
+#define WEB_ADMIN_ACCESS_ITEM "BrowserAdminAccess"
+#define NNTP_ADMIN_ACCESS_ITEM "NNTP_Admin"
+#define SYS_ADMIN_ACCESS_ITEM "SysAdmin"
+#define SYS_ADMIN_RES_ACCESS_ITEM "ResSysAdmin"
+#define SYS_ADMIN_RES_COMMANDS_ITEM "ResSystemCmds"
+
+/* Names for folder pane. */
+
+#define CATEGORIES_AS_FOLDERS "CategoriesAsFolders"
+
+/* Location information */
+
+#define LOCATION_DEFAULT "Location"
+#define LOCATION_TYPE "LocationType"
+#define LOCATION_TRAVELPROMPT "TravelPrompt"
+#define LOCATION_FORMTYPE "Location"
+#define LOCATION_REPLICATIONFORM "$ReplicationSubform"
+#define LOCATION_VIEW "($Locations)"
+#define LOCATION_NAME "Name"
+#define LOCATION_SOURCE "Source"
+#define LOCATION_USERID "UserID"
+#define LOCATION_TIMEZONE "TimeZone"
+#define LOCATION_R5TIMEZONE "R5TimeZone"
+#define LOCATION_USEOSTZ "UseOSTZ"
+#define LOCATION_DST "DST"
+#define LOCATION_DOMAIN "Domain"
+#define LOCATION_MAILSERVER "MailServer"
+#define LOCATION_DIRSERVER "DirectoryServer"
+#define LOCATION_MAILFILE "MailFile"
+#define LOCATION_MAILFILE_LASTSEQ "$MailFileSeq"
+#define LOCATION_DEFPASSTHRU "DefaultPassthruServer"
+#define LOCATION_OUTSIDELINE "OutsideLine"
+#define LOCATION_CARDPREFIX "CallPre" /* Number to dial to get carriers dial tone (10ATT or 1800...) */
+#define LOCATION_CARDSUFFIX "Suffix" /* Number to identify user;s account (i.e. User's Home Phone + PIN) */
+#define LOCATION_INTERNATIONALPREFIX "InternationalPrefix"
+#define LOCATION_LONGDISTANCEPREFIX "LongDistancePrefix"
+#define LOCATION_COUNTRY "Country"
+#define LOCATION_AREACODE "AreaCode"
+#define LOCATION_MAILTYPE "MailType"
+#define LOCATION_MAILTHRESHOLD "MailThreshold"
+#define LOCATION_TCPNAMESERVER "TcpNameServer"
+#define LOCATION_TCPNAMESERVERHOST "TcpNameServerHost"
+
+#define LOCATION_REPLICATION_ENABLED "ReplicationEnabled"
+#define LOCATION_REPLICATE_IMMEDIATE "ReplicateImmediate"
+#define LOCATION_REPLICATE_AT_START "ReplicateAtStart"
+#define LOCATION_PROMPT_AT_START "PromptAtStart"
+#define LOCATION_REPLICATE_AT_END "ReplicateAtEnd"
+#define LOCATION_PROMPT_AT_END "PrmptAtEnd"
+#define LOCATION_OUTBOX_AT_END "ReplicateOutboxAtEnd"
+#define LOCATION_TOBESENT_AT_END "ReplicateToBeSentAtEnd"
+
+#define LOCATION_USESPRIORITYSCHEDULE "HiPriorityReplication"
+
+#define LOCATION_SCHEDULE "Enabled"
+#define LOCATION_PRIORITYSCHEDULE "Enabled_HI"
+#define LOCATION_SCHEDULE_DURATION "Schedule"
+#define LOCATION_SCHEDULE_DURATION_HI "Schedule_HI"
+#define LOCATION_INTERVAL "Interval"
+#define LOCATION_INTERVAL_HI "Interval_HI"
+#define LOCATION_WEEKDAYS_LIST "WeekDays"
+#define LOCATION_WEEKDAYS_LIST_HI "WeekDays_HI"
+
+#define LOCATION_NDSNAMESERVER "NDSNameServer"
+#define LOCATION_NDSNAMESERVERADDRESS "NDSNameServerAddress"
+#define LOCATION_NETBIOSNAMESERVER "NetBIOSNameServer"
+#define LOCATION_SOCKSPROXY "Proxy_SOCKs"
+#define LOCATION_SSLPROXY "Proxy_SSL"
+#define LOCATION_NOTESHTTPPROXY "Proxy_NotesHttp"
+#define LOCATION_PROXYUSERID "Proxy_LoginName"
+#define LOCATION_PROXYPASSWORD "Proxy_Password"
+#define LOCATION_PROXYAUTH_ENABLED "ProxyAuthenticationFlag"
+
+#define LOCATION_IMAGES "Images"
+#define LOCATION_USERNAME_FLAG "UserNameFlag" /* Primary/Alternate UserName Mode. 0 = Primary, 1 = Alternate */
+
+/* The following field is only meaningful if the user has workstation based
+ mail, if they do not, then it is assumed that server addressing (i.e.
+ resolution of the names, and allowing the use of server N&A books when
+ addressing mail, is always available). If the user is using a local
+ mail file, but has network connectivity, then they may want to allow
+ the use of server addressing. If the user has no connectivity, then'
+ this should be assumed to be off - regardless of its setting. DWC */
+
+#define LOCATION_SERVERADDRESSING "MailAddressing"
+
+ /* InterNotes/Web Location Items */
+
+#define LOCATION_INTERNOTES "InterNotes"
+#define LOCATION_WEBLOCALDB "WebDbName"
+#define LOCATION_WEBSERVERDB "WebDbName"
+#define LOCATION_WEBRETRIEVERLOCATION "WebLocation"
+#define LOCATION_WEBUPDATECACHE "WebUpdateCache"
+#define LOCATION_WEBRETRIEVERLOGGING "WebLogLevel"
+#define LOCATION_WEBRETRIEVER "WebRetriever"
+#define LOCATION_WEBRETRIEVERS "WebRetrievers"
+#define LOCATION_WEBRETRIEVERPATH "WebRetrieverPath"
+#define LOCATION_WEBHTTPPROXY "Proxy_HTTP"
+#define LOCATION_WEBFTPPROXY "Proxy_FTP"
+#define LOCATION_WEBGOPHERPROXY "Proxy_Gopher"
+#define LOCATION_WEBNOPROXY "No_Proxy"
+#define LOCATION_PROXYFLAG "ProxyFlag"
+
+#define LOCATION_SSLSITECERT "SSLSiteCerts"
+#define LOCATION_SSLEXPIREDCERTS "SSLExpiredCerts"
+#define LOCATION_SSLPROTOCOLVER "SSLProtocolVersion"
+#define LOCATION_SSLSENDCERTS "SSLSendCertificates"
+
+ /* Java Location Items */
+
+#define LOCATION_JAVASECUREDOMAINLIST "JavaSecureDomain"
+#define LOCATION_JAVAALLOWINSECURE "JavaAllowInSecureDomain"
+#define LOCATION_JAVAALLOWINOTHER "JavaAllowInOtherDomains"
+#define LOCATION_JAVATRUSTPROXY "JavaTrustHTTPProxy"
+
+ /* Internet Mail Location Items */
+
+#define LOCATION_IMAIL_PROTOCOL "MailServerProtocol"
+#define LOCATION_IMAIL_USER "ImailUsername"
+#define LOCATION_IMAIL_PASSWORD "ImailPassword"
+#define LOCATION_IMAIL_SERVERLIST "ImailServer"
+#define LOCATION_IMAIL_SMTP_SERVER "ImailSMTPServer"
+#define LOCATION_IMAIL_PORT "ImailPort"
+#define LOCATION_IMAIL_USE_SSL "ImailUseSSL"
+#define LOCATION_IMAIL_ADDRESS "ImailAddress"
+#define LOCATION_IMAIL_ADDRESS_UPDATED_BY "ImailAddressUpdatedBy"
+#define LOCATION_IMAIL_POP_DEL_MAIL "PopDeleteMail"
+#define LOCATION_IMAIL_SMTP_ROUTE "SMTPRoute"
+#define LOCATION_IMAIL_INTERNET_DOMAIN "InternetDomain"
+#define LOCATION_IMAIL_ATTACH_ENCODE "SMTPEncodingScheme"
+#define LOCATION_IMAIL_MAC_ATTACH_ENCODE "SMTPMacAttachConvertOption"
+#define LOCATION_IMAIL_MSGFORMAT "MessageFormat"
+ /* If this field is set, this location's internet mail can be changed for existing users
+ with information from the directory person record on the home server */
+#define LOCATION_IMAIL_ACCEPTUPDATES "ImailAcceptUpdates"
+
+
+ /* Admin Client Location Items */
+
+#define LOCATION_ADMIN_MONITOR_REMENABLE "EnableRemoteMonitor"
+#define LOCATION_ADMIN_MONITOR_REMSERVER "RemoteMonitorServer"
+#define LOCATION_ADMIN_MONITOR_COLLINTER "DataCollectionInterval"
+#define LOCATION_ADMIN_MONITOR_AUTOACTIVATE "AutoActivateMonitor"
+#define LOCATION_ADMIN_FAVORITE_SERVERS "AdminFavoriteServers"
+#define LOCATION_ADMIN_STAT_GEN_REPORTS "GenerateStatReports"
+#define LOCATION_ADMIN_STAT_REP_INTERVAL "ReportInterval"
+#define LOCATION_ADMIN_STAT_GEN_ALARMS "GenerateStatAlarms"
+#define LOCATION_ADMIN_STAT_ALARM_INTERVAL "AlarmInterval"
+#define LOCATION_ADMIN_CHART_SAMEAS_MON "ChartIntervalIsSameAsMonitor"
+#define LOCATION_ADMIN_CHART_INTERVAL "ChartInterval"
+
+
+/* Personal database names... */
+#define LOCATION_BOOKMARK_DB "BookmarkDb"
+#define LOCATION_SUBSCRIPTION_DB "HeadlineDb"
+
+
+/* Prior to build 125, in the location record, the ports that were listed
+ were those that were enabled. Beginning in build 125, the ports that
+ are listed (internally by a different item) are those that are disabled.
+ The location form will however present the enabled ports by selecting the
+ ports which are not specifed in the disabled item. When saved, it is
+ inverted back to mean the ports that are disabled. In this manner,
+ newly added ports will be enabled for all locations (by default). */
+
+#define LOCATION_AUTONETCONFIG "AutoNetConfig"
+#define LOCATION_PORTS "PortName" /* Prior to 125 */
+#define LOCATION_DISABLEDPORTS "DisabledPorts" /* 125 and later */
+#define LOCATION_NAMELOOKUPMODE "NameLookupMode"
+#define LOCATION_NAMELOOKUPPREF "NameLookupPref"
+#define LOCATION_EXHAUSTIVENAMELOOKUP "ExhaustiveNameLookup"
+#define LOCATION_MAIL_ADDR_FILE "MailAddressFile" /* Last N&A Book used at this location */
+#define LOCATION_VERSION "$LocationVersion"
+#define LOCATION_BCASELIST "$BCaseList"
+#define LOCATION_DIALING_SERVERS "$DialingServers"
+#define LOCATION_DIALING_RULES "$DialingRules"
+#define LOCATION_STACKFILENAMES "$StackFileNames" /* Filename of topmost
+ replica icon at this
+ location for this
+ 'stack', */
+/* The V5 list is a parallel list of a database and the last replica. It
+ is independent of the V4 list to avoid differnces that may be necessary
+ between the 2 lists. */
+
+#define LOCATION_LASTFILENAMES "$LastFileNames" /* Filename of topmost
+ replica icon at this
+ location for this
+ 'stack', */
+#define LOCATION_LASTREPLICAIDS "$LastReplicaIDs" /* Replica ID of topmost
+ replica icon at this
+ location for this
+ 'stack', */
+#define LOCATION_LASTACCESSED "$LastAccessedDB" /* Time/Date of last use
+ of this DB. */
+
+#define LOCATION_SAVED_SERVER "$SavedServers" /* Server name */
+#define LOCATION_SAVED_PORT "$SavedPorts" /* Port server reached on */
+#define LOCATION_SAVED_ADDRESS "$SavedAddresses" /* Server address on this port */
+#define LOCATION_SAVED_DATE "$SavedDate" /* Julian Date */
+#define LOCATION_SAVED_LAST_TRIED_DATE "$SavedTriedDate" /* Julian Date */
+#define LOCATION_RLAN_IDLE_TIMEOUT "RLANIdleTimeout" /* timeout for RLAN hangup */
+
+/* The following field was introduced in build 133 so that new icons added
+ to the desktop get bubbled to the top of the stack if appropriate. New
+ icons should be at the top of the stack if:
+
+ the DB icon is mew, is for a server DB, the location has a LAN port and
+ the current top of the stack is a local database.
+ the DB icon is mew, is for a local DB, the location has no LAN port and
+ the current top of the stack is a server database.
+*/
+#define LOCATION_STACKCHECKED "$StackChecked"
+
+/* If this field is set, this location can be changed for existing users
+ with information from the person record and setup profile records for this
+ user on their home server */
+
+#define LOCATION_ACCEPTUPDATES "AcceptUpdates"
+
+/* Sametime server */
+
+#define LOCATION_SAMETIMESERVER "SametimeServer"
+
+#define LOCATION_SAMETIME_PORT "SametimePort"
+#define LOCATION_SAMETIME_PROTOCOL "SametimeProtocol"
+#define LOCATION_SAMETIME_PROXY_TYPE "SametimeProxyType"
+#define LOCATION_SAMETIME_PROXY_SERVER "SametimeProxyServer"
+#define LOCATION_SAMETIME_PROXY_PORT "SametimeProxyPort"
+#define LOCATION_SAMETIME_PROXY_RESOLVE "SametimeServerNameResolve"
+#define LOCATION_SAMETIME_PROXY_USERNAME "SametimeProxyUsername"
+#define LOCATION_SAMETIME_PROXY_PASSWORD "SametimeProxyPassword"
+#define LOCATION_SAMETIME_LOGON_WHEN "SametimeLogonWhen"
+#define LOCATION_SAMETIME_PASSWORD "SametimePassword"
+#define LOCATION_SAMETIME_USERNAME "SametimeUsername"
+
+/* Cached mail file replica ID information. This information can only
+ be used if the last mailfile name agrees with the present one. That
+ would mean that the user has not changed the file name and or server
+ name since the time we squirreled the information away. */
+
+#define LOCATION_LAST_MAILFILE_NAME "$LastMailPath"
+#define LOCATION_LAST_MAILFILE_REPID "$LastMailRepID"
+
+
+
+/* Catalog server - used for Domain Search */
+
+#define CATALOG_FILE_V5 "catalog.nsf"
+#define LOCATION_CATALOGSERVER "CatalogServer"
+#define DOMAINQUERY_FORM_NAME "DomainQuery"
+#define LOCAL_DOMAIN_CATALOG_SERVERS "LocalDomainCatalogServers"
+#define DOMAIN_INDEXER_SCOPE "CatalogIndexerScope"
+#define DOMAIN_CATALOG_FIELD "CatalogType"
+#define DOMAIN_INDEXER_DIRECTORY "CatalogIndexerDirectory"
+#define DOMAIN_CATALOG_NAME "Domain Catalog"
+#define DOMAIN_CATALOG_SCOPE "CatalogDomainScope"
+#define CATALOG_SERVERLOOKUPITEMCOUNT 2
+#define CATALOG_SERVERLOOKUPITEMS "CatalogType\0Administrator\0"
+
+#define BOOKMARK_DBNAME "bookmark.nsf"
+#define BOOKMARK_TEMPLATENAME "bookmark.ntf"
+#define BOOKMARK_FINDDB_FORMNAME "DatabaseSearch"
+
+/* some bookmark views */
+#define BOOKMARK_LAYOUTS_VIEW "(Layouts)"
+#define BOOKMARK_URLS_VIEW "(URLs)"
+#define BOOKMARK_DOWNLOADS_VIEW "(Downloads)"
+
+/* This is a field on URL bookmark notes to give revision info */
+#define BOOKMARK_URL_MODIFIED "LotusModified"
+#define BOOKMARK_URL_502 "5.02"
+
+/* Fields used to store the list of folders into which a document is to be
+ saved. Note that @Command([ChooseFolders]) reads and writes these fields,
+ so you do not normally need to manipulate them in a document.
+
+ Note also that to a user, there are only two sets of folders: Shared and
+ Private, with the distinction that some Private folders are stored in the
+ databse, and some on the workstation in the desktop file (when the user
+ cannot store them in the database due to access restrictions). */
+
+#define FOLDERS_SHARED "$Folders" /* List of shared folders. */
+#define FOLDERS_PRIVATE "$PrivateFolders" /* List of private folders (in database). */
+#define FOLDERS_PRIVATE_LOCAL "$LocalPrivateFolders" /* List of private folders (in desktop). */
+
+/* Item names of fields in Mail template: */
+
+#define MAILREPORT_ITEM "$DeliveryReport" /* TBD */
+
+/* Item Name of view format note item */
+
+#define ITEM_NAME_VIEW_FORMATNOTE "$FormatNote" /* UNID of note views design was originally copied from */
+
+/* Profile note & field name items on view format note. The profile field
+ contains a user-definable formula for a column */
+
+#define VIEW_COLUMN_PROFILE_DOC "$ColumnProfileDoc"
+#define VIEW_COLUMN_FORMAT_ITEM "$ColumnFormatItem"
+
+/* Standard folder names. */
+
+#define FOLDER_INBOX "($Inbox)"
+#define FOLDER_DRAFTS "($Drafts)"
+#define FOLDER_SENT "($Sent)"
+#define FOLDER_ALL "($All)"
+#define FOLDER_CALENDAR "($Calendar)"
+#define FOLDER_TODO "($ToDo)"
+#define FOLDER_MEETINGS "($Meetings)"
+#define FOLDER_TRASH "($Trash)"
+#define FOLDER_PROFILE "($Profiles)"
+#define FOLDER_ALARMS "($Alarms)"
+#define FOLDER_SOFT_DELETE "($SoftDeletions)"
+#define FOLDER_CONTACTS "($Contacts)"
+#define FOLDER_RULES "(Rules)"
+#define FOLDER_GROUP_CALENDARS "(Group Calendars)"
+#define FOLDER_STATIONERY "(Stationery)"
+#define FOLDER_FOLLOW_UP "($FollowUp)"
+#define FOLDER_MEETINGS_BY_CATEGORY "($Meetings By Category)"
+#define FOLDER_MEETINGS_BY_MONTH "($Meetings By Month)"
+#define FOLDER_MEETINGS_ALL_BY_DATE "($Meetings All By Date)"
+#define FOLDER_MEETINGS_BY_ENTRY_TYPE "($Meetings By Entry Type)"
+#define FOLDER_MEETINGS_BY_STATUS "($Meetings By Status)"
+#define FOLDER_MEETINGS_ALL_BY_DATE2 "($MeetingsAllByDate2)"
+#define FOLDER_MEETINGS_ON_MY_CALENDAR "($MeetingsOnMyCalendar)"
+#define FOLDER_MINIVIEW_NOTICES "Miniview - Notices2"
+#define FOLDER_JUNKMAIL "($JunkMail)"
+#define VIEW_FOLLOW_UP "($Follow-Up)"
+
+#define COMMON_SCRIPT_LIBRARY_NAME "Common"
+
+#define FOLDER_INBOX_NAME "$Inbox"
+#define FOLDER_DRAFTS_NAME "$Drafts"
+#define FOLDER_SENT_NAME "$Sent"
+#define FOLDER_ALL_MAIL "$All"
+#define FOLDER_CALENDAR_NAME "$Calendar"
+#define FOLDER_TODO_NAME "$ToDo"
+#define FOLDER_MEETINGS_NAME "$Meetings"
+#define FOLDER_TRASH_NAME "$Trash"
+#define FOLDER_PROFILE_NAME "$Profiles"
+#define FOLDER_ALARMS_NAME "$Alarms"
+#define FOLDER_SOFT_DELETE_NAME "$SoftDeletions"
+#define FOLDER_CONTACTS_NAME "$Contacts"
+#define FOLDER_RULES_NAME "Rules"
+#define FOLDER_GROUP_CALENDARS_NAME "Group Calendars"
+#define FOLDER_STATIONERY_NAME "Stationery"
+#define FOLDER_FOLLOW_UP_NAME "$FollowUp"
+#define FOLDER_MEETINGS_BY_CATEGORY_NAME "$Meetings by Category"
+#define FOLDER_MEETINGS_BY_MONTH_NAME "$Meetings By Month"
+#define FOLDER_MEETINGS_ALL_BY_DATE_NAME "$Meetings All By Date"
+#define FOLDER_MEETINGS_BY_ENTRY_TYPE_NAME "$Meetings By Entry Type"
+#define FOLDER_MEETINGS_BY_STATUS_NAME "$Meetings By Status"
+#define FOLDER_MEETINGS_ALL_BY_DATE2_NAME "$MeetingsAllByDate2"
+#define FOLDER_MEETINGS_ON_MY_CALENDAR_NAME "$MeetingsOnMyCalendar"
+#define FOLDER_JUNKMAIL_NAME "$JunkMail"
+#define VIEW_FOLLOW_UP_NAME "$Follow-Up"
+#define VIEW_IMTRANSCRIPTS_NAME "$IMTranscripts"
+#define VIEW_MAILTHREADS_NAME "Mail Threads"
+
+#define FOLDER_INBOX_ALIAS "Inbox"
+#define FOLDER_DRAFTS_ALIAS "Drafts"
+#define FOLDER_SENT_ALIAS "Sent"
+#define FOLDER_ALL_MAIL_ALIAS "All"
+#define FOLDER_CALENDAR_ALIAS "Calendar"
+#define FOLDER_TODO_ALIAS "Tasks"
+#define FOLDER_MEETINGS_ALIAS "Meetings"
+#define FOLDER_TRASH_ALIAS "Trash"
+#define FOLDER_JUNKMAIL_ALIAS "JunkMail"
+#define FOLDER_PROFILE_ALIAS "Profiles"
+#define FOLDER_ALARMS_ALIAS "Alarms"
+#define FOLDER_SOFT_DELETE_ALIAS "SoftDeletions"
+#define FOLDER_CONTACTS_ALIAS "People"
+#define FOLDER_RULES_ALIAS "Rules"
+#define FOLDER_GROUP_CALENDARS_ALIAS "(GroupCalendarFolder)"
+#define FOLDER_STATIONERY_ALIAS "Stationery"
+#define FOLDER_MEETINGS_BY_CATEGORY_ALIAS "Meetings by Category"
+#define FOLDER_MEETINGS_BY_MONTH_ALIAS "Meetings by Month"
+#define FOLDER_MEETINGS_ALL_BY_DATE_ALIAS "MeetingsAllByDate"
+#define FOLDER_MEETINGS_BY_ENTRY_TYPE_ALIAS "MeetingsByEntryType"
+#define FOLDER_MEETINGS_BY_STATUS_ALIAS "MeetingsByStatus"
+
+/* Site database view name */
+
+#define SITE_DBLOOKUP_VIEW "($DbLookup)"
+
+/* Router Shared Mail Object Store names */
+
+#define SHARED_MAIL_NAME "SHARED_MAIL" /* config variable for shared mail */
+#define ROUTER_OBJECT_STORE_NAME "mailobj.nsf" /* object store link file used by the router */
+#define ROUTER_OBJECT_STORE_DBNAME "mailobj1.nsf" /* object store database created by the router */
+
+
+
+/* Cluster Name and Address Book lookup definitions */
+
+#define CLUSTERS_CLUSTER_VIEW_1 "1\\$Clusters"
+#define CLUSTERS_CLUSTER_VIEW "$Clusters"
+#define CLUSTERS_CLUSTER_ITEM_NAME "ClusterName"
+#define CLUSTERS_CLUSTER_COL_NAME "$4" /* Name of the ClusterName column in the $Clusters view */
+#define CLUSTERS_CLUSTER_ITEM 0
+
+#define CLUSTERS_SERVERS_VIEW_1 "1\\$Servers"
+#define CLUSTERS_SERVERS_VIEW "$Servers"
+#define CLUSTERS_SERVER_ITEM_NAME "ServerName"
+#define CLUSTERS_SERVER_COL_NAME "$0" /* Name of the ServerName column in the $Clusters view */
+#define CLUSTERS_SERVER_ITEM 0
+
+#define CLUSTERS_CLREPID_ITEM_NAME "ClRepID"
+#define CLUSTERS_CLREPID_ITEM 0
+
+/* Cluster Database Directory definitions */
+
+#define CLUSTERS_SERVER_VIEW "$Server"
+#define CLUSTERS_PATHNAME_VIEW "$Pathname"
+#define CLUSTERS_REPID_VIEW "$ReplicaID"
+#define CLUSTERS_DIRTITLE_VIEW "$DirectoryTitle"
+
+#define CLUSTERS_SERVER_FIELD "Server"
+#define CLUSTERS_REPID_FIELD "ReplicaID"
+#define CLUSTERS_PATHNAME_FIELD "PathName"
+#define CLUSTERS_TITLE_FIELD "Title"
+#define CLUSTERS_OUTOFSERVICE_FIELD "DatabaseOutOfService"
+#define CLUSTERS_REPL_FIELD "ClusterReplicate"
+#define CLUSTERS_FAILBYPATH_FIELD "OnlyFailoverbyPathname"
+#define CLUSTERS_DELETE_FIELD "MarkedForDelete"
+
+#define CLUSTERS_DBDIR_NAME "cldbdir.nsf"
+#define CLUSTERS_DBDIR_TEMPLATE_NAME "cldbdir4.ntf"
+
+/* Values for CLUSTERS_OUTOFSERVICE_FIELD */
+#define CLUSTERS_IN_SERVICE "0"
+#define CLUSTERS_OUT_OF_SERVICE "1"
+
+/* Values for CLUSTERS_CLREPL_FIELD */
+#define CLUSTERS_CLUSTER_REPLICATE_ON "1"
+#define CLUSTERS_CLUSTER_REPLICATE_OFF "0"
+
+
+/* User registration document and DUS (Domino Upgrade Service) field definitions */
+
+/* Fields related to the basics user registration dialog pane */
+#define USERREG_FULLNAME_ITEM "FullName"
+#define USERREG_FIRSTNAME_ITEM "FirstName"
+#define USERREG_LASTNAME_ITEM "LastName"
+#define USERREG_MIDDLEINITIAL_ITEM "MiddleInitial"
+#define USERREG_SHORTNAME_ITEM "ShortName"
+#define USERREG_PASSWORD_ITEM "UserPassword"
+#define USERREG_POLICY_ITEM "ExplicitPolicy"
+#define USERREG_ORG_POLICY_ITEM "OrgPolicy"
+
+/* Comment field in the 'Other' user registration dialog pane */
+#define USERREG_COMMENT_ITEM "Comment"
+
+/* DUS related fields */
+#define USERREG_DUSUSERID_ITEM "NUAUserID"
+#define USERREG_DUSNAME_ITEM "NUAName"
+#define USERREG_DUSALIASNAMES_ITEM "DUSFullNameAliases"
+#define USERREG_DUSMAILFILE_ITEM "NUAMailFile"
+#define USERREG_DUSGROUPID_ITEM "GroupID"
+#define USERREG_DUSPARENTGROUPS_ITEM "ParentGroups" /* for groups with parent groups */
+#define USERREG_PERSONNOTEHANDLE_ITEM "PersonNoteHandle" /* note handle to new person note in NAB created by user reg */
+
+/* Advance info item fields */
+#define USERREG_DUSADVANCEDINFO_ITEM "NUAAdvancedInfo" /* The DUS must set the DUS_ADVANCEDINFO_ITEM below to "1" if
+ any of the USERREG_XXX fields below are set by the DUS */
+#define USERREG_STORAGE_ITEM "MessageStorage" /* Specifies how user wants to store the mail. See USERREG_STORAGE_XXX below */
+#define USERREG_STORAGE_UNKNOWN 0xFF /* can't find storage type */
+#define USERREG_STORAGE_CDRECORDS 0 /* Store as cd records only */
+#define USERREG_STORAGE_CDRECORDS_AND_RFC822 1 /* Store as cd records & attachment of original message */
+#define USERREG_STORAGE_RFC822 2 /* Store original message as attachment (no cdrecords) */
+#define USERREG_STORAGE_NATIVE_MIME 3 /* Store headers & parts as separate items (without conversion) or CD */
+#define USERREG_STORAGE_NATIVE_MIME_ONLY 4 /* Store headers & parts as separate items (without conversion) only */
+
+#define USERREG_PERSONAL_TITLE "Title" /* keyword choices are Mr., Ms., Mrs., Miss, Dr. or Prof. */
+#define USERREG_GENERATION_QUALIFIER "Suffix" /* keyword choices are I, II, III, Jr., or Sr. */
+
+#define USERREG_HOME_STREETADDRESS "StreetAddress"
+#define USERREG_HOME_CITY "City"
+#define USERREG_HOME_STATE "State"
+#define USERREG_HOME_ZIP "Zip"
+#define USERREG_HOME_COUNTRY "Country"
+#define USERREG_PHONENUMBER_ITEM "PhoneNumber"
+#define USERREG_HOME_FAX "HomeFAXPhoneNumber"
+#define USERREG_SPOUSE "Spouse"
+#define USERREG_CHILDREN "Children"
+
+#define USERREG_COMPANYNAME_ITEM "CompanyName"
+#define USERREG_JOB_TITLE "JobTitle"
+#define USERREG_DEPARTMENT_ITEM "Department"
+#define USERREG_MANAGER "Manager"
+#define USERREG_OFFICEPHONE_ITEM "OfficePhoneNumber"
+#define USERREG_CELL_PHONE "CellPhoneNumber"
+#define USERREG_PAGER "PhoneNumber_6"
+#define USERREG_OFFICE_FAX "OfficeFAXPhoneNumber"
+#define USERREG_ASSISTANT "Assistant"
+#define USERREG_OFFICE_STREETADDRESS "OfficeStreetAddress"
+#define USERREG_OFFICE_CITY "OfficeCity"
+#define USERREG_OFFICE_STATE "OfficeState"
+#define USERREG_OFFICE_ZIP "OfficeZip"
+#define USERREG_OFFICE_COUNTRY "OfficeCountry"
+#define USERREG_OFFICE_NUMBER "OfficeNumber"
+#define USERREG_EMPLOYEEID_ITEM "EmployeeID"
+
+#define USERREG_ENCRYPT_INCOMING_MAIL "EncryptIncomingMail" /* keyword choices are "Yes" | "1" or "No" | "0" */
+#define USERREG_X400_ADDRESS "x400Address"
+#define USERREG_WEB_SITE "WebSite"
+#define USERREG_CALENDARDOMAIN_ITEM "CalendarDomain" /* User's calendar domain override */
+/* END of User registration document and DUS field definitions */
+
+
+/* Last specified path and username for alternate mail logon dialog. */
+
+#define ALT_MAIL_LAST_PATH "AltMailLastPath"
+#define ALT_MAIL_LAST_NAME "AltMailLastName"
+
+/* Convert Utility Constants. */
+
+#define ITEM_NAME_CONVERT_FORM FIELD_FORM
+#define ITEM_NAME_CONVERT_DATE "ConvertedDate"
+#define ITEM_NAME_HIDDEN_DOC "HiddenDocument"
+
+/* Names stored as UNKs if a note has rarely used item names. */
+
+#define RARELY_USED_NAME "$RarelyUsedName"
+#define RARELY_USED_TABLE "$RarelyUsedTable"
+#define RARELY_USED_V4_ONLY_ITEM "$RUsedR4Only"
+
+#define AGENT_HSCRIPT_ITEM "$AgentHScript"
+#define AGENT_HSCRIPTOBJ_ITEM "$AgentHScript_O"
+
+/* Local schedule retrieval defintions */
+
+#define LOCSCHED_FORM_NAME "LocalSchedSettings"
+#define LOCSCHED_PROFILE_NAME "LocalSchedSettings"
+
+/* Fields in local schedule database (busytime) for local
+ schedule synchronization via replicator page. */
+
+
+#define ITEM_LOCSCHED_LIST "LocalSchedList"
+#define ITEM_LOCSCHED_DAYSTOFETCH "LocalSchedDaysToFetch"
+#define ITEM_LOCSCHED_SUPPRESS "LocalSchedSuppressMinutes"
+
+/* OLE "special" Items used for ActiveDoc/RichText rendering */
+
+#define OLE_ITEM_OLEOBJFIELD "$OLEObjField"
+#define OLE_ITEM_OLEOBJPROGID "$OLEObjProgID"
+#define OLE_ITEM_OLEOBJRICHTEXTFIELD "$OLEObjRichTextField"
+
+/* Enables any OLE object to be in-place activated in preview pane mode. Used
+ to activate OLE controls like WEB Browser */
+#define OLE_PREVIEW_ACTIVATE "$OLEPreviewActivate"
+
+/*Site Database design and item names*/
+#define SITE_FORM_NAME "Database"
+#define SITE_REPLICAID_VIEW_NAME "($ReplicaID)"
+#define SITE_PROFILE_NAME "Site"
+
+#define SITE_TITLE_ITEM_NAME "Title"
+#define SITE_REALTITLE_ITEM_NAME "RealTitle"
+#define SITE_DBICON_ITEM_NAME "dbicon"
+#define SITE_SEQUENCE_ITEM_NAME "dbsequence"
+#define SITE_REPLICAID_ITEM_NAME "replicaid"
+#define SITE_SEQUENCE_ITEM_NAME "dbsequence"
+#define SITE_SERVERHINT_ITEM_NAME "$ServerHint"
+
+/* Web Browser control well known action name and form name */
+#define OLE_URLNAVIGATE_ACTION "$ControlURLNavigate"
+#define OLE_WEBBROWSER_FORM "WebBrowserForm" /* Used if IE 3 is installed */
+#define OLE_WEBBROWSER4_FORM "WebBrowser4Form" /* Used if IE 4 is installed */
+#define OLE_MOZILLABROWSER_FORM "MozillaForm" /* Used if NS 6 Mozilla control is installed */
+
+/* Distinguished Field Names */
+#define DN_COUNTRY "C"
+#define DN_ORGANIZATION "O"
+#define DN_ORGANIZATIONAL_UNIT "OU"
+#define DN_COMMON_NAME "CN"
+#define DN_SURNAME "S"
+#define DN_USER_ID "UID"
+#define DN_STREET_ADDRESS "STREET"
+#define DN_LOCALITY "L"
+#define DN_STATE "ST"
+#define DN_DOMAIN_COMPONENT "DC"
+
+
+
+/* Items used to store folder references. */
+
+#define ITEM_FOLDER_REF "$FolderRef"
+#define ITEM_FOLDER_REF_ID "$FolderRefID"
+#define ITEM_FOLDER_REF_FLAGS "$FolderRefFlags"
+
+/* Items used to store r6 imap folder references. */
+
+#define IMAP_ITEM_FOLDER_REF "$IMAPFolderRef"
+#define IMAP_ITEM_FOLDER_REF_ID "$IMAPFolderRefID"
+#define IMAP_ITEM_FOLDER_REF_FLAGS "$IMAPFolderRefFlags"
+
+/* DON'T CHANGE FOLLOWING VALUES. IMAP SERVER DEPENDS ON THESE VALUES. */
+/* Folder reference flag values. */
+
+#define FOLDER_REF_FLAG_SEEN 0x00000001
+#define FOLDER_REF_FLAG_ANSWERED 0x00000002
+#define FOLDER_REF_FLAG_FLAGGED 0x00000004
+#define FOLDER_REF_FLAG_DELETED 0x00000008
+#define FOLDER_REF_FLAG_DRAFT 0x00000010
+
+#define FOLDER_REF_FLAG_NOT_RECENT 0x00000020
+#define FOLDER_REF_FLAG_RECENT 0x00000040 /* Unique flag value that is not stored */
+
+#define FOLDER_REF_FLAG_MDNSENT 0x00000080
+#define FOLDER_REF_FLAG_KEYWORD 0x00000100
+
+/* Name of the folder reference information collection. */
+
+#define FOLDER_REF_INFO_COLLECTION "$FolderRefInfo"
+
+/* Collations in the folder reference information collection. */
+
+#define FOLDER_UNID_REF_ID_COLLATION_NUMBER 1
+#define FOLDER_UNID_REF_ID_COLLATION_LEVELS 2
+
+#define FOLDER_UNID_NNTP_DATE_COLLATION_NUMBER 2
+#define FOLDER_UNID_NNTP_DATE_COLLATION_LEVELS 2
+
+/* Summary item names used to store folder reference information. */
+
+#define FOLDER_REF_UNID_ITEM_NAME "$105"
+#define FOLDER_REF_REF_ID_ITEM_NAME "$FolderRefID"
+#define FOLDER_REF_FLAGS_ITEM_NAME "$FolderRefFlags"
+
+/* Summarty item names used to store NNTP folder reference information. */
+
+#define FOLDER_REF_NNTP_SUBJECT_ITEM_NAME "$110"
+#define FOLDER_REF_NNTP_FROM_ITEM_NAME "$109"
+#define FOLDER_REF_NNTP_DATE_ITEM_NAME "$113"
+#define FOLDER_REF_NNTP_MESSAGE_ID_ITEM_NAME "$uname"
+#define FOLDER_REF_NNTP_REFERENCES_ITEM_NAME "$114"
+#define FOLDER_REF_NNTP_SIZE_ITEM_NAME "NNTP_Size"
+#define FOLDER_REF_NNTP_LINES_ITEM_NAME "Lines"
+#define FOLDER_REF_NNTP_ISLMBCS_ITEM_NAME "$115"
+#define FOLDER_REF_NNTP_DISTRIBUTION_ITEM_NAME "Distribution"
+#define FOLDER_REF_NNTP_PATH_ITEM_NAME "Path"
+
+
+/* Folder flag values. */
+
+#define FOLDER_FLAG_NOINFERIORS 0x00000001
+#define FOLDER_FLAG_NOSELECT 0x00000002
+#define FOLDER_FLAG_MARKED 0x00000004
+#define FOLDER_FLAG_UNMARKED 0x00000008
+
+#define FOLDER_FLAG_SYSTEM 0x00000010 /* Set if folder name starts with '$' */
+#define FOLDER_FLAG_HIDDEN 0x00000020 /* Set if folder name starts with '(' */
+
+#define FOLDER_FLAG_NNTP_NEWSGROUP 0x00000040
+#define FOLDER_FLAG_HASCHILDREN 0x00000080 /* set if folder has children */
+
+/* A special, unique folder flag value, that is never stored, used to indicate
+ that any value of folder flags are to be considered a match. */
+
+#define FOLDER_FLAG_ANY 0x80000000
+
+/* A mask of bits that are used to qualify a folder name. */
+
+#define FOLDER_FLAG_MATCH_MASK (FOLDER_FLAG_SYSTEM | FOLDER_FLAG_HIDDEN)
+
+/* A bit that is used to indicate that any value of folder flags are to be
+ considered a match. */
+
+#define FOLDER_FLAG_MATCH_ANY (FOLDER_FLAG_ANY)
+
+
+/* Name of the folder information collection. */
+
+#define FOLDER_INFO_COLLECTION "$FolderInfo"
+
+/* Collations in the folder information collection. */
+
+#define FOLDER_NAME_COLLATION_NUMBER 1
+#define FOLDER_NAME_COLLATION_LEVELS 1
+
+#define FOLDER_UNID_COLLATION_NUMBER 2
+#define FOLDER_UNID_COLLATION_LEVELS 1
+
+/* Collations in the IMAIL resync information collection. */
+
+#define RESYNC_INFO_NOTEID_COLLATION_NUMBER 1
+#define RESYNC_INFO_NOTEID_COLLATION_LEVELS 1
+
+#define RESYNC_INFO_UID_COLLATION_NUMBER 2
+#define RESYNC_INFO_UID_COLLATION_LEVELS 1
+
+#define RESYNC_INFO_MID_COLLATION_NUMBER 3
+#define RESYNC_INFO_MID_COLLATION_LEVELS 1
+
+/* Summary item names used to store folder information. */
+
+#define FOLDER_NAME_ITEM_NAME "$106"
+#define FOLDER_UNID_ITEM_NAME "$103"
+#define FOLDER_FLAGS_ITEM_NAME "$107"
+
+/* Items used to store folder information. */
+
+#define ITEM_FOLDER_FLAGS "$FolderFlags"
+
+/* Length of the text representation of an UNID in hex format. */
+
+#define UNID_TEXT_LENGTH (2 * sizeof(UNID))
+
+/* IMAP subscription list */
+
+#define IMAP_PROFILE_SUBSCRIPTION "IMAPProfileSubscription"
+#define ITEM_IMAP_SUBSCRIPTION "$IMAPSubscription"
+
+/* IMAP NAMESPACE Configuration Items */
+
+#define IMAP_CFGREC_NS_SHAREDDBLINKS "IMAPNSShrdDbLinks"
+#define IMAP_CFGREC_NS_OTHERSUNREAD "IMAPNSOthersUnrd"
+#define IMAP_PROFILE_NS_OTHERUSERS "IMAPNSOtherUsers"
+
+/* IMAP Replication Items */
+
+#define IMAP_SEQNO_ITEM_NAME "$IMAPSeqNo"
+#define IMAP_LASTFOLDERUNID_ITEM_NAME "$IMAPLastFolderUNID"
+#define IMAP_UID_ITEM_NAME "$IMAPUID"
+#define IMAP_FLAGS_ITEM_NAME "$IMAPFlags"
+#define IMAP_DISCFLAGS_ITEM_NAME "$IMAPDiscFlags"
+#define IMAP_MSGID_ITEM_NAME "$IMAPMsgID"
+
+/* IMAP Replication $IMAPResyncInfo view column names */
+
+#define IMAP_SEQNO_COLUMN "IMAPSeqNo"
+#define IMAP_LASTFOLDERUNID_COLUMN "IMAPLastFolderUNID"
+#define IMAP_UID_COLUMN "IMAPUID"
+#define IMAP_FLAGS_COLUMN "IMAPFlags"
+#define IMAP_DISCFLAGS_COLUMN "IMAPDiscFlags"
+#define IMAP_MSGID_COLUMN "IMAPMsgID"
+
+/* NNTP Replication Items */
+
+#define NNTP_FOLDERUNID_ITEM_NAME "$NNTPFolderUNID"
+#define NNTP_UID_ITEM_NAME "$NNTPUID"
+#define NNTP_FLAGS_ITEM_NAME "$NNTPFlags"
+#define NNTP_MSGID_ITEM_NAME "$UName"
+#define FIELD_PARENT_UNAME "$ParentUName"
+
+/* NNTP Replication $NNTPResyncInfo view column names */
+
+#define NNTP_FOLDERUNID_COLUMN "NNTPFolderUNID"
+#define NNTP_UID_COLUMN "NNTPUID"
+#define NNTP_FLAGS_COLUMN "NNTPFlags"
+#define NNTP_MSGID_COLUMN "UName"
+
+/* Name of the IMAP Resync information collection. */
+
+#define IMAP_RESYNC_INFO_COLLECTION "$IMAPResyncInfo"
+
+/* Name of the NNTP Resync information collection. */
+
+#define NNTP_RESYNC_INFO_COLLECTION "$NNTPResyncInfo"
+
+/* components (java applets, etc. ) */
+
+#define COMPONENTS_LIST_ITEM "$Components"
+
+/* Setup */
+#define SETUP_SERVERLOOKUP_VIEW "($ServersLookup)"
+
+/* Admin Panel */
+
+#define NETWORKS_NAMESPACE "$Networks"
+#define INIT_NETWORKSLOOKUPITEMCOUNT 2
+#define INIT_NETWORKSLOOKUPITEMS "Network\0ServerName"
+#define INIT_NETWORKSITEM_NETWORK 0
+#define INIT_NETWORKSITEM_SERVER 1
+
+#define POLICIES_NAMESPACE "$Policies"
+#define POLICIES_NAMESPACE_ALT "($Policies)"
+#define POLICY_MASTER_POLICY_FORM "PolicyMaster"
+#define POLICY_ARCHIVE_SETTINGS_FORM "PolicyArchive"
+#define POLICY_SETUP_SETTINGS_FORM "PolicySetup"
+#define POLICY_REG_SETTINGS_FORM "PolicyRegistration"
+#define POLICY_DESKTOP_SETTINGS_FORM "PolicyDesktop"
+#define POLICY_SECURITY_SETTINGS_FORM "PolicySecurity"
+#define POLICY_SYNOPSIS_FORM "Synopsis"
+
+/* Domain Type */
+
+#define NOTES_DOMAIN_TYPE "NOTES"
+#define LDAP_DOMAIN_TYPE "LDAP"
+
+
+
+/* Headline Items */
+
+#define HEADLINE_DEFAULTVIEW_ITEM "($Headlines)" /* Default view to use to create headlines views */
+
+#define HEADLINE_VIEW_ITEM "$HLView" /* Headline marker item for headlines view */
+#define HEADLINE_SUMMARY_ITEM "$HLNoteSummary" /* Headline summary item */
+#define HEADLINE_MODIFIED_ITEM "$HLNoteModified" /* Headline last modified time (time) */
+#define HEADLINE_UNID_ITEM "$HLNoteUNID" /* Headline UNID (text) */
+#define HEADLINE_SEARCHMATCH_ITEM "$HLNoteSearchMatch" /* Headline search match item (text format below) */
+#define HEADLINE_REF_ITEM "$HLNoteREF" /* Headline saved reference (no main topic found) */
+
+/* Subscription Items */
+
+#define SUBSCRIPTION_VIEW "$Subscriptions" /* Alias of subscriptions view */
+#define SUBSCRIPTION_FORM "$Subscription" /* Name of subscription form */
+#define SUBSCRIPTION_HEADLINES_VIEW "$HeadlinesView" /* Designer specified view for headlines */
+#define FIELD_FORM_DBID "$FormDatabaseID"
+
+#define SUBSCRIPTION_VIEW_ITEM "$HLSubscription" /* Marker item for subscriptions */
+#define SUBSCRIPTION_TITLE "$HLTitle" /* Title of subscription */
+
+#define SUBSCRIPTION_DISABLED_ITEM "$HLDisabled" /* Disabled Flag, checked before enabled flag */
+#define SUBSCRIPTION_ENABLED_ITEM "$HLEnabled" /* Enabled Flag, only checked if disabled flag not found */
+#define SUBSCRIPTION_DISABLED '0' /* Enabled Flag - disabled */
+#define SUBSCRIPTION_ENABLED '1' /* Enabled Flag - enabled */
+
+#define SUBSCRIPTION_TYPE_ITEM "$HLType" /* Subscription Type */
+#define SUBSCRIPTION_TYPE_DB '1' /* Subscription Type - DB monitoring */
+#define SUBSCRIPTION_TYPE_VIEW '2' /* Subscription Type - view */
+#define SUBSCRIPTION_TYPE_URL '3' /* Subscription Type - URL */
+#define SUBSCRIPTION_KIND_DB 1 /* Subscription Kind - DB monitoring */
+#define SUBSCRIPTION_KIND_VIEW 2 /* Subscription Kind - view */
+#define SUBSCRIPTION_KIND_URL 3 /* Subscription Kind - URL */
+#define SUBSCRIPTION_UNID_ITEM "$HLUnid" /* Subscription UNID for resync */
+#define SUBSCRIPTION_MODIFIED_ITEM "$HLModifiedTime" /* Subscription Modified time for resync */
+
+
+#define SUBSCRIPTION_TARGETFRAME_ITEM "$HLTargetFrame" /* Frame to use for the subscription */
+#define SUBSCRIPTION_FRAME_DB "$HLMonitorFrame" /* Default frame to use for monitor subscriptions */
+#define SUBSCRIPTION_FRAME_VIEW "$HLViewFrame" /* Default frame to use for view subscriptions */
+#define SUBSCRIPTION_FRAME_URL "$HLURLFrame" /* Default frame to use for URL subscriptions */
+
+#define SUBSCRIPTION_URL_ITEM "$HLURL" /* URL for View and URL subscription types */
+
+#define SUBSCRIPTION_FORMULA_ITEM "$HLFormula" /* Monitor Formula */
+#define SUBSCRIPTION_FULLTEXT_ITEM "$HLFulltext" /* Monitor Full Text */
+
+#define SUBSCRIPTION_OPTIONS_ITEM "$HLOptions" /* Monitor Options Flag */
+#define SUBSCRIPTION_OPTIONS_NONE '0' /* Monitor Options Flag - none */
+#define SUBSCRIPTION_OPTIONS_SUMMARY '1' /* Monitor Options Flag - summary */
+#define SUBSCRIPTION_OPTIONS_LOCAL '2' /* Monitor Options Flag - local */
+#define SUBSCRIPTION_OPTIONS_ALL '3' /* Monitor Options Flag - summary&local */
+
+
+#define SUBSCRIPTION_MONITORTYPE_ITEM "$HLMonitorType" /* Monitor Type Flag */
+#define SUBSCRIPTION_MONITORTYPE_FORMULA '1' /* Monitor Type Flag - formula */
+#define SUBSCRIPTION_MONITORTYPE_FULLTEXT '2' /* Monitor Type Flag - full text */
+#define SUBSCRIPTION_DB_ITEM "$HLMonitorDB" /* Database to Monitor */
+#define SUBSCRIPTION_DB_VIEW_ITEM "$HLHeadlineView" /* User specified view for headlines */
+
+#define SUBSCRIPTION_CREATE "$HLCreateSubscription" /* Flag to indicate a partial subscription that */
+ /* needs more information to be created */
+#define SUBSCRIPTION_CREATE_MAIL "mail" /* Creating a special mail file subscription */
+
+#define SUBSCRIPTION_LASTCHECKED_ITEM "$HLMLastChecked" /* Last time the monitor DB was checked */
+#define SUBSCRIPTION_CLIENTID_ITEM "$HLMClientId" /* Last ClientId used */
+#define SUBSCRIPTION_SERVER_ITEM "$HLMServer" /* Original server to be monitored */
+#define SUBSCRIPTION_LASTSERVER_ITEM "$HLMLastServer" /* Last server monitored */
+#define SUBSCRIPTION_LASTPATH_ITEM "$HLMLastPath" /* Last path monitored */
+#define SUBSCRIPTION_MONITORID_ITEM "$HLMMonitorId" /* Last MonitorId used */
+#define SUBSCRIPTION_ERROR_ITEM "$HLMError" /* Last error encountered while initilaizing */
+#define SUBSCRIPTION_SERVER_INFO "$HLMServerInfo" /* Information about last servers monitored */
+
+#define SUBSCRIPTION_DBNAME "Headline.nsf"
+
+
+/* Framesets used in the client */
+#define CLIENT_FRAMESET_LAYOUT "ClientLayout"
+#define CLIENT_FRAMESET_MORE "ClientMore"
+#define CLIENT_FRAMESET_BMPAGE "BMPage"
+
+/* Frameset used in mail */
+#define MAIL_FRAMESET_MAIL "MailFS"
+/* And by calendar */
+#define MAIL_FRAMESET_CALENDAR "CalendarFS"
+/* And by ToDo */
+#define MAIL_FRAMESET_TODO "ToDoFS"
+
+#define Bookmark_IntroPageName "Intro" /* webpage name in bookmark to startup */
+#define Bookmark_StartupFramesetName "Home" /* frameset name in bookmark to startup */
+
+/* Special frame names used by the client */
+
+#define NAVIGATOR_PANE "NotesNavigator"
+#define VIEW_PANE "NotesView"
+#define PREVIEW_PANE "NotesPreview"
+#define EMBEDDED_PREVIEW_PANE "EmbeddedNotesPreview"
+#define USE_DEFAULT_FRAME_TARGETING "UseNotesDefaultFrameTargeting"
+#define CALENDAR_PANE "CalendarView"
+
+/* Names used for various client types which can exist */
+#define DESIGNER_CLIENT "Designer"
+#define ADMIN_CLIENT "Admin"
+#define NOTES_CLIENT "Notes"
+#define DGW_CLIENT "DGW"
+
+/* For use in search results template forms */
+#define SEARCH_QUERY "Query"
+#define SEARCH_START "Start"
+#define SEARCH_COUNT "Count"
+#define SEARCH_HITS "Hits"
+#define SEARCH_TOTAL_HITS "TotalHits"
+#define SEARCH_RESULT_LIMIT "SearchMax"
+#define SEARCH_WV "SearchWV"
+#define SEARCH_THESAURUS "SearchThesaurus"
+#define SEARCH_FUZZY "SearchFuzzy"
+#define SEARCH_ORDER "SearchOrder"
+#define SEARCH_SORT_OPTIONS "SortOptions"
+#define SEARCH_OTHER_OPTIONS "OtherOptions"
+#define SEARCH_BODY "Body"
+#define SEARCH_ENTRYFORM_NAME "SearchEntry"
+#define SEARCH_BODY_WEB ITEM_NAME_EMBEDDED_VIEW
+#define SEARCH_VIEW "SearchView"
+#define SEARCH_SCOPE "Scope"
+
+/* Dublin Core Meta Data */
+#define ITEM_META_TITLE "$$Title"
+#define ITEM_META_CREATOR "$$Creator"
+#define ITEM_META_DESCRIPTION "$$Description"
+#define ITEM_META_TYPE "$$Type"
+#define ITEM_META_CATEGORIES "$$Categories"
+
+/* Document Content view in the Domain Catalog */
+#define CATALOG_VIEW_CONTENT_CATEGORY "$DocumentContent"
+
+/* Shared Resources */
+
+#define ITEM_NAME_IMAGE_DATA "$ImageData"
+#define ITEM_NAME_IMAGE_NAMES "$ImageNames"
+#define ITEM_NAME_IMAGES_WIDE "$ImagesWide"
+#define ITEM_NAME_IMAGES_HIGH "$ImagesHigh"
+#define ITEM_NAME_IMAGES_COLORIZE "$ImagesColorize"
+#define ITEM_NAME_IMAGES_WEB_BROWSER_COMPATIBLE "$WebBrowserCompatible"
+
+#define ITEM_NAME_JAVA_FILES "$JavaFiles"
+
+#define ITEM_NAME_STYLE_SHEET_DATA "$StyleSheetData"
+#define ITEM_NAME_STYLE_SHEET_NAME "$StyleSheetName"
+
+#define ITEM_NAME_FILE_DATA "$FileData"
+#define ITEM_NAME_FILE_NAMES "$FileNames"
+#define ITEM_NAME_FILE_WEBPATH "$WebFilePath"
+#define ITEM_NAME_FILE_EDITFILE "$EditFilePath"
+#define ITEM_NAME_FILE_EDITOR "$FileEditor"
+
+#define ITEM_NAME_FILE_SIZE "$FileSize"
+#define ITEM_NAME_FILE_MIMETYPE "$MimeType"
+#define ITEM_NAME_FILE_MIMECHARSET "$MimeCharSet"
+#define ITEM_NAME_FILE_MODINFO "$FileModDT"
+
+/* defadmin.ntf definitions. */
+
+#define ITEM_TASK_LOAD_LOADCMD "$Task_LoadCmd"
+#define ITEM_TASK_TELLCMD "$Task_TellCmd"
+#define ITEM_TASK_LOAD_NAME "Task_name"
+#define ITEM_TASK_LOAD_FILENAME "Task_filename"
+#define ITEM_TASK_LOAD_DESCRIPTION "Task_description"
+#define ITEM_TASK_LOAD_HASUI "Task_hasLoadUI"
+#define ITEM_TASK_TELL_HASUI "Task_hasTellUI"
+#define ITEM_TASK_MONITOR_NAME "Task_MonitorName"
+#define ITEM_TASK_NO_START_ASP "DisableStartForASP"
+
+/* Special image resource name which will... */
+
+#define IMAGE_DBICON_NAME "$Icon" /* use Database's icon if the image does not exist. */
+#define IMAGE_OLEICON_NAME "$OLEIcon" /* use associated executable's icon if an image dosn't exist */
+
+/* For reading International MIME settings in NAB */
+#define MIMEI18N_FLD_CONFIG_ENABLED "MIMEOptionsEnabled"
+#define MIMEI18N_FLD_PRIMARY_GROUP "CVS_PrimaryGroup"
+#define MIMEI18N_FLD_SECONDARY_GROUPS "CVS_SecondaryGroups"
+#define MIMEI18N_FLD_INP_ALIAS_ALIAS "CVSI_CharsetAlias%d"
+#define MIMEI18N_FLD_INP_ALIAS_ACTUAL "CVSI_CharsetActual%d"
+#define MIMEI18N_FLD_EXP_ALIAS_ALIAS "CVSO_CharsetAlias%d"
+#define MIMEI18N_FLD_EXP_ALIAS_ACTUAL "CVSO_CharsetActual%d"
+#define MIMEI18N_FLD_CHARSET_DETECT "SMTPCharSetDetect"
+#define MIMEI18N_FLD_8BIT_FALLBACK "CVSI_NonMIMECharSet"
+#define MIMEI18N_FLD_INP_GROUP_FONT_PROP "CVSI_%s_F_P"
+#define MIMEI18N_FLD_INP_GROUP_FONT_MONO "CVSI_%s_F_M"
+#define MIMEI18N_FLD_INP_GROUP_FONT_PLAIN "CVSI_%s_F_T"
+#define MIMEI18N_FLD_INP_GROUP_FONT_PLAIN_SIZE "CVSI_%s_F_Size"
+#define MIMEI18N_FLD_INP_GROUP_FONT_HTML_SIZE "CVSI_%s_F_HSize"
+#define MIMEI18N_FLD_EXP_GROUP_CSET_HEAD "CVSO_%s_CS_H"
+#define MIMEI18N_FLD_EXP_GROUP_CSET_BODY "CVSO_%s_CS_B"
+#define MIMEI18N_FLD_EXP_GROUP_ENC_HEAD "CVSO_%s_ENC_H"
+#define MIMEI18N_FLD_EXP_GROUP_ENC_BODY "CVSO_%s_ENC_B"
+/* _FALLBACK_MODE is obsolete, now using _MULTILINGUAL_MODE */
+#define MIMEI18N_FLD_EXP_FALLBACK_MODE "CVS_MLMessageHandling"
+#define MIMEI18N_FLD_EXP_MULTILINGUAL_MODE "CVS_MultilingualMsgHandling"
+#define MIMEI18N_LOCATION_I18N_VIEW "($InternationalMIMESettings)"
+
+/* these are obsolete, now using _MULTILINGUAL_xxx */
+#define MIMEI18N_FALLBACK_UTF8 1
+#define MIMEI18N_FALLBACK_FALLBACK_CHAR 2
+#define MIMEI18N_FALLBACK_UNICODE_ENTITIES 3
+#define MIMEI18N_FALLBACK_REFUSE 4
+
+#define MIMEI18N_MULTILINGUAL_UNICODE 1
+#define MIMEI18N_MULTILINGUAL_BEST_MATCH 2
+
+/*
+ * some standard mime charset names used by the XmlReformatter
+ * and other xml code
+ */
+#define MIME_CHARSET_UTF8 "UTF-8"
+#define MIME_CHARSET_UTF16 "UTF-16"
+#define MIME_CHARSET_UTF16LE "UTF-16LE"
+#define MIME_CHARSET_UTF16BE "UTF-16BE"
+
+/* these are NOTES.INI variables used on the client only -- not server
+ * which has this stuff in a config note
+ */
+#define MIME_MULTILINGUAL_MODE_VAR "MIMEMultilingualMode"
+#define MIME_PROMPT_MULTILINGUAL_VAR "MIMEPromptMultilingual"
+
+/* NOTES.INI variables - show user preference about displaying
+ * some Plug-In related warnings
+ */
+#define PluginsWarningDialog 0
+#define PluginsWarningStatusBar 1
+#define PluginsWarningDoNotShow 2
+
+#define PluginsWarningOption "PluginsWarningOption"
+
+/* see net/resolver.c for use of these */
+#define HTTP_SERVER_LOOKUP_ITEMS "HTTP_HostName\0SMTPFullHostDomain\0HTTP_NormalMode\0HTTP_SSLMode\0HTTP_Port\0HTTP_SSLPort\0HTTP_RedirectUseHTTPS\0HTTP_RedirectServerName\0HTTP_RedirectPortNo\0HTTP_CompanionStack\0Enabled_0\0Protocol_0\0NetAddr_0\0Enabled_1\0Protocol_1\0NetAddr_1\0Enabled_2\0Protocol_2\0NetAddr_2\0Enabled_3\0Protocol_3\0NetAddr_3\0Enabled_4\0Protocol_4\0NetAddr_4\0Enabled_5\0Protocol_5\0NetAddr_5\0Enabled_6\0Protocol_6\0NetAddr_6\0Enabled_7\0Protocol_7\0NetAddr_7"
+#define HTTP_SERVER_LOOKUP_ITEM_COUNT 30
+#define HTTP_SERVER_LOOKUP_ITEM_HTTPHOSTNAME 0
+#define HTTP_SERVER_LOOKUP_ITEM_FULLHOSTNAME 1
+#define HTTP_SERVER_LOOKUP_ITEM_NORMALMODE 2
+#define HTTP_SERVER_LOOKUP_ITEM_SSLMODE 3
+#define HTTP_SERVER_LOOKUP_ITEM_PORT 4
+#define HTTP_SERVER_LOOKUP_ITEM_SSLPORT 5
+#define HTTP_SERVER_LOOKUP_ITEM_REDIRECTUSEHTTPS 6
+#define HTTP_SERVER_LOOKUP_ITEM_REDIRECTSERVERNAME 7
+#define HTTP_SERVER_LOOKUP_ITEM_REDIRECTPORTNO 8
+#define HTTP_SERVER_LOOKUP_ITEM_COMPANIONSTACK 9
+#define HTTP_SERVER_LOOKUP_ITEM_OFFS_START 10
+#define HTTP_SERVER_LOOKUP_ITEM_OFFS_ENABLED 0
+#define HTTP_SERVER_LOOKUP_ITEM_OFFS_PROTOCOL 1
+#define HTTP_SERVER_LOOKUP_ITEM_OFFS_NETADDR 2
+#define HTTP_SERVER_LOOKUP_ITEM_OFFS_MAX 3
+
+/* Fault Recovery Address Book items */
+#define FR_LOOKUP_ITEM_COUNT 7
+#define FR_LOOKUP_ITEMS \
+"FREnbld\0FltRcvryCrsh\0FltRcvryMin\0\
+FltRcvryMax\0FltRcvryNot\0FltRcvryScrpt\0NSDEnbld"
+
+#define FR_ENABLED_ITEM 0
+#define FR_MAX_CRASHES_ITEM 1
+#define FR_CRASH_TIME_LIMIT_ITEM 2
+#define FR_CLEANUPSCRIPT_TIME_LIMIT_ITEM 3
+#define FR_NOTIFY_ITEM 4
+#define FR_CLEANUPSCRIPT_ITEM 5
+#define NSD_ENABLED_ITEM 6
+
+#define FR_LOOKUP_ITEM_COUNT_ADC 2
+#define FR_LOOKUP_ITEMS_ADC "FltRcvryNot\0NSDEnbld"
+#define FR_NOTIFY_ITEM_ADC 0
+#define FR_NSD_ENABLED_ITEM_ADC 1
+
+#define FA_NUM_LOOKUP_ITEMS 2
+#define FA_LOOKUP_ITEMS "MailServer\0MailFile"
+#define FA_LOOKUP_SERVER 0
+#define FA_LOOKUP_FILE 1
+
+#define ADMINP_FR_ENABLED_ITEM "FREnbld"
+#define ADMINP_FR_MAX_CRASHES_ITEM "FltRcvryCrsh"
+#define ADMINP_FR_CRASH_TIME_LIMIT_ITEM "FltRcvryMin"
+#define ADMINP_FR_CLEANUPSCRIPT_TIME_LIMIT_ITEM "FltRcvryMax"
+#define ADMINP_FR_NOTIFY_ITEM "FltRcvryNot"
+#define ADMINP_FR_CLEANUPSCRIPT_ITEM "FltRcvryScrpt"
+#define ADMINP_NSD_ENABLED_ITEM "NSDEnbld"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STD_NAME_DEFS */
+
+#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
+#pragma datamodel(pop)
+#endif
+
diff --git a/plugins/LotusNotify/src/debug.cpp b/plugins/LotusNotify/src/debug.cpp
new file mode 100644
index 0000000000..e27f291817
--- /dev/null
+++ b/plugins/LotusNotify/src/debug.cpp
@@ -0,0 +1,57 @@
+#include "stdafx.h"
+#include "debug.h"
+
+HANDLE netlibHandle;
+
+
+void logRegister(){
+
+ // Register netlib user for logging function
+ NETLIBUSER nlu = { 0 };
+ nlu.cbSize = sizeof(nlu);
+ nlu.flags = NUF_TCHAR | NUF_NOOPTIONS;
+ nlu.szSettingsModule = PLUGINNAME;
+ nlu.ptszDescriptiveName = mir_a2u(PLUGINNAME);
+ netlibHandle = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
+
+}
+
+void logUnregister(){
+
+ Netlib_CloseHandle(netlibHandle);
+ netlibHandle = NULL;
+
+}
+
+void log(const wchar_t* szText){
+
+ if (netlibHandle) {
+ CallService(MS_NETLIB_LOGW, (WPARAM)netlibHandle, (LPARAM)szText);
+ }
+
+ #ifdef _DEBUG
+ OutputDebugString(szText);
+ #endif //_DEBUG
+
+}
+
+void log_p(const wchar_t* szText, ...){
+
+ va_list args;
+ va_start(args, szText);
+ int len = _vscwprintf(szText, args ) + 1; // _vscprintf doesn't count terminating '\0'
+ wchar_t* buffer = new wchar_t[len * sizeof(wchar_t)];
+ vswprintf_s(buffer, len, szText, args);
+ va_end(args);
+ log(buffer);
+ delete buffer;
+
+}
+
+
+
+
+
+
+
+
diff --git a/plugins/LotusNotify/src/debug.h b/plugins/LotusNotify/src/debug.h
new file mode 100644
index 0000000000..556efcd77b
--- /dev/null
+++ b/plugins/LotusNotify/src/debug.h
@@ -0,0 +1,8 @@
+#pragma once
+
+extern char PLUGINNAME[];
+
+void logRegister(void);
+void logUnregister(void);
+void log(const wchar_t* szText);
+void log_p(const wchar_t* szText, ...);
diff --git a/plugins/LotusNotify/src/lotusnotes.cpp b/plugins/LotusNotify/src/lotusnotes.cpp
new file mode 100644
index 0000000000..447efa0d0d
--- /dev/null
+++ b/plugins/LotusNotify/src/lotusnotes.cpp
@@ -0,0 +1,84 @@
+#include "stdafx.h"
+#include "lotusnotes.h"
+
+OSPATHNETCONSTRUCT OSPathNetConstruct1;
+NOTESINITEXTENDED NotesInitExtended1;
+NSFDBOPEN NSFDbOpen1;
+SECKFMGETUSERNAME SECKFMGetUserName1;
+NSFDBGETUNREADNOTETABLE NSFDbGetUnreadNoteTable1;
+NSFDBUPDATEUNREAD NSFDbUpdateUnread1;
+IDSCAN IDScan1;
+NSFNOTEOPEN NSFNoteOpen1;
+NSFDBGETNOTEINFO NSFDbGetNoteInfo1;
+NSFITEMGETTEXT NSFItemGetText1;
+NSFITEMGETTIME NSFItemGetTime1;
+CONVERTTIMEDATETOTEXT ConvertTIMEDATEToText1;
+OSTRANSLATE OSTranslate1;
+MAILGETMESSAGEATTACHMENTINFO MailGetMessageAttachmentInfo1;
+NSFNOTECLOSE NSFNoteClose1;
+IDDESTROYTABLE IDDestroyTable1;
+NSFDBCLOSE NSFDbClose1;
+OSLOADSTRING OSLoadString1;
+NOTESTERM NotesTerm1;
+OSGETENVIRONMENTSTRING OSGetEnvironmentString1;
+OSSETENVIRONMENTVARIABLE OSSetEnvironmentVariable1;
+NSGETSERVERLIST NSGetServerList1;
+OSLOCKOBJECT OSLockObject1;
+OSUNLOCKOBJECT OSUnlockObject1;
+OSMEMFREE OSMemFree1;
+EMREGISTER EMRegister1;
+EMDEREGISTER EMDeregister1;
+NOTESINITTHREAD NotesInitThread1;
+NOTESTERMTHREAD NotesTermThread1;
+
+BOOL HookLotusFunctions()
+{
+ return (
+ (OSPathNetConstruct1 = (OSPATHNETCONSTRUCT)GetProcAddress(hLotusDll, "OSPathNetConstruct"))
+ && (NotesInitExtended1 = (NOTESINITEXTENDED)GetProcAddress(hLotusDll, "NotesInitExtended"))
+ && (NSFDbOpen1 = (NSFDBOPEN)GetProcAddress(hLotusDll, "NSFDbOpen"))
+ && (SECKFMGetUserName1 = (SECKFMGETUSERNAME)GetProcAddress(hLotusDll, "SECKFMGetUserName"))
+ && (NSFDbGetUnreadNoteTable1 = (NSFDBGETUNREADNOTETABLE)GetProcAddress(hLotusDll, "NSFDbGetUnreadNoteTable"))
+ && (NSFDbUpdateUnread1 = (NSFDBUPDATEUNREAD)GetProcAddress(hLotusDll, "NSFDbUpdateUnread"))
+ && (IDScan1 = (IDSCAN)GetProcAddress(hLotusDll, "IDScan"))
+ && (NSFNoteOpen1 = (NSFNOTEOPEN)GetProcAddress(hLotusDll, "NSFNoteOpen"))
+ && (NSFDbGetNoteInfo1 = (NSFDBGETNOTEINFO)GetProcAddress(hLotusDll, "NSFDbGetNoteInfo"))
+ && (NSFItemGetText1 = (NSFITEMGETTEXT)GetProcAddress(hLotusDll, "NSFItemGetText"))
+ && (NSFItemGetTime1 = (NSFITEMGETTIME)GetProcAddress(hLotusDll, "NSFItemGetTime"))
+ && (ConvertTIMEDATEToText1 = (CONVERTTIMEDATETOTEXT)GetProcAddress(hLotusDll, "ConvertTIMEDATEToText"))
+ && (OSTranslate1 = (OSTRANSLATE)GetProcAddress(hLotusDll, "OSTranslate"))
+ && (MailGetMessageAttachmentInfo1 = (MAILGETMESSAGEATTACHMENTINFO)GetProcAddress(hLotusDll, "MailGetMessageAttachmentInfo"))
+ && (NSFNoteClose1 = (NSFNOTECLOSE)GetProcAddress(hLotusDll, "NSFNoteClose"))
+ && (IDDestroyTable1 = (IDDESTROYTABLE)GetProcAddress(hLotusDll, "IDDestroyTable"))
+ && (NSFDbClose1 = (NSFDBCLOSE)GetProcAddress(hLotusDll, "NSFDbClose"))
+ && (OSLoadString1 = (OSLOADSTRING)GetProcAddress(hLotusDll, "OSLoadString"))
+ && (NotesTerm1 = (NOTESTERM)GetProcAddress(hLotusDll, "NotesTerm"))
+ && (OSGetEnvironmentString1 = (OSGETENVIRONMENTSTRING)GetProcAddress(hLotusDll, "OSGetEnvironmentString"))
+ && (OSSetEnvironmentVariable1 = (OSSETENVIRONMENTVARIABLE)GetProcAddress(hLotusDll, "OSSetEnvironmentVariable"))
+ && (NSGetServerList1 = (NSGETSERVERLIST)GetProcAddress(hLotusDll, "NSGetServerList"))
+ && (OSLockObject1 = (OSLOCKOBJECT)GetProcAddress(hLotusDll, "OSLockObject"))
+ && (OSUnlockObject1 = (OSUNLOCKOBJECT)GetProcAddress(hLotusDll, "OSUnlockObject"))
+ && (OSMemFree1 = (OSMEMFREE)GetProcAddress(hLotusDll, "OSMemFree"))
+ && (EMRegister1 = (EMREGISTER)GetProcAddress(hLotusDll, "EMRegister"))
+ && (EMDeregister1 = (EMDEREGISTER)GetProcAddress(hLotusDll, "EMDeregister"))
+ && (NotesInitThread1 = (NOTESINITTHREAD)GetProcAddress(hLotusDll, "NotesInitThread"))
+ && (NotesTermThread1 = (NOTESTERMTHREAD)GetProcAddress(hLotusDll, "NotesTermThread"))
+ ) ? TRUE : FALSE;
+}
+
+void GetLotusPath(TCHAR *sTemp, DWORD size)
+{
+ DWORD rc;
+ HKEY dmKey;
+
+ rc = RegOpenKeyEx( HKEY_LOCAL_MACHINE , TEXT("Software\\Lotus\\Notes") ,0, KEY_QUERY_VALUE, &dmKey );
+
+ if (rc != ERROR_SUCCESS) {
+ return;
+ }
+
+ RegQueryValueEx( dmKey, TEXT("Path"), NULL, NULL, (BYTE*)sTemp, &size );
+ RegCloseKey(dmKey);
+ return;
+}
+
diff --git a/plugins/LotusNotify/src/lotusnotes.h b/plugins/LotusNotify/src/lotusnotes.h
new file mode 100644
index 0000000000..234952a746
--- /dev/null
+++ b/plugins/LotusNotify/src/lotusnotes.h
@@ -0,0 +1,176 @@
+#pragma once
+
+
+extern HINSTANCE hLotusDll;
+
+typedef STATUS (CALLBACK *OSPATHNETCONSTRUCT)(
+ const char far *PortName,
+ const char far *ServerName,
+ const char far *FileName,
+ char far *retPathName);
+extern OSPATHNETCONSTRUCT OSPathNetConstruct1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NOTESINITEXTENDED)(
+ int argc,
+ char far * far *argv);
+extern NOTESINITEXTENDED NotesInitExtended1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFDBOPEN)(
+ const char far *PathName,
+ DBHANDLE far *rethDB);
+extern NSFDBOPEN NSFDbOpen1;
+
+typedef STATUS (CALLBACK LNPUBLIC *SECKFMGETUSERNAME)(
+ char far *retUserName);
+extern SECKFMGETUSERNAME SECKFMGetUserName1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFDBGETUNREADNOTETABLE)(
+ DBHANDLE hDB,
+ char far *UserName,
+ WORD UserNameLength,
+ BOOL fCreateIfNotAvailable,
+ HANDLE far *rethUnreadList);
+extern NSFDBGETUNREADNOTETABLE NSFDbGetUnreadNoteTable1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFDBUPDATEUNREAD)(
+ DBHANDLE hDataDB,
+ HANDLE hUnreadList);
+extern NSFDBUPDATEUNREAD NSFDbUpdateUnread1;
+
+typedef BOOL (CALLBACK LNPUBLIC *IDSCAN)(
+ HANDLE hTable,///DHANDLE
+ BOOL fFirst,
+ DWORD far *retID);
+extern IDSCAN IDScan1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFNOTEOPEN)(
+ DBHANDLE db_handle,
+ NOTEID note_id,
+ WORD open_flags,
+ NOTEHANDLE far *note_handle);
+extern NSFNOTEOPEN NSFNoteOpen1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFDBGETNOTEINFO)(
+ DBHANDLE hDb,
+ NOTEID NoteID,
+ OID far *retNoteOID,
+ TIMEDATE far *retModified,
+ WORD far *retNoteClass);
+extern NSFDBGETNOTEINFO NSFDbGetNoteInfo1;
+
+typedef WORD (CALLBACK LNPUBLIC *NSFITEMGETTEXT)(
+ NOTEHANDLE note_handle,
+ const char far *item_name,
+ char far *item_text,
+ WORD text_len);
+extern NSFITEMGETTEXT NSFItemGetText1;
+
+typedef BOOL (CALLBACK LNPUBLIC *NSFITEMGETTIME)(
+ NOTEHANDLE note_handle,
+ const char far *td_item_name,
+ TIMEDATE far *td_item_value);
+extern NSFITEMGETTIME NSFItemGetTime1;
+
+typedef STATUS (CALLBACK LNPUBLIC *CONVERTTIMEDATETOTEXT)(
+ const void far *IntlFormat,
+ const TFMT far *TextFormat,
+ const TIMEDATE far *InputTime,
+ char far *retTextBuffer,
+ WORD TextBufferLength,
+ WORD far *retTextLength);
+extern CONVERTTIMEDATETOTEXT ConvertTIMEDATEToText1;
+
+typedef WORD (CALLBACK LNPUBLIC *OSTRANSLATE)(
+ WORD TranslateMode,
+ const char far *In,
+ WORD InLength,
+ char far *Out,
+ WORD OutLength);
+extern OSTRANSLATE OSTranslate1;
+
+typedef BOOL (CALLBACK LNPUBLIC *MAILGETMESSAGEATTACHMENTINFO)(
+ HANDLE hMessage, ///DHANDLE
+ WORD Num,
+ BLOCKID far *bhItem,
+ char far *FileName,
+ DWORD far *FileSize,
+ WORD far *FileAttributes,
+ WORD far *FileHostType,
+ TIMEDATE *FileCreated,
+ TIMEDATE far *FileModified);
+extern MAILGETMESSAGEATTACHMENTINFO MailGetMessageAttachmentInfo1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFNOTECLOSE)(
+ NOTEHANDLE note_handle);
+extern NSFNOTECLOSE NSFNoteClose1;
+
+typedef STATUS (CALLBACK LNPUBLIC *IDDESTROYTABLE)(
+ HANDLE hTable); ///DHANDLE
+extern IDDESTROYTABLE IDDestroyTable1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSFDBCLOSE)(
+ DBHANDLE hDB);
+extern NSFDBCLOSE NSFDbClose1;
+
+typedef WORD (CALLBACK LNPUBLIC *OSLOADSTRING)(
+ HMODULE hModule,
+ STATUS StringCode,
+ char far *retBuffer,
+ WORD BufferLength);
+extern OSLOADSTRING OSLoadString1;
+
+typedef void (CALLBACK LNPUBLIC *NOTESTERM)(void);
+extern NOTESTERM NotesTerm1;
+
+typedef BOOL (CALLBACK LNPUBLIC *OSGETENVIRONMENTSTRING)(
+ const char far *VariableName,
+ char far *retValueBuffer,
+ WORD BufferLength);
+extern OSGETENVIRONMENTSTRING OSGetEnvironmentString1;
+
+typedef void (CALLBACK LNPUBLIC *OSSETENVIRONMENTVARIABLE)(
+ const char far *VariableName,
+ const char far *Value);
+extern OSSETENVIRONMENTVARIABLE OSSetEnvironmentVariable1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NSGETSERVERLIST)(
+ char far *pPortName,
+ HANDLE far *retServerTextList); ///DHANDLE
+extern NSGETSERVERLIST NSGetServerList1;
+
+typedef void far* (CALLBACK LNPUBLIC *OSLOCKOBJECT)(
+ HANDLE Handle); ///DHANDLE
+extern OSLOCKOBJECT OSLockObject1;
+
+typedef BOOL (CALLBACK LNPUBLIC *OSUNLOCKOBJECT)(
+ HANDLE Handle); ///DHANDLE
+extern OSUNLOCKOBJECT OSUnlockObject1;
+
+typedef STATUS (CALLBACK LNPUBLIC *OSMEMFREE)(
+ HANDLE Handle); ///DHANDLE
+extern OSMEMFREE OSMemFree1;
+
+typedef STATUS (CALLBACK LNPUBLIC *EMREGISTER)(
+ EID EmID,
+ DWORD Flags,
+ EMHANDLER Proc,
+ WORD RecursionID,
+ HEMREGISTRATION far *rethRegistration);
+extern EMREGISTER EMRegister1;
+
+typedef STATUS (CALLBACK LNPUBLIC *EMDEREGISTER)(
+ HANDLE Handle); ///HEMREGISTRATION
+extern EMDEREGISTER EMDeregister1;
+
+typedef STATUS (CALLBACK LNPUBLIC *NOTESINITTHREAD)(void);
+extern NOTESINITTHREAD NotesInitThread1;
+
+typedef void (CALLBACK LNPUBLIC *NOTESTERMTHREAD)(void);
+extern NOTESTERMTHREAD NotesTermThread1;
+
+
+
+
+BOOL HookLotusFunctions();
+void GetLotusPath(TCHAR *sTemp, DWORD size);
+
diff --git a/plugins/LotusNotify/src/resource.h b/plugins/LotusNotify/src/resource.h
new file mode 100644
index 0000000000..d6277ef73a
--- /dev/null
+++ b/plugins/LotusNotify/src/resource.h
@@ -0,0 +1,52 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by LotusNotify.rc
+//
+#define IDI_ICON1 101
+#define IDD_OPT_DIALOG 102
+#define IDI_ICON2 103
+#define IDC_SERVER 1001
+#define IDC_DATABASE 1002
+#define IDC_DATABASE2 1003
+#define IDC_INTERVAL 1003
+#define IDC_COMMAND 1004
+#define IDC_COMMAND2 1005
+#define IDC_PARAMETERS 1005
+#define IDC_ONCEONLY 1006
+#define IDC_SHOWERROR 1007
+#define IDC_SERVERSEC 1008
+#define IDC_SETCOLOURS 1009
+#define IDC_INTERVAL1 1010
+#define IDC_BGCOLOR 1011
+#define IDC_FGCOLOR 1012
+#define IDC_NONCLICKEDONLY 1013
+#define IDC_NEWEST 1014
+#define IDC_BUTTON_DETECT 1015
+#define IDC_STATUS 1016
+#define IDC_VERSION 1017
+#define IDC_VERSION2 1018
+#define IDC_BUTTON_DETECT2 1019
+#define IDC_BUTTON_CLEAR 1019
+#define IDC_FILTER_SENDER 1020
+#define IDC_FILTER_SUBJECT 1021
+#define IDC_BUTTON_ADD_SENDER_FILTER 1022
+#define IDC_BUTTON_ADD_SUBJECT_FILTER 1023
+#define IDC_BUTTON_REMOVE_SENDER_FILTER 1024
+#define IDC_BUTTON_REMOVE_SUBJECT_FILTER 1025
+#define IDC_PASSWORD 1026
+#define IDC_CHECK1 1027
+#define IDC_BUTTON_CHECK 1027
+#define IDC_FILTER_TO 1028
+#define IDC_BUTTON_ADD_TO_FILTER 1029
+#define IDC_BUTTON_REMOVE_TO_FILTER 1030
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1028
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/plugins/LotusNotify/src/stdafx.cpp b/plugins/LotusNotify/src/stdafx.cpp
new file mode 100644
index 0000000000..a27b824da7
--- /dev/null
+++ b/plugins/LotusNotify/src/stdafx.cpp
@@ -0,0 +1 @@
+#include "stdafx.h"
diff --git a/plugins/LotusNotify/src/stdafx.h b/plugins/LotusNotify/src/stdafx.h
new file mode 100644
index 0000000000..b083c6c7c1
--- /dev/null
+++ b/plugins/LotusNotify/src/stdafx.h
@@ -0,0 +1,48 @@
+#pragma once
+
+
+// Windows headers
+#define _CRT_SECURE_NO_WARNINGS
+#include <windows.h>
+#include <commctrl.h>
+#include <assert.h>
+
+
+
+// Miranda headers
+#define MIRANDA_VER 0x0A00
+//LotusNotify.h
+#include <m_core.h>
+#include <win2k.h>
+#include <newpluginapi.h>
+#include <m_clist.h>
+#include <m_skin.h>
+#include <m_database.h>
+#include <m_langpack.h>
+#include <m_options.h>
+#include <m_popup.h>
+#include <m_utils.h>
+#include <m_protomod.h>
+#include <m_protosvc.h>
+#include <m_system.h>
+//debug.h
+#include <m_netlib.h>
+
+
+
+// Notesapi headers
+#define W32
+#if defined(_WIN64)
+#define _AMD64_
+#endif
+#include "cnotesapi\include\global.h"
+#include "cnotesapi\include\osmisc.h"
+#include "cnotesapi\include\nsfdb.h"
+#include "cnotesapi\include\nsfsearc.h"
+#include "cnotesapi\include\names.h"
+#include "cnotesapi\include\osenv.h"
+#include "cnotesapi\include\extmgr.h"
+#include "cnotesapi\include\bsafeerr.h"
+#include "cnotesapi\include\nsferr.h"
+
+
diff --git a/plugins/LotusNotify/src/version.h b/plugins/LotusNotify/src/version.h
new file mode 100644
index 0000000000..95be043fec
--- /dev/null
+++ b/plugins/LotusNotify/src/version.h
@@ -0,0 +1,17 @@
+#define __MAJOR_VERSION 0
+#define __MINOR_VERSION 1
+#define __RELEASE_NUM 21
+#define __BUILD_NUM 0
+#define __VERSION_STRING "0.1.21.0"
+
+#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+
+#define __PLUGIN_NAME "LotusNotify"
+#define __FILENAME "LotusNotify.dll"
+#define __DESCRIPTION "Notify about new mail in Lotus Database"
+#define __FILECOMMENTS "Miranda NG Plugin - Notify about new mail in Lotus Database"
+#define __AUTHOR "MaKaRSoFT - http://maciej.wycik.pl/miranda"
+#define __AUTHOREMAIL "makar@poczta.of.pl"
+#define __AUTHORWEB "http://miranda-ng.org/"
+#define __COPYRIGHT "© 2006 MaKaRSoFT, 2013 wsx22"
+#define __LEGALTRADEMARKS "Freeware"