home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-16 | 48.6 KB | 1,377 lines |
- <html>
-
- <head>
- <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
- <title>ATL Object Wizard</title>
- </head>
-
- <body bgcolor="#FFFFFF">
-
- <p><font size="2">All wizard directives are enclosed in
- [!
].</font></p>
-
- <p><font size="2"><b>SYMBOLS</b> are denoted in uppercase.</font></p>
-
- <p><font size="2">The wizard is case sensitive.</font></p>
-
- <p><font size="2">The arguments to the wizard directives should
- be between ( ).</font></p>
-
- <p><font size="4"><b><u>Wizard Directives.</u></b></font></p>
-
- <p><font size="2"><b>SYMBOL</b></font></p>
-
- <blockquote>
- <p><font size="2">Replaces the symbol with the value of the
- symbol.</font></p>
- </blockquote>
-
- <p><font size="2"><b>if(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Wizard ignores whatever is after this
- statement till it finds an <b>else</b> or <b>endif</b>
- directive if it does not find the symbol in its map. It does
- not care for the value of the symbol.</font></p>
- </blockquote>
-
- <p><font size="2"><b>if!(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Wizard ignores whatever is after this
- statement till it finds an <b>else</b> or <b>endif</b>
- directive if it finds the symbol in its map. It does not care
- for the value of the symbol.</font></p>
- </blockquote>
-
- <p><font size="2"><b>if=(SYMBOL, "</b><b><i>value"</i></b><b>)</b></font></p>
-
- <blockquote>
- <p><font size="2">Wizard performs the directives after this
- statement till it finds an <b>else</b> or <b>endif</b>
- directive only if the value of the symbol matches the string.</font></p>
- </blockquote>
-
- <p><font size="2"><b>if!=(SYMBOL, "</b><b><i>value"</i></b><b>)</b></font></p>
-
- <blockquote>
- <p><font size="2">Wizard performs the directives after this
- statement till it finds an <b>else</b> or <b>endif</b>
- directive only if the value of the symbol does not match the
- string.</font></p>
- </blockquote>
-
- <p><font size="2"><b>endif</b></font></p>
-
- <blockquote>
- <p><font size="2">Indicates the end of the if directives.</font></p>
- </blockquote>
-
- <p><font size="2"><b>else</b></font></p>
-
- <blockquote>
- <p><font size="2">Used with if directives to associate
- directives when the condition fails.</font></p>
- </blockquote>
-
- <p><font size="2"><b>crlf</b></font></p>
-
- <blockquote>
- <p><font size="2">Inserts a new line in the output file.</font></p>
- </blockquote>
-
- <p><font size="2"><b>outputoff</b></font></p>
-
- <blockquote>
- <p><font size="2">Turns off the output of the processed file.</font></p>
- </blockquote>
-
- <p><font size="2"><b>outputon</b></font></p>
-
- <blockquote>
- <p><font size="2">Turns on the output of the processed file.</font></p>
- </blockquote>
-
- <p><font size="2"><b>set(SYMBOL, "</b><b><i>value"</i></b><b>)</b></font></p>
-
- <blockquote>
- <p><font size="2">Sets the value of the symbol in the map of
- symbols. If the symbol is not in the map then it is added to
- the map.</font></p>
- </blockquote>
-
- <p><font size="2"><b>RemoveSymbol (SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Removes the symbol from the internal map.</font></p>
- </blockquote>
-
- <p><font size="2"><b>include(FILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Parses the contents of the specified file
- and add the parsed contents to the outputfile. It should be
- included after a target directive.</font></p>
- </blockquote>
-
- <p><font size="2"><b>target() or target(FILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Specifies that further output should be
- sent to the specified file if one is suggested. Use the
- include directive to add contents of a template file in to
- the output file after processing it.</font></p>
- </blockquote>
-
- <blockquote>
- <p><font size="2">When specified without a filename it closes
- the current outputfile.</font></p>
- <p><font size="2">Before processing the file this Sets a
- symbol FileExists to "TRUE" or "FALSE"
- depending on whether the target file already exists.</font></p>
- <p><font size="2">Example :</font></p>
- <p><font size="2">target(CPPFILE)</font></p>
- <p><font size="2">include(CPPTEMPLATE)</font></p>
- <p><font size="2">target()</font></p>
- <p><font size="2">The above directives assume that CPPFILE
- and CPPTEMPLATE symbols point to valid filenames. The first
- directive target(CPPFILE) specifies that further output
- should be sent to the specified file. The
- include(CPPTEMPLATE) directive specifies that the template
- file specified by CPPTEMPLATE should be processed by the
- wizard and the processed contents sent to the current output
- file. The last directive target() specifies that the current
- output file should be closed. At this point there is not
- current output file.</font></p>
- </blockquote>
-
- <p><font size="2"><b>newguid(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Directive creates a new guid and puts its
- value into the specified SYMBOL</font></p>
- </blockquote>
-
- <p><font size="2"><b>CopyFile(EXISTINGFILENAME, NEWFILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Copies existing file to a new file</font></p>
- </blockquote>
-
- <p><font size="2"><b>DeleteFile(FILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Deletes the file</font></p>
- </blockquote>
-
- <p><font size="2"><b>GetTemporaryFileName(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Uses system calls to create a temporary
- filename and sets the symbol to the value.</font></p>
- </blockquote>
-
- <p><font size="2"><b>DoubleSlash(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds a \ after an existing \ to the value
- of the symbol. This will be useful when adding headers files
- with a path in them.</font></p>
- </blockquote>
-
- <blockquote>
- <p><font size="2">Example</font></p>
- <p><font size="2">INCLUDEFILESTRING has value of
- "..\include\headerfile.h"</font></p>
- <p><font size="2">After the following directive is executed </font></p>
- <p><font size="2">DoubleSlash(INCLUDEFILESTRING)</font></p>
- <p><font size="2">INCLUDEFILESTRING will be
- "..\\include\\headerfile.h"</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddInterfaceToIDL(IDLFILENAME, FILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Processes the contents of the specified
- file and adds it to the IDL file assuming that the contents
- in the specified file is information about an Interface.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddCoClassToIDL(IDLFILENAME, FILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Processes the contents of the specified
- file and adds it to the IDL file assuming that the contents
- in the specified file is information about a CoClass.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddToObjectMap(COCLASSNAME, CLASSNAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds a directive to the ObjectMap of
- project associating the CoClass with the class.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddIncludeFile(FILENAME, INCLUDEDIRECTIVE)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the #include preprocessor directive to
- the specified file. INCLUDEDIRECTIVE specifies what follows
- #include. The is added after any existing #include directives
- in the file.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddImportFile(IDLFILENAME, "</b><b><i>value"</i></b><b>)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the import statement line to the
- specified IDL file. Value specifies what to import. This is
- added after any existing import statements in the IDL file</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddSymbolToString(NEWSYMBOL, "</b><b><i>value"</i></b><b>,
- SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Appends the string specified by the symbol
- to the value and associates the resulting value with the
- newsymbol.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddStringToSymbol(NEWSYMBOL, SYMBOL, "</b><b><i>value"</i></b><b>)</b></font></p>
-
- <blockquote>
- <p><font size="2">Appends the value of the symbol specified
- by the second argument to the contents of the string value
- and associates the resulting value with the symbol specified
- as the first argument.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddSymbolToSymbol(SYMBOL1, SYMBOL2)</b></font></p>
-
- <blockquote>
- <p><font size="2">Appends the value of SYMBOL2 to the value
- of SYMBOL1 and associates the resulting string with SYMBOL1</font></p>
- </blockquote>
-
- <p><font size="2"><b>Dialog("</b><b><i>dialog1_progid"</i></b><b>[,"</b><b><i>dialog2_progid"</i></b><b>[,
])</b></font></p>
-
- <blockquote>
- <p><font size="2">Directive allows the user to invoke the
- property pages to allow the user to specify the settings for
- the object being inserted. Specify the ProgID of the
- registered property pages. Please refer to the section on
- property pages for information about registering property
- pages and communicating with the wizard from the property
- page.</font></p>
- </blockquote>
-
- <blockquote>
- <p><font size="2">You can specify a maximum of 9 pages.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddFileToProject(FILENAME)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the file to the project with the
- default build settings.</font></p>
- </blockquote>
-
- <p><font size="2"><b>strcpy(SYMBOL1, SYMBOL2)</b></font></p>
-
- <blockquote>
- <p><font size="2">Copies the value of symbol2 to the symbol1</font></p>
- </blockquote>
-
- <p><font size="2"><b>toupper(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">converts the value of the symbol to upper
- case</font></p>
- </blockquote>
-
- <p><font size="2"><b>tolower(SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Converts the value of symbol to lower case</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddRegistryToRC(RGSFILENAME, ID_RGS)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the specified RGS file into the
- resources as type REGISTRY with the specified ID.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddStringResource(ID_OF_STRING, SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds a string resource with the specified
- ID to the RC file. The values of the string will be the value
- of the symbol.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddResourceFromFile(FILE, ID_RESOURCE,
- RESOURCETYPE)</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the contents of the specified file to
- the RC file under the correct resource type with the
- specified ID</font></p>
- </blockquote>
-
- <p><font size="2"><b>Debug ()</b></font></p>
-
- <blockquote>
- <p><font size="2">If this directive is added to the .CTL file
- the wizard displays the directive that failed in case of a
- failure.</font></p>
- </blockquote>
-
- <p><font size="2"><b>Error ("error message")</b></font></p>
-
- <blockquote>
- <p><font size="2">Use this directive to terminate the wizard.
- It displays the error message before terminating.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddToMap(CLASSNAME, "map",
- "map entry", "#of parameters" [,
- "parameter1" [,...]])</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds an entry to the specified map in the
- given class.</font></p>
- </blockquote>
-
- <blockquote>
- <p><font size="2"><b>CLASSNAME</b> specifies the class
- that contains the map</font></p>
- <p><font size="2"><b>map name </b> name of the map to
- add the entry to.</font></p>
- <p><font size="2"><b>map entry</b> the type of entry</font></p>
- <p><font size="2"><b>#of parameters</b> number of
- parameters in the entry.</font></p>
- <p><font size="2"><b>parameter1, ...</b> parameters to
- the entry. Max of 5 parameters.</font></p>
- <p><font size="2"><strong><u>Example.</u></strong></font></p>
- <p><font size="2">AddToMap(CONTROLCLASS, "COM",
- " COM_INTERFACE_ENTRY", "1",
- "ISomeInterface")</font></p>
- <p><font size="2">This will add the following line to the COM
- map in the class specified by CONTROLCLASS.</font></p>
- <p><font size="2">COM_INTERFACE_ENTRY(ISomeInterface)</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddClassInclude([CLASSNAME |
- "classname"], [INCLUDENAME | "includename"],
- "[h | cpp]")</b></font></p>
-
- <blockquote>
- <p><font size="2">Add the include directive to the header or
- the implementation file associated with a specified class.</font></p>
- <p><font size="2"><b>CLASSNAME or classname </b> the
- class used to determine the file to put the directive in.
- This can be a symbol or a value.</font></p>
- <p><font size="2"><b>INCLUDENAME or includename</b>
- specified what to include</font></p>
- <p><font size="2"><b>h or cpp</b> specifies where to
- put the directive. h specifies the header file for the class.
- cpp specifies implementation file for the class.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddMemberFunction([CLASSNAME |
- "classname"], "function name", "return
- type", "parameters", "access",
- TEMPLATEFILE, "classwizfunc")</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the specified member function to the
- class.</font></p>
- <p><font size="2"><b>CLASSNAME or classname</b> the
- class the function has to be added to.</font></p>
- <p><font size="2"><b>function name</b> name of the
- function to add</font></p>
- <p><font size="2"><b>return type</b> return type of
- the function</font></p>
- <p><font size="2"><b>parameters</b> parameters to the
- function</font></p>
- <p><font size="2"><b>access</b> can be one of the
- following.</font></p>
- <p><font size="2">ACCESS_PUBLIC adds the function as a
- public member function.</font></p>
- <p><font size="2">ACCESS_PROTECTED adds the function
- as a protected member function.</font></p>
- <p><font size="2">ACCESS_PRIVATE adds the function as
- a private member function.</font></p>
- <p><font size="2"><b>TEMPLATEFILE</b> specifies the
- template file that contains the body of the function.</font></p>
- <p><font size="2"><b>classwizfunc</b> indicates if the
- function declaration should be between classwizard comments. </font></p>
- <blockquote>
- <p><font size="2">If this is "0" then it is not
- a function that should be added between classwizard
- comments.<br>
- If it is "1" the it is added between the
- classwizard comments that pertain to virtual <b>functions.<br>
- </b>Any other value add it between the comments
- associated with class wizard message handler comments.</font></p>
- </blockquote>
- </blockquote>
-
- <p><font size="2"><b>AddMemberVariable([CLASSNAME |
- "classname"], "variable name", "variable
- type", "access", "unique variable"[,
- UNIQUEVARSYMBOL])</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the specified member variable to the
- class.</font></p>
- <p><font size="2"><b>CLASSNAME</b> or classname the
- class the variable has to be added to.</font></p>
- <p><font size="2"><b>variable name</b> name of the
- variable to add</font></p>
- <p><font size="2"><b>variable type</b> type of variable</font></p>
- <p><font size="2"><b>access</b> can be one of the
- following.</font></p>
- <blockquote>
- <p><font size="2">ACCESS_PUBLIC adds the function
- as a public member variable.</font></p>
- <p><font size="2">ACCESS_PROTECTED adds the
- function as a protected member variable</font></p>
- <p><font size="2">ACCESS_PRIVATE adds the function
- as a private member variable.</font></p>
- </blockquote>
- <p><font size="2"><b>unique variable</b> indicates
- whether the variable has to be an unique symbol.</font></p>
- <blockquote>
- <p><font size="2">"1" indicates that the symbol
- has to be unique. requires the next parameter.</font></p>
- <p><font size="2">other values indicate that if a
- variable is already present then do nothing. Does not
- require the next parameter.</font></p>
- </blockquote>
- <p><font size="2"><b>UNIQUEVARSYMBOL</b> If a unique
- symbol first checks to see if the variable is already a
- member of the class. If not it add the variable and sets this
- symbol to value passed in. If the variable already exists
- then the wizard adds numbers after the given variable name
- till it finds a value that is unique and adds the variable to
- the class. On return this symbol will contain the value that
- was created and inserted into the class.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddToMemberFunction([CLASSNAME |
- "classname"], function, TEMPLATEFILE, SYMBOL,
- SEARCHTYPE[, "search criteria"])</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds code to a function depending onto
- search. When a string search fails the code is added to the
- end of the function.</font></p>
- <p><font size="2"><b>CLASSNAME or classname</b> the
- class the function is a member of. Use NULL for global
- functions.</font></p>
- <p><font size="2"><b>function</b> function to add code
- to.</font></p>
- <p><font size="2"><b>TEMPLATEFILE</b> template file
- that contains the code to be inserted.</font></p>
- <p><font size="2"><b>SYMBOL</b> this symbol is set to
- 1 before the template file is processed and then removed
- after the processing is over. This allows a template file to
- contain code for different purposes all of them wrapped in
- different conditionals.</font></p>
- <p><font size="2"><b>SEARCHTYPE</b> can be one of the
- following.</font></p>
- <blockquote>
- <p><font size="2">BEGIN beginning of the function.
- Does not require the next parameter.</font></p>
- <p><font size="2">END end of the function. Does
- not require the next parameter.</font></p>
- <p><font size="2">LINEOFFSET a line offset from
- the beginning of the function. Next parameter is a number
- that gives the offset.</font></p>
- </blockquote>
- <p><font size="2"><b>AFTERSEARCH</b> Inserts on the
- line after the line that contains the search string. Next
- parameter is the string to search for. Search begins at the
- beginning of the function and the first match is used. If
- search fails the string is added to the end of the function.</font></p>
- <p><font size="2"><b>BEFORESEARCH</b> Inserts on the
- line before the line that contains the search string. Search
- begins at the beginning of the function and the first match
- is used. If search fails the string is added to the end of
- the function.</font></p>
- <p><font size="2"><b>search criteria</b> depends on
- the previous parameter.</font></p>
- </blockquote>
-
- <p><font size="2"><b>AddBaseClass(CLASSNAME, BASECLASS,
- "access")</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds a class as a base class to the
- specified class.</font></p>
- <p><font size="2"><b>CLASSNAME</b> the class to which
- the baseclass is to be added</font></p>
- <p><font size="2"><b>BASECLASS</b> the class to be
- added as the base class</font></p>
- <p><font size="2"><b>access</b> This is ignored. The
- class is added as public.</font></p>
- </blockquote>
-
- <p><font size="2"><b>ExistsMemberFunction([CLASSNAME |
- "classname"], "function prototype", SYMBOL)</b></font></p>
-
- <blockquote>
- <p><font size="2">Checks if a function is a member of the
- specified class.</font></p>
- <p><font size="2"><b>CLASSNAME or classname</b> The
- class that should contain the member function. Use NULL for
- global functions.</font></p>
- <p><font size="2"><b>function prototype</b> prototype
- of the function to check</font></p>
- <p><font size="2"><b>SYMBOL</b> this symbol is set to
- "1" if the function is a member otherwise it is set
- to "0".</font></p>
- </blockquote>
-
- <p><font size="2"><strong>ExistsInMemberFunction([CLASSNAME |
- "classname"], "function prototype",
- "search string", SYMBOL)</strong></font></p>
-
- <blockquote>
- <p><font size="2">Checks if a function contains the specified
- string.</font></p>
- <p><font size="2"><b>CLASSNAME or classname </b> the
- class the function is a member of. Use NULL for global
- functions.</font></p>
- <p><font size="2"><b>function prototype</b> prototype
- of the function to search in.</font></p>
- <p><font size="2"><b>search string</b> string to
- search for</font></p>
- <p><font size="2"><b>SYMBOL</b> this symbol is set to
- "1" if the search succeeds otherwise it is set to
- "0".</font></p>
- </blockquote>
-
- <p><font size="2"><b>IDLSettingsForATL()</b></font></p>
-
- <blockquote>
- <p><font size="2">Modifies the settings for an IDL/ODL
- already in the project to match the settings required for
- using ATL in the project.</font></p>
- </blockquote>
-
- <p><font size="2"><b>OpenDialog(DIALOGID)</b></font></p>
-
- <blockquote>
- <p><font size="2">Opens a dialog in the dialog editor after
- the wizard exists.</font></p>
- </blockquote>
-
- <blockquote>
- <p><font size="2"><b>DIALOGID</b> the id of the dialog
- to open.</font></p>
- </blockquote>
-
- <p><font size="2"><b>Commit()</b></font></p>
-
- <blockquote>
- <p><font size="2">Commits changes made by the wizard till
- that point. Changes made before this directive will not
- undone if the wizard fails after this directive. This
- directive commits all the changes before it so the changes
- can be accessed in the wizard. This is used by the Dialog
- wizard to open the dialog resource. Any change made by the
- wizard will not be accessible in the wizard till they are
- committed by this directive.</font></p>
- </blockquote>
-
- <p><font size="4"><b><u>PropertyPages</u></b></font></p>
-
- <p><font size="2">Property pages can be created to allow
- customization of the object being inserted. The wizard creates a
- property sheet using the OleCreatePropertyFrame API. The property
- pages that are displayed using this property sheet should support
- the IPropertyPage interface.</font></p>
-
- <p><font size="2">Property pages can communicate with the wizard
- using the ISymbolMap interface implemented by the wizard. </font></p>
-
- <p><font size="3"><b>ISymbolMap</b></font></p>
-
- <p><font size="2">In addition to the IUnknown methods it
- implements the following.</font></p>
-
- <p><font size="2"><b>HRESULT Set(/* [in] */ LPCOLESTR strSymbol,
- /* [in] */ LPCOLESTR strValue);</b></font></p>
-
- <blockquote>
- <p><font size="2">Adds the symbol string pair to the internal
- map of the wizard</font></p>
- </blockquote>
-
- <blockquote>
- <p><font size="2">Returns S_OK</font></p>
- </blockquote>
-
- <p><font size="2"><b>HRESULT Get(/* [in] */ LPCOLESTR strSymbol,
- /* [retval][out] */ BSTR *pstrValue);</b></font></p>
-
- <blockquote>
- <p><font size="2">Retrieves the value associated with the
- specified symbol. If the call is successful pstrValue will
- point to a BSTR which is allocated using SysAllocString. The
- caller should free this string using SysFreeString</font></p>
- <p><font size="2">Returns S_OK if it finds the symbol. E_FAIL
- if the symbol is not found.</font></p>
- </blockquote>
-
- <p><font size="2"><b>HRESULT STDMETHODCALLTYPE Clear(void) ;</b></font></p>
-
- <blockquote>
- <p><font size="2">Clears all the internal map of the wizard
- of all symbols.</font></p>
- </blockquote>
-
- <p><font size="2"><b>HRESULT SetStatus(const CLSID *pclsid, BOOL
- bEnableOK);</b></font></p>
-
- <blockquote>
- <p><font size="2">Allows each individual property pages to
- specify if the OK button can be enabled to allow the user to
- complete their selections. This is useful when the OK button
- has to be disabled till the user has entered some required
- values.</font></p>
- <p><font size="2"><strong>pcslid</strong> points to the CLSID
- of the property page that is calling this method. </font></p>
- <p><font size="2"><strong>bEnableOK</strong> specifies
- whether the OK button should be enable or disabled. TRUE
- specifies enable.</font></p>
- </blockquote>
-
- <p><font size="2">ISymbolMap can be obtained by Querying the
- IUnknown passed through SetObjects method of IPropertyPage.</font></p>
-
- <p><font size="4"><b><u>Existing Property Pages</u></b></font></p>
-
- <p><font size="2">Following are some of the existing property
- pages.</font></p>
-
- <p><font size="2"><b><u>Names Property Page</u></b></font></p>
-
- <p><font size="2">Sets the following symbols. ProgID is
- "Names98". The symbol ComponentType controls
- enabling/disabling controls. This is a string with each character
- representing the field in the tab order. Each char should be
- either 0 or 1.</font></p>
-
- <p><font size="2"></font> </p>
-
- <table border="1" cellpadding="9" width="100%"
- bordercolor="#000000">
- <tr>
- <td valign="top" width="32%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Symbol</b></font></td>
- <td valign="top" width="68%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Contents of field on the
- Property Page that is used for value</b></font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ShortName </font></td>
- <td valign="top" width="68%"><font size="2">Short Name</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ClassName</font></td>
- <td valign="top" width="68%"><font size="2">Class</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">HeaderName</font></td>
- <td valign="top" width="68%"><font size="2">.H File</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">CPPName</font></td>
- <td valign="top" width="68%"><font size="2">.CPP File</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">CoClassName</font></td>
- <td valign="top" width="68%"><font size="2">CoClass</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">InterfaceName</font></td>
- <td valign="top" width="68%"><font size="2">Interface</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">TypeName</font></td>
- <td valign="top" width="68%"><font size="2">Type</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ProgID</font></td>
- <td valign="top" width="68%"><font size="2">ProgID with a
- .1 appended</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">VersionIndependentProgID</font></td>
- <td valign="top" width="68%"><font size="2">ProgId</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ObjectGUID</font></td>
- <td valign="top" width="68%"><font size="2">None. A new
- GUID is generated and its value is used.</font></td>
- </tr>
- </table>
-
- <p><font size="2"><b><u>Miscellaneous Property Page</u></b></font></p>
-
- <p><font size="2">Sets the following Symbols. ProgID is
- "CtlDlg98"</font></p>
-
- <table border="1" cellpadding="9" width="100%"
- bordercolor="#000000">
- <tr>
- <td valign="top" width="32%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Symbol</b></font></td>
- <td valign="top" width="68%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Contents of field on the
- Property Page that is used for value</b></font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">WindowedOnlyEnabled</font></td>
- <td valign="top" width="68%"><font size="2">Windowed
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">InsertableEnabled</font></td>
- <td valign="top" width="68%"><font size="2">Insertable
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">NormalizeDCEnabled</font></td>
- <td valign="top" width="68%"><font size="2">Normalize DC
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">Opaque</font></td>
- <td valign="top" width="68%"><font size="2">Opaque (TRUE
- or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">SolidBackground</font></td>
- <td valign="top" width="68%"><font size="2">SolidBackground
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">MiscStatus</font></td>
- <td valign="top" width="68%"><font size="2">Misc setting
- fields</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">SubclassWindow</font></td>
- <td valign="top" width="68%"><font size="2">Subclass
- Combobox selection</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">SubclassWindowSymbol</font></td>
- <td valign="top" width="68%"><font size="2">Subclass
- Combobox selection without those characters that cannot
- be used in an identifier.</font></td>
- </tr>
- </table>
-
- <p><font size="2"><b><u>Attributes Property Page</u></b></font></p>
-
- <p><font size="2">Sets the following Symbols. ProgID is
- "ObjDlg98"</font></p>
-
- <p><font size="2">The symbol Attributes controls
- enabling/disabling controls. This is a string with each character
- representing the field in the tab order. Each char should be
- either 0 or 1.</font></p>
-
- <table border="1" cellpadding="9" width="100%"
- bordercolor="#000000">
- <tr>
- <td valign="top" width="32%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Symbol</b></font></td>
- <td valign="top" width="68%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Contents of field on the
- Property Page that is used for value</b></font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">FreeThreadedMarshaler</font></td>
- <td valign="top" width="68%"><font size="2">FreeThreadedMarshaler
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ErrorInfoEnabled</font></td>
- <td valign="top" width="68%"><font size="2">ErrorInfo
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ConnectionPointsEnabled</font></td>
- <td valign="top" width="68%"><font size="2">ConnectionPoints
- (TRUE or FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">Dual</font></td>
- <td valign="top" width="68%"><font size="2">Dual (TRUE or
- FALSE)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">ThreadingModel</font></td>
- <td valign="top" width="68%"><font size="2">ThreadingModel
- (Single, Apartment, Both, Free)</font></td>
- </tr>
- <tr>
- <td valign="top" width="32%"><font size="2">Aggregatable</font></td>
- <td valign="top" width="68%"><font size="2">Aggregatable
- (YES, NO, ONLY)</font></td>
- </tr>
- </table>
-
- <p><font size="4"><b><u>Registry entries.</u></b></font></p>
-
- <p><font size="2">The following keys are added to the registry
- under the </font></p>
-
- <p><font size="2">HKCU\Software\Microsoft\ATLWizard</font></p>
-
- <p><font size="2">{GUID} </font></p>
-
- <p><font size="2">Category REG_SZ
- "<Category>"</font></p>
-
- <p><font size="2">Control REG_SZ "<File
- name>"</font></p>
-
- <p><font size="2">Icon REG_SZ "File Name>"</font></p>
-
- <p><font size="2">Name REG_SZ "<Name>"</font></p>
-
- <p><font size="2">{GUID} a GUID for your component. This
- is not associated with anything else. A GUID is used to get a
- unique name</font></p>
-
- <p><font size="2">Category specifies the category under
- which the component should appear. </font></p>
-
- <p><font size="2">Control name of the control file that
- has directives for the component. It is normally a .CTL file.</font></p>
-
- <p><font size="2">Icon Name of the file that contains the
- Icon for the component.</font></p>
-
- <p><font size="2">Name Name of the component.</font></p>
-
- <p><font size="2">Register the property page. The wizard loads
- the property page using its ProgID specified in the directive
- file.</font></p>
-
- <p><b><u>Symbols set by the Wizard before invoking the control
- file.</u></b></p>
-
- <table border="1" cellpadding="9" width="100%"
- bordercolor="#000000">
- <tr>
- <td valign="top" width="29%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Symbol</b></font></td>
- <td valign="top" width="71%" bgcolor="#808080"><font
- color="#FFFFFF" size="2"><b>Value</b></font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">LibName</font></td>
- <td valign="top" width="71%"><font size="2">Name of the
- typelib in the .IDL file for the project</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">LibGUID</font></td>
- <td valign="top" width="71%"><font size="2">GUID of the
- typelib</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">GalleryPath</font></td>
- <td valign="top" width="71%"><font size="2">Points to the
- directory that contains the template files</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectName</font></td>
- <td valign="top" width="71%"><font size="2">Name of the
- project</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectNameCPP</font></td>
- <td valign="top" width="71%"><font size="2">Name of the
- project cpp file. (projectname.cpp)</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectType</font></td>
- <td valign="top" width="71%"><font size="2">type of
- project. EXE or DLL</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectAppID</font></td>
- <td valign="top" width="71%"><font size="2">the AppID of
- the local server it the project is of type EXE. Otherwise
- not set</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectNameRC</font></td>
- <td valign="top" width="71%"><font size="2">Name of the
- RC file for the project. (Projectname.rc)</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectNameHeader</font></td>
- <td valign="top" width="71%"><font size="2">Name of the
- project header. (Projectname.h)</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">VCINCDIR</font></td>
- <td valign="top" width="71%"><font size="2">Points to vc
- include directory</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">NULLSTR</font></td>
- <td valign="top" width="71%"><font size="2">set to
- ""</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">VC</font></td>
- <td valign="top" width="71%"><font size="2">Set to 6.0 in
- VC 6.0</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">STDAFXH</font></td>
- <td valign="top" width="71%"><font size="2">Set to
- stdafx.h</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">stdafx.h</font></td>
- <td valign="top" width="71%"><font size="2">Set stdafx.h</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">STDAFXCPP</font></td>
- <td valign="top" width="71%"><font size="2">Set to
- stdafx.cpp</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">stdafx.cpp</font></td>
- <td valign="top" width="71%"><font size="2">Set to
- stdafx.cpp</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ObjectMap</font></td>
- <td valign="top" width="71%"><font size="2">Set to 1 if
- object map is found. otherwise symbol is not available</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectDirectory</font></td>
- <td valign="top" width="71%"><font size="2">Projects
- directory</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">IDLProject</font></td>
- <td valign="top" width="71%"><font size="2">Name of the
- IDL/ODL file for the project. Set to "" if the
- project does not have an IDL/ODL</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectHadIDL</font></td>
- <td valign="top" width="71%"><font size="2">Set to TRUE
- if the project has IDL/ODL file. Otherwise the symbol is
- not available.</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">CWinApp</font></td>
- <td valign="top" width="71%"><font size="2">If the
- project is MFC then this SYMBOL contains the name of the
- CWinApp derived class otherwise set to ""</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">MFC</font></td>
- <td valign="top" width="71%"><font size="2">Set to
- "1" for MFC projects. Otherwise not available</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">MFCCTL</font></td>
- <td valign="top" width="71%"><font size="2">Set to
- "1" if the project is a MFC control project.
- otherwise set to "0"</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">MFCOLE</font></td>
- <td valign="top" width="71%"><font size="2">Set to
- "1" if MFC project is MFC control project.
- Otherwise not available.</font></td>
- </tr>
- <tr>
- <td valign="top" width="29%"><font size="2">ProjectNameSafe</font></td>
- <td valign="top" width="71%"><font size="2">If the
- project name contains characters that cannot be used as
- an identifier the this symbol contain the project name
- after removing such characters.</font></td>
- </tr>
- </table>
-
- <p><font size="2"></font> </p>
-
- <p><font size="4"><b>Sample Registry files.</b></font></p>
-
- <pre><b>.RGS file for the wizard.</b></pre>
-
- <pre><font size="3">HKCR
- {
- ATLOBJ.ATLWiz = s 'ATL Object Wizard'
- {
- CurVer = s 'ATLOBJ.ATLWiz.1'
- CLSID = s '{2EF12E30-3C3B-11d1-AFA9-00C04FB99436}'
- }
- ATLOBJ.ATLWiz.1 = s 'ATL Object Wizard'
- {
- CLSID = s '{2EF12E30-3C3B-11d1-AFA9-00C04FB99436}'
- }
- NoRemove CLSID
- {
- ForceRemove {2EF12E30-3C3B-11d1-AFA9-00C04FB99436} = s 'ATL Object Wizard'
- {
- ProgID = s 'ATLOBJ.ATLWiz.1'
- VersionIndependentProgID = s 'ATLOBJ.ATLWiz'
- InprocServer32 = s '%Module%'
- }
- }
- }
- HKLM
- {
- Software
- {
- Microsoft
- {
- DevStudio
- {
- 6.0
- {
- ATLWizard
- {
- '{6E871954-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Control' = s 'object.ctl'
- val 'Icon' = s 'object.ico'
- val 'Name' = s 'Simple Object'
- }
- '{6E871955-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Name' = s 'Add-in Object'
- val 'Control' = s 'addin.ctl'
- val 'Icon' = s 'addin.ico'
- }
- '{6E871956-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Name' = s 'Internet Explorer Object'
- val 'Control' = s 'ieuiless.ctl'
- val 'Icon' = s 'iexplore.ico'
- }
- '{6E871957-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Name' = s 'ActiveX Server Component'
- val 'Control' = s 'asp.ctl'
- val 'Icon' = s 'asp.ico'
- }
- '{6E871960-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Name' = s 'MS Transaction Server Component'
- val 'Control' = s 'msdtx.ctl'
- val 'Icon' = s 'msdtx.ico'
- }
- '{6E871961-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Name' = s 'Component Registrar Object'
- val 'Control' = s 'compreg.ctl'
- val 'Icon' = s 'compreg.ico'
- }
- '{6E871958-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'Full Control'
- val 'Control' = s 'control.ctl'
- val 'Icon' = s 'control.ico'
- }
- '{6E871959-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'Lite Control'
- val 'Control' = s 'control.ctl'
- val 'Icon' = s 'iexplore.ico'
- val 'SetSymbol' = s 'IEControl'
- }
- '{6E87195D-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'Composite Control'
- val 'Control' = s 'control.ctl'
- val 'Icon' = s 'compsite.ico'
- val 'SetSymbol' = s 'CompositeControl'
- }
- '{6E871962-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'HTML Control'
- val 'Control' = s 'control.ctl'
- val 'Icon' = s 'HTML.ico'
- val 'SetSymbol' = s 'HTMLControl'
- }
- '{6E87195A-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'Property Page'
- val 'Control' = s 'proppage.ctl'
- val 'Icon' = s 'proppage.ico'
- }
- '{6E87195B-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Miscellaneous'
- val 'Control' = s 'dialog.ctl'
- val 'Icon' = s 'dialog.ico'
- val 'Name' = s 'Dialog'
- }
- '{6E87195E-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Objects'
- val 'Control' = s 'snapin.ctl'
- val 'Icon' = s 'snapin.ico'
- val 'Name' = s 'MMC SnapIn'
- }
- '{6E87195C-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Data Access'
- val 'Name' = s 'Provider'
- val 'Control' = s 'provider.ctl'
- val 'Icon' = s 'provider.ico'
- }
- '{6E87195F-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Data Access'
- val 'Name' = s 'Consumer'
- val 'Control' = s 'consumer.ctl'
- val 'Icon' = s 'consumer.ico'
- }
- '{6E871963-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'Lite Composite Control'
- val 'Control' = s 'control.ctl'
- val 'Icon' = s 'compsite.ico'
- val 'SetSymbol' = s 'CompositeControl,IEControl'
- }
- '{6E871964-50AD-11D0-883E-080000185165}'
- {
- val 'Category' = s 'Controls'
- val 'Name' = s 'Lite HTML Control'
- val 'Control' = s 'control.ctl'
- val 'Icon' = s 'HTML.ico'
- val 'SetSymbol' = s 'HTMLControl,IEControl'
- }
- }
- }
- }
- }
- }
- }</font></pre>
-
- <p><font size="3">.RGS file for Names property page.</font></p>
-
- <pre><font size="3">HKCR
- {
- Names98.Names98 = s 'Names98 Class'
- {
- CurVer = s 'Names98.Names98.1'
- CLSID = s '{53FCBC28-5015-11d1-AFC7-00C04FB99436}'
- }
- Names98.Names98.1 = s 'Names98 Class'
- {
- CLSID = s '{53FCBC28-5015-11d1-AFC7-00C04FB99436}'
- }
- NoRemove CLSID
- {
- ForceRemove {53FCBC28-5015-11d1-AFC7-00C04FB99436} = s 'Names98 Class'
- {
- InprocServer32 = s '%MODULE%'
- {
- val ThreadingModel = s 'Apartment'
- }
- }
- }
- }
- </font></pre>
-
- <p><font size="3"><b><u>Smaple Property Page code</u></b></font></p>
-
- <p><font size="2"><b>.H File</b></font></p>
-
- <pre><font size="3">// testpg.h : Declaration of the Ctestpg
-
- #ifndef __TESTPG_H_
- #define __TESTPG_H_
-
- #include "resource.h" // main symbols
-
- EXTERN_C const CLSID CLSID_testpg;
-
- /////////////////////////////////////////////////////////////////////////////
- // Ctestpg
- class ATL_NO_VTABLE Ctestpg :
- public CComObjectRootEx<CComSingleThreadModel>,
- public CComCoClass<Ctestpg, &CLSID_testpg>,
- public IPropertyPageImpl<Ctestpg>,
- public CDialogImpl<Ctestpg>
- {
- public:
- Ctestpg()
- {
- m_dwTitleID = IDS_TITLEtestpg;
- m_dwHelpFileID = IDS_HELPFILEtestpg;
- m_dwDocStringID = IDS_DOCSTRINGtestpg;
- }
-
- enum {IDD = IDD_TESTPG};
-
- DECLARE_REGISTRY_RESOURCEID(IDR_TESTPG)
-
- BEGIN_COM_MAP(Ctestpg)
- COM_INTERFACE_ENTRY_IMPL(IPropertyPage)
- END_COM_MAP()
-
- BEGIN_MSG_MAP(Ctestpg)
- COMMAND_ID_HANDLER(IDC_SET, OnSet);
- COMMAND_ID_HANDLER(IDC_GET, OnGet);
- CHAIN_MSG_MAP(IPropertyPageImpl<Ctestpg>)
- END_MSG_MAP()
-
- LRESULT OnSet(short , short nID , HWND hWnd, BOOL& bHandled)
- {
- CComQIPtr<ISymbolMap, &IID_ISymbolMap> pMap(m_ppUnk[0]);
- if (!pMap)
- return S_OK;
-
- TCHAR szSymbol[128];
- TCHAR szValue[128];
- GetDlgItemText(IDC_SYMBOL, szSymbol, 128);
- GetDlgItemText(IDC_VALUE, szValue, 128);
- pMap->Set(CComBSTR(szSymbol), CComBSTR(szValue));
- return 0;
- }
-
- LRESULT OnGet(short , short nID , HWND hWnd, BOOL& bHandled)
- {
- CComQIPtr<ISymbolMap, &IID_ISymbolMap> pMap(m_ppUnk[0]);
- if (!pMap)
- return S_OK;
-
- TCHAR szSymbol[128];
- GetDlgItemText(IDC_SYMBOL, szSymbol, 128);
- CComBSTR szValue;
- pMap->Get(CComBSTR(szSymbol), &szValue);
- USES_CONVERSION;
- SetDlgItemText(IDC_VALUE, OLE2T(szValue));
-
- return 0;
- }
-
- STDMETHOD(Apply)(void)
- {
- ATLTRACE(_T("Ctestpg::Apply\n"));
- if (m_hWnd == NULL)
- return S_OK;
- CComQIPtr<ISymbolMap, &IID_ISymbolMap> pMap(m_ppUnk[0]);
- if (!pMap)
- return S_OK;
-
- TCHAR szSymbol[128];
- TCHAR szValue[128];
- GetDlgItemText(IDC_SYMBOL, szSymbol, 128);
- GetDlgItemText(IDC_VALUE, szValue, 128);
- pMap->Set(CComBSTR(szSymbol), CComBSTR(szValue));
-
- m_bDirty = FALSE;
- return S_OK;
- }
- };
-
- #endif //__TESTPG_H_
- </font></pre>
-
- <p><font size="2"><b>.rgs</b></font></p>
-
- <pre><font size="3">HKCR
- {
- testpg.testpg.1 = s 'testpg Class'
- {
- CLSID = s '{6992CC0C-472B-11D1-AA8C-000000000000}'
- }
- testpg.testpg = s 'testpg Class'
- {
- CLSID = s '{6992CC0C-472B-11D1-AA8C-000000000000}'
- CurVer = s 'testpg.testpg.1'
- }
- NoRemove CLSID
- {
- ForceRemove {6992CC0C-472B-11D1-AA8C-000000000000} = s 'testpg Class'
- {
- ForceRemove 'Programmable'
- InprocServer32 = s '%MODULE%'
- {
- val ThreadingModel = s 'Apartment'
- }
- }
- }
- }
-
- </font></pre>
-
- <p><font size="2"><b>Dialog resource for the page</b></font></p>
-
- <pre><font size="3">IDD_TESTPG DIALOG DISCARDABLE 0, 0, 271, 105
- STYLE WS_CHILD
- FONT 8, "MS Sans Serif"
- BEGIN
- EDITTEXT IDC_SYMBOL,22,24,40,14,ES_AUTOHSCROLL
- LTEXT "Symbol",IDC_STATIC,22,8,24,8
- LTEXT "Value",IDC_STATIC,87,8,19,8
- EDITTEXT IDC_VALUE,87,24,40,14,ES_AUTOHSCROLL
- PUSHBUTTON "Set",IDC_SET,22,49,40,14
- PUSHBUTTON "Get",IDC_GET,87,49,40,14
- END</font></pre>
-
- <p><font size="2"><b>String resources.</b></font></p>
-
- <pre><font size="2">IDS_TITLEtestpg "Title"</font></pre>
-
- <pre><font size="2">IDS_HELPFILEtestpg "Help File Name"</font></pre>
-
- <pre><font size="2">IDS_DOCSTRINGtestpg "Your Help String"</font></pre>
-
- <h1><font size="3"><strong><u>ISymbolMap</u></strong></font></h1>
-
- <pre>[
- object,
- uuid(C6D58201-1FA3-11D0-BF1E-0000E8D0D146),
- helpstring("ISymbolMap Interface"),
- pointer_default(unique)
- ]
- interface ISymbolMap : IUnknown
- {
- HRESULT Set([in] LPCOLESTR strSymbol, [in] LPCOLESTR strValue);
- HRESULT Get([in] LPCOLESTR strSymbol, [out, retval] BSTR* pstrValue);
- HRESULT Clear();
- HRESULT SetStatus(const CLSID* pclsid, BOOL bEnableOK);
- };</pre>
- </body>
- </html>
-