1 rizwank 1.1 Wine Group 6
2 Conformance Test Design
3
4 We are writing our conformance test for the itss dll. This dll is used by HTML Help (HH) and
5 is one of four main files within the overall system. The others are hhctrl.ocx (an activex
6 control that provides access to all the main HTML Help functions and services), itircl.dll,
7 and hh.exe (used to open CHM files). Key features of HH include inserting help navigation and
8 secondary windo functionality into an HTML file. HH also has an image editor/viewer as well
9 as other features. HH files can be compiled into CHM format, which can then be opened within
10 the viewer program by clicking on the respective topic. Hh.exe is the program that is actually
11 run when a user clicks a help topic.
12 itss.dll itself is responsible for handling three protocols: its:, ms-its:, and mk:@MSITStore.
13 It also is used for compression and decompression of files, which is done through one of the 3
14 protocols mentioned, or using the IStorage interface. There is remarkably little information to be
15 found on exactly how the dll is used and its functions. But it appears there are 5 or 6 main entry
16 points (functions) to the dll:
17 DllMain -- BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv
18 DllGetClassObject -- HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
19 DllCanUnloadNow -- HRESULT WINAPI DllCanUnloadNow(void
20 DllRegisterServer -- HRESULT WINAPI DllRegisterServer(void)
21 DllUnregisterServer
22 rizwank 1.1 ITSS_create -- static HRESULT ITSS_create(IUnknown *pUnkOuter, LPVOID *ppObj)
23
24 Looking at the wine source for itss, itss.c and itss.h, four of these functions are implemented,
25 while the DllRegisterServer function just a "fixme" and DllUnregisterServer does not exist at all.
26 I think the best way to go about testing the functionality of the dll will be to write a program that
27 utilizes the higher level components of the HTML Help system, which will in turn rely on itss.dll.
28 Specifically we might try creating HTML Help files and performing operations on them to test itss
29 functionality.
|