Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

893 lines
92 KiB

{\rtf1\ansi \deff4\deflang1033{\fonttbl{\f0\froman\fcharset0\fprq2 Tms Rmn;}{\f1\froman\fcharset2\fprq2 Symbol;}{\f2\fswiss\fcharset0\fprq2 Helv;}{\f3\fmodern\fcharset0\fprq1 Courier;}
{\f4\froman\fcharset0\fprq2 Times New Roman;}{\f5\fswiss\fcharset0\fprq2 Arial;}{\f6\froman\fcharset0\fprq2 MS Serif;}{\f7\fswiss\fcharset0\fprq2 MS Sans Serif;}{\f8\froman\fcharset0\fprq2 Times;}{\f9\fswiss\fcharset0\fprq2 Helvetica;}
{\f10\fswiss\fcharset0\fprq2 System;}{\f11\fmodern\fcharset0\fprq1 Courier New;}{\f12\froman\fcharset0\fprq2 New York;}{\f13\fswiss\fcharset0\fprq2 Geneva;}{\f14\froman\fcharset0\fprq2 CG Times;}{\f15\froman\fcharset0\fprq2 CG Times Bold;}
{\f16\froman\fcharset0\fprq2 CG Times Italic;}{\f17\fswiss\fcharset0\fprq2 Univers;}{\f18\fswiss\fcharset0\fprq2 Univers Condensed;}{\f19\fswiss\fcharset0\fprq2 Antique Olive;}{\f20\froman\fcharset0\fprq2 Clarendon Condensed;}
{\f21\fmodern\fcharset0\fprq1 Lucida Console;}{\f22\fnil\fcharset2\fprq2 Wingdings;}{\f23\fswiss\fcharset0\fprq2 Arial Narrow;}{\f24\fswiss\fcharset0\fprq2 Arial Black;}{\f25\froman\fcharset0\fprq2 Book Antiqua;}
{\f26\froman\fcharset0\fprq2 Bookman Old Style;}{\f27\froman\fcharset0\fprq2 Century Schoolbook;}{\f28\fnil\fcharset2\fprq2 Monotype Sorts;}{\f29\fswiss\fcharset0\fprq2 Haettenschweiler;}{\f30\froman\fcharset0\fprq2 Garamond;}
{\f31\fmodern\fcharset2\fprq1 MS LineDraw;}{\f32\froman\fcharset255\fprq2 Roman;}{\f33\fscript\fcharset255\fprq2 Script;}{\f34\fmodern\fcharset255\fprq2 Modern;}{\f35\fswiss\fcharset0\fprq1 MS Dialog;}{\f36\fmodern\fcharset0\fprq1 Fixedsys;}
{\f37\fmodern\fcharset255\fprq1 Terminal;}{\f38\fswiss\fcharset0\fprq2 Small Fonts;}{\f39\fmodern\fcharset161\fprq1 Courier Greek;}{\f40\fswiss\fcharset161\fprq2 MS Sans Serif Greek;}{\f41\froman\fcharset161\fprq2 MS Serif Greek;}
{\f42\fswiss\fcharset161\fprq2 Small Fonts Greek;}{\f43\fswiss\fcharset0\fprq2 MS Dialog Light;}{\f44\fswiss\fcharset0\fprq2 MS SystemEx;}{\f45\fswiss\fcharset0\fprq2 Arial Greek;}{\f46\fswiss\fcharset0\fprq2 HellasArial;}
{\f47\fswiss\fcharset0\fprq0 AvantGarde;}{\f48\froman\fcharset0\fprq0 ITC Bookman;}{\f49\fswiss\fcharset0\fprq0 Helvetica-Narrow;}{\f50\froman\fcharset0\fprq0 NewCenturySchlbk;}{\f51\froman\fcharset0\fprq0 Palatino;}
{\f52\froman\fcharset0\fprq0 ZapfChancery;}{\f53\fdecor\fcharset0\fprq0 ZapfDingbats;}{\f54\fswiss\fcharset0\fprq0 Arial Super;}{\f55\fswiss\fcharset0\fprq0 Century Gothic;}{\f56\fnil\fcharset0\fprq0 Fences;}{\f57\froman\fcharset0\fprq0 Lucida Bright;}
{\f58\fswiss\fcharset0\fprq0 Lucida Sans;}{\f59\fmodern\fcharset0\fprq1 Courier New Greek;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\li360\widctlpar \f4\fs22 \snext0
Normal;}{\s1\li360\sb240\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \sbasedon0\snext0 heading 1;}{\s2\li360\sb240\sa60\keepn\widctlpar \b\i\f5 \sbasedon0\snext0 heading 2;}{\*\cs10 \additive Default Paragraph Font;}{\*\cs15 \additive\fs16 \sbasedon10
annotation reference;}{\s16\li360\widctlpar \f46\fs22\lang2057 \sbasedon0\snext16 annotation text;}{\s17\li360\widctlpar \f4\fs22 \sbasedon0\snext17 footnote text;}{\*\cs18 \additive\super \sbasedon10 footnote reference;}{\s19\fi-360\li360\widctlpar
\f4\fs22 \sbasedon0\snext19 List;}{\s20\li360\sa120\widctlpar \f4\fs22 \sbasedon0\snext20 Body Text;}{\s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \sbasedon1\snext21 funtitle;}{\s22\li360\sb60\sa60\widctlpar \b\f5\fs20 \sbasedon0\snext22
retval;}{\s23\li360\widctlpar\tqc\tx4320\tqr\tx8640 \f4\fs22 \sbasedon0\snext23 header;}{\s24\li360\widctlpar\tqc\tx4320\tqr\tx8640 \f4\fs22 \sbasedon0\snext24 footer;}}{\*\revtbl {Unknown;}{Eric Gunnerson;}{Georgios Papagiannakopoulos;}}{\info{\title Bsc::open}{\author Georgios Papagiannakopoulos}
{\operator Georgios Papagiannakopoulos}{\creatim\yr1995\mo9\dy4\hr13\min19}{\revtim\yr1996\mo2\dy7\hr17\min25}{\printim\yr1995\mo9\dy14\hr19\min14}{\version3}{\edmins13}{\nofpages73}{\nofwords5588}{\nofchars31852}{\*\company Microsoft Corp.}{\vern57431}}
\paperw11909\paperh16834\margl1440\margr1440 \widowctrl\ftnbj\aenddoc\hyphcaps0\formshade \fet0\sectd \psz9\linex0 {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3
\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}
{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain
\s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 {\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Class Bsc}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} bsc_class}+{\footnote
\pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b }0}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} Bsc}} The Bsc Interface
\par \pard\plain \s17\li360\keepn\widctlpar \f4\fs22 {\b\uldb
\par }\pard\plain \li360\widctlpar \f4\fs22 The {\b Bsc }interface provides the functionality for accessing source browser information.
\par
\par Functions starting with the "BSC" prefix are ANSI C bindings of the corresponding BSC Class member functions. (To use the C bindings you need to link your application with a thunk module provided in the BSC toolkit.)
\par
\par Note that the current implementation of the Bsc Interface is not enabled for multithreaded access.
\par
\par {\b Member Function Categories
\par
\par }{\b\uldb\cf2 Operations}{\v\uldb\cf2 group1}{\uldb\cf2
\par }{\cf2
\par }{\b\uldb\cf2 Getting Information}{\v\uldb\cf2 group2}{\uldb\cf2
\par }{\cf2
\par }{\b\uldb\cf2 Handling Instances}{\v\uldb\cf2 group3}{\uldb\cf2
\par }{\cf2
\par }{\b\uldb\cf2 Conversions}{\v\uldb\cf2 group5}{\uldb\cf2
\par }{\cf2
\par }{\b\uldb\cf2 String Operations}{\v\uldb\cf2 group6}{\uldb\cf2
\par }{\cf2
\par }{\b\uldb\cf2 Miscellaneous}{\v\uldb\cf2 group7}{\uldb\cf2
\par }{\cf2
\par }
\par \trowd \trgaph108\trleft-94 \cellx3914\cellx7826 \pard \li360\widctlpar\intbl {\cs18\b\cf2\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} group1}}{\b\cf2 Operations\cell \cell }\pard \widctlpar\intbl {\b\cf2 \row }\trowd
\trgaph108\trleft-94 \cellx3914\cellx7826 \pard \li360\widctlpar\intbl {\b\uldb open}{\v bsc_open}
\par \cell Opens a browser database.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb close}{\v bsc_close}
\par \cell Closes a browser database.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl \cell \cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\cs18\b\cf2\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
group2}}{\b\cf2 Getting Information\cell \cell }\pard \widctlpar\intbl {\b\cf2 \row }\pard \li360\widctlpar\intbl {\b\uldb idefInfo}{\v bsc_idefInfo}\cell Retrieves information about a given symbol definition.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl {\b\uldb iinstInfo}{\v bsc_iinstInfo}\cell Retrieves information about a given symbol instance.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb imodInfo}{\v bsc_imodInfo}\cell
Retrieves information about a given module.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb irefInfo}{\v bsc_irefInfo}\cell Retrieves information about a given symbol reference.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl \cell \cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\cs18\b\cf2\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} group3}}{\b\cf2 Handling Instances\cell \cell }\pard \widctlpar\intbl {
\b\cf2 \row }\pard \li360\widctlpar\intbl {\b\uldb fInstFilter}{\v bsc_fInstFilter}\cell Performs category testing on instances.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getAllGlobalsArray}{\v bsc_getAllGlobalsArray}\cell
Gets all global symbols.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getAllModulesArray}{\v bsc_getAllModulesArray}\cell Gets all module indices.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb
getBaseArray}{\v bsc_getBaseArray}\cell Gets base classes of a (class) symbol instance.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getDefArray}{\v bsc_getDefArray}\cell Gets definitions of a symbol instance.\cell \pard
\widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getDervArray}{\v bsc_getDervArray}\cell Gets derived classes of a (class) symbol instance.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getIinstByvalue}{\v
bsc_getIinstByvalue}\cell Gets index of symbol instance.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getMembersArray}{\v bsc_getMembersArray}\cell Gets members of a class instance.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl {\b\uldb getModuleByName}{\v bsc_getModuleByName}\cell Gets index of module given its name.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getModuleContents}{\v bsc_getModuleContents}\cell
Gets instances contained in a module.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getOverloadArray}{\v bsc_getOverloadArray}\cell Gets symbol instances that match a given name.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl {\b\uldb getRefArray}{\v bsc_getRefArray}\cell Gets references of a symbol instance.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getUsedByArray}{\v bsc_getUsedByArray}\cell
Gets symbols that are "used by" a given instance.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getUsesArray}{\v bsc_getUsesArray}\cell Gets symbols that "use" a given instance.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl \cell \cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\cs18\b\cf2\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} group5}}{\b\cf2 Conversions\cell \cell }\pard \widctlpar\intbl {\b\cf2
\row }\pard \li360\widctlpar\intbl {\b\uldb iinstContextIref}{\v bsc_iinstContextIref}\cell Converts reference index to instance index based on context.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb iinstFrIdef}{\v bsc_iinstFrIdef
}\cell Converts definition index to instance index.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb iinstFrIref}{\v bsc_iinstFrIref}\cell Converts reference index to instance index.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl {\uldb \cell \cell }\pard \widctlpar\intbl {\uldb \row }\pard \li360\widctlpar\intbl {\cs18\b\cf2\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} group6}}{\b\cf2 String operations\cell \cell }\pard
\widctlpar\intbl {\b\cf2 \row }\pard \li360\widctlpar\intbl {\b\uldb formatDname}{\v bsc_formatDname}\cell Formats decorated name.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb szFrAtr}{\v bsc_szFrAtr}\cell
Gets description of attributes.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb szFrTyp}{\v bsc_szFrTyp}\cell Gets description of type.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl \cell \cell \pard
\widctlpar\intbl \row \pard \li360\widctlpar\intbl {\cs18\b\cf2\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} group7}}{\b\cf2 Miscellaneous \cell \cell }\pard \widctlpar\intbl {\b\cf2 \row }\pard \li360\widctlpar\intbl {
\b\uldb disposeArray}{\v bsc_disposeArray}\cell Frees an array that has been allocated by another Bsc function.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb fCaseSensitive}{\v bsc_fCaseSensitive}\cell
Checks case sensitivity of database.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb getModuleStatistics}{\v bsc_getModuleStatistics}\cell Gets statistics about a given module.\cell \pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl {\b\uldb getStatistics}{\v bsc_getStatistics}\cell Gets statistics about the browser database.\cell \pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b\uldb setCaseSensitivity}{\v bsc_setCaseSensitivity}\cell
Overrides case sensitivity of database.\cell \pard \widctlpar\intbl \row \trowd \trgaph108\trleft-94 \cellx3914\cellx7826 \pard \li360\widctlpar\intbl {\cs18\b\cf2\super \cell }\cell \pard \widctlpar\intbl \row \pard\plain
\s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 {\b0\fs22 \page }{\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::open}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_open}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::open}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} open;opening a browser database}} Bsc::open
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b static BOOL open (SZ} {\i szName}{\b ,} {\b OUT} {\b Bsc**} {\i ppbsc}{\b );
\par BOOL BSCOpen (SZ} {\i szName}{\b ,} {\b OUT} {\b Bsc**} {\i ppbsc}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_open}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i szName}\tab Contains a null-terminated string that is the path name to a .bsc file.
\par
\par {\i ppbsc}\tab Points to a Bsc* value that will receive the pointer to the Bsc object.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 Opens the browser database file specified by {\i szName} and creates and creates an associated Bsc object.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if successful; otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::close}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_close}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::close}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCClose;close;closing a browser database}} Bsc::close
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL close();
\par BOOL BSCClose(Bsc *}{\i pbsc}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_close}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 Closes the current database and disposes of any memory the Bsc object may be using.
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20
\par Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if successful; otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::iinstInfo}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #
} bsc_iinstInfo}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::iinstInfo}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCIinstInfo;iinstInfo;instance information;information}} Bsc::iinstInfo
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL iinstInfo(IINST }{\i iinst}{\b , OUT SZ *}{\i psz}{\b , OUT TYP *}{\i ptyp}{\b , OUT ATR *}{\i patr}{\b );
\par BOOL BSCIinstInfo(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , OUT SZ *}{\i psz}{\b , OUT TYP *}{\i ptyp}{\b , OUT ATR *}{\i patr}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_iinstInfo}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i psz}\tab \tab Pointer to an SZ value that will receive a pointer to an internal library buffer containing the name of the symbol instance.
\par
\par {\i ptyp}\tab Pointer to a {\ul TYP}{\v bsc_TYP} value that will receive the type specification of the symbol instance.{\b
\par
\par }patr\tab \tab Pointer to an {\ul ATR}{\v bsc_ATR} value that will receive the attributes of the symbol instance.\tab {\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function retrieves information about a particular instance of a symbol specified by iinst. It retrieves the symbol name and fills in the corresponding type ({\ul TYP}{\v bsc_TYP}) and attribute values. {\b
\par
\par }
The SZ argument is handled in an atypical way. Instead of placing text in a buffer that the caller provides, the library actually fills in a pointer to one of its internal buffers where the symbol name can be found. The SZ pointer is set to point to this
buffer. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to the next library call.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the information was successfully retrieved, otherwise 0.
\par
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::irefInfo}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_irefInfo}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::irefInfo}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCIrefInfo;irefInfo;reference information;information}} Bsc::irefInfo
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL irefInfo(IREF }{\i iref}{\b , OUT SZ *}{\i pszModule}{\b , OUT LINE *}{\i piline}{\b );
\par BOOL BSCIrefInfo(Bsc *}{\i pbsc}{\b , IREF }{\i iref}{\b , OUT SZ *}{\i pszModule}{\b , OUT LINE *}{\i piline}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_irefInfo}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iref}\tab \tab An index that specifies a reference to a symbol instance.
\par
\par {\i psz}\tab \tab Pointer to an SZ value that will receive a pointer to an internal library buffer containing the actual filename of the module where the specific reference is found.
\par
\par {\i piline}\tab Pointer to a LINE value that will receive the line number of the particular instance reference. {\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function retrieves the filename and line number of a particular reference to a symbol instance.{\b
\par
\par }The SZ argument is handled in an atypical way. Instead of placing text in a buffer that the caller provides, the library actually fills in a pointer to one of its internal buffers where the mo
dule name can be found. The SZ pointer is set to point to this buffer. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to the next library call.
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20
\par Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the information was successfully retrieved, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::idefInfo}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_idefInfo}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::idefInfo}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCIdefInfo;idefInfo;definition information;information}} Bsc::idefInfo
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL idefInfo(IDEF }{\i idef}{\b , OUT SZ *}{\i pszModule}{\b , OUT LINE *}{\i piline}{\b );
\par BOOL BSCIdefInfo(Bsc *}{\i pbsc}{\b , IDEF }{\i idef}{\b , OUT SZ *}{\i pszModule}{\b , OUT LINE *}{\i piline}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_idefInfo}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i idef}\tab \tab An index that specifies a definition of a symbol instance.
\par
\par {\i psz}\tab \tab Pointer to an SZ value that will receive a pointer to an internal library buffer containing the actual filename of the module where the specific definition is found.
\par
\par {\i piline}\tab Pointer to a LINE value that will receive the line number of the particular instance definition. {\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function retrieves the filename and line number of a particular definition of a symbol instance.{\b
\par
\par }
The SZ argument is handled in an atypical way. Instead of placing text in a buffer that the caller provides, the library actually fills in a pointer to one of its internal buffers where the module name can be found. The SZ pointer is set to point to this
buffer. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to the next library call.
\par
\par {\b Return Value
\par }Nonzero if the information was successfully retrieved, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::imodInfo}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_imodInfo}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::imodInfo}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCImodInfo;imodInfo;module information;information}} Bsc::imodInfo
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL imodInfo(IMOD }{\i imod}{\b , OUT SZ *}{\i pszModule}{\b );
\par BOOL BSCImodInfo(Bsc *}{\i pbsc}{\b , IMOD }{\i imod}{\b , OUT SZ *}{\i pszModule}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_imodInfo}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i imod}\tab An index that specifies a module in the database.
\par
\par {\i psz}\tab \tab Pointer to an SZ value that will receive a pointer to an internal library buffer containing the actual filename of the module.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function retrieves the filename of a module, given a module index {\i imod}.{\b
\par
\par }
The SZ argument is handled in an atypical way. Instead of placing text in a buffer that the caller provides, the library actually fills in a pointer to one of its internal buffers where the module name can be found. The SZ pointer is set to point to this
buffer. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to the next library call.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the information was successfully retrieved, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::szFrTyp}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_szFrTyp}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::szFrTyp}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCSzFrTyp;szFrTyp;type}} Bsc::szFrTyp
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual SZ szFrTyp(TYP }{\i typ}{\b );
\par SZ BSCSzFrTyp(Bsc *}{\i pbsc}{\b , TYP }{\i typ}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_szFrTyp}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i typ}\tab \tab A {\ul TYP}{\v bsc_TYP} value, specifying the type of an instance.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function provides a string that describes the {\ul type value}{\v bsc_TYP }{\i typ.
\par }
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 A string describing the attributes specified by {\i typ}.
\par szFrTyp returns a pointer to one of its internal buffers where the corresponding string can be found. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to the
next library call.
\par {\i
\par }\pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::szFrAtr}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_szFrAtr}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::szFrAtr}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCSzFrAtr;szFrAtr;type;attributes}} Bsc::szFrAtr
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual SZ szFrAtr(ATR }{\i atr}{\b );
\par SZ BSCSzFrAtr(Bsc *}{\i pbsc}{\b , ATR }{\i atr}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_szFrAtr}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i atr}\tab \tab An {\ul ATR}{\v bsc_ATR} value, specifying zero or more attributes.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function provides a string that describes the {\ul attribute values}{\v bsc_ATR} specified by atr{\i . }The resulting string is a concatenation of the corresponding attribute strings separated by colons.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 A string describing the attributes specified by {\i atr}.
\par szFrAtr returns a pointer to one
of its internal buffers where the corresponding string can be found. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to the next library call.
\par
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getIinstByvalue}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_getIinstByvalue}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc:{\b Bsc::getIinstByvalue}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetIinstByValue;getIinstByvalue;instance}}
Bsc::getIinstByvalue
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getIinstByvalue(SZ }{\i sz}{\b , TYP }{\i typ}{\b , ATR }{\i atr}{\b , OUT IINST *}{\i piinst}{\b );
\par BOOL BSCGetIinstByvalue(Bsc *}{\i pbsc}{\b , SZ }{\i sz}{\b , TYP }{\i typ}{\b , ATR }{\i atr}{\b , OUT IINST *}{\i piinst}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_getIinstByvalue}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i sz}\tab \tab A string that contains a symbol name.
\par
\par {\i typ}\tab \tab Specifies the {\ul type value}{\v bsc_TYP} of a symbol instance.
\par
\par {\i atr}\tab \tab Specifies the {\ul attribute values}{\v bsc_ATR} of a symbol instance.
\par
\par {\i piinst}\tab Points to an IINST value that will receive the index of the symbol instance that matches the given name, type, and attributes.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function retrieves the index of a symbol instance that has the same name, type and attributes as those specified by {\i sz}, {\i typ}, and {\i atr} respectively, and no additional {\ul attribute values}{\v
bsc_ATR} than those specified by {\i atr}.
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20
\par Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the instance index was successfully retrieved, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getOverloadArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getOverloadArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getOverloadArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetOverloadArray;getOverloadArray;overload}} Bsc::getOverloadArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getOverloadArray(SZ }{\i sz}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\b BOOL BSCGetOverloadArray(Bsc *}{\i pbsc}{\b , SZ }{\i sz}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getOverloadArray}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i sz\tab }\tab A string that specifies the search pattern.
\par
\par {\i mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function finds all possible instances that match a given name, such as all members of a given class, all class members having the given name, or all top-level items having the given name.
\par
\par The following are the forms {\i sz} can have and their subsequent action:
\par
\par {\f11 class::}\tab \tab Generates a list of all members of the class.
\par \pard \fi-1800\li2160\widctlpar {\f11 class::mem}\tab Generates a list of all members named {\f11 mem}. It also accepts wildcards, as in {\f11 mem}*, and nested classes (such as {\f11 classA::classB::mem}).
\par \pard \li360\widctlpar {\f11 mem}\tab \tab Generates a list of all members {\f11 mem} in any class or top-level items.
\par
\par The member {\f11 mem} can be a regular member or it can be operator+, operator new, and so forth.
\par
\par The generated list is filtered according to the criteria specified by the {\ul instance type filter}{\v bsc_MBF} ({\i mbf}). The indices of the symbol instances that meet these criteria are placed in an array which can be accessed via the {\i ppinst}
argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getUsedByArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getUsedByArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getUsedByArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetUsedByArray;getUsedByArray;use}}
Bsc::getUsedByArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getUsedByArray(IINST }{\i iinst}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\b BOOL BSCGetUsedByArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getUsedByArray}{\f45\fs16 \tab }{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 Each instance in the database has an associated set of instances that use the given symbol. This function looks for instances that use the symbol instance specified by {\i iinst}
, and meet the type criteria specified by the {\ul instance type filter}{\v bsc_MBF} ({\i mbf}). The indices of the symbol instances that meet these criteria are placed in an array which can be accessed via the {\i ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }Note that this function may be slow since it may have to search a lot of the database.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getUsesArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getUsesArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getUsesArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetUsesArray;getUsesArray;use}}
Bsc::getUsesArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getUsesArray(IINST }{\i iinst}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\b BOOL BSCGetUsesArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getUsesArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 Each instance in the database has an associated set of instances that the given symbol uses. This function looks for instances that are used by the symbol instance specified by {\i iinst}
, and meet the type criteria specified by the {\ul instance type filter}{\v bsc_MBF} ({\i mbf}). The indices of the symbol instances that meet these criteria are placed in an array which can be accessed via the {\i ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getBaseArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getBaseArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getBaseArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetBaseArray;getBaseArray;classes (based and derived)}} Bsc::getBaseArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getBaseArray(IINST }{\i iinst}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\b BOOL BSCGetBaseArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getBaseArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22
Some instances in the browser database could refer to classes that they are based on. This function retrieves the instance indices of classes on which the instance iinst is based. These indices are placed in an array which can be accessed via the {\i
ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getDervArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getDervArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getDervArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetDervArray;getDervArray;classes (based and derived)}} Bsc::getDervArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getDervArray(IINST }{\i iinst}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\b BOOL BSCGetDervArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getDervArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22
Some instances in the browser database could refer to derived classes. This function retrieves the instance indices of classes which derive from the instance iinst. These indices are placed in an array which can be accessed via the {\i ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getMembersArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getMembersArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getMembersArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetMembersArray;getMembersArray;classes (members)}} Bsc::getMembersArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getMembersArray(IINST }{\i iinst}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\b BOOL BSCGetMembersArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getMembersArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function looks for member functions and member variables of the symbol instance specified by {\i iinst}. The indices of the symbol instances that meet the type criteria specified by the {\ul instance type filter}
{\v bsc_MBF} ({\i mbf}) are placed in an array which can be accessed via the {\i ppinst} argument. This array may be empty in case {\i iinst} is not a class
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getDefArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getDefArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getDefArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetDefArray;getDefArray;definition}}
Bsc::getDefArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getDefArray(IINST }{\i iinst}{\b , OUT IDEF **}{\i ppidef}{\b , OUT ULONG *}{\i pcidef}{\b );}
\par {\b BOOL BSCGetDefArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , OUT IDEF **}{\i ppidef}{\b , OUT ULONG *}{\i pcidef}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getDefArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 {\b0\i\f4\fs22 iinst}{\f4\fs22 \tab }{\b0\f4\fs22 An index that specifies a symbol instance.}{\f4\fs22
\par }\pard\plain \li360\widctlpar \f4\fs22
\par {\i ppidef}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pcidef}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22
Each instance in the database has an associated set of definitions and references, which also are tracked using index variables (IDEF and IREF). This function retrieves the set of definition index values of the instance iinst. These indices are placed in
an array which can be accessed via the {\i ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getRefArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getRefArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getRefArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetRefArray;getRefArray;reference}}
Bsc::getRefArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getRefArray(IINST }{\i iinst}{\b , OUT IREF **}{\i ppiref}{\b , OUT ULONG *}{\i pciref}{\b );}
\par {\b BOOL BSCGetRefArray(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , OUT IREF **}{\i ppiref}{\b , OUT ULONG *}{\i pciref}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getRefArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst}\tab An index that specifies a symbol instance.
\par
\par {\i ppiref}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciref}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22
Each instance in the database has an associated set of definitions and references, which also are tracked using index variables (IDEF and IREF). This function retrieves the set of reference index values of the instance iinst. These indices are placed in a
n array which can be accessed via the {\i ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getModuleContents}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getModuleContents}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getModuleContents}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetModuleContents;getModuleContents;module}} Bsc::getModuleContents
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getModuleContents(IMOD }{\i imod}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );
\par BOOL BSCGetModuleContents(Bsc *}{\i pbsc}{\b , IMOD }{\i imod}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_getModuleContents}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i imod}\tab An index that specifies a module.
\par
\par {\i mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function looks for instances that are contained in the module {\i imod}, and meet the type criteria specified by the {\ul instance type filter}{\v bsc_MBF} ({\i mbf}
). The indices of the symbol instances that meet these criteria are placed in an array which can be accessed via the {\i ppinst} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getModuleByName}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getModuleByName}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getModuleByName}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetModuleByName;getModuleByName;module}}
Bsc::getModuleByName
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getModuleByName(SZ }{\i sz}{\b , OUT IMOD *}{\i pimod}{\b );
\par BOOL BSCGetModuleByName(Bsc *}{\i pbsc}{\b , SZ }{\i sz}{\b , OUT IMOD *}{\i pimod}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_getModuleByName}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i sz}\tab \tab String containing a module name.
\par
\par {\i pimod}\tab Points to an IMOD value that will receive the module index.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function retrieves the module index given a module name.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the module index of the given module was found, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getAllModulesArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getAllModulesArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getAllModulesArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetAllModulesArray;getAllModulesArray;module}} Bsc::getAllModulesArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getAllModulesArray(OUT IMOD **}{\i ppimod}{\b , OUT ULONG *}{\i pcimod}{\b );}
\par {\b BOOL BSCGetAllModulesArray(Bsc *}{\i pbsc}{\b , OUT IMOD **}{\i ppimod}{\b , OUT ULONG *}{\i pcimod}{\b );}
\par {\f45\fs16\ul See Also}{\v\f45\fs16 sa_getAllModulesArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i ppimod}\tab Points to an IMOD* value that will receive a pointer to an array of module indices.
\par
\par {\i pcimod}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function returns the indices of all modules contained in the browser database. The indices of the module instances are placed in an array which can be accessed via the {\i ppimod} argument.
\par
\par The array is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::disposeArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b disposeArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::disposeArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCDisposeArray;disposeArray;array}}
Bsc::disposeArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual void disposeArray(void *}{\i pAnyArray}{\b );
\par void BSCDisposeArray(Bsc *}{\i pbsc}{\b , void *}{\i pAnyArray}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_disposeArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i pAnyArray}\tab Points to the array that will be disposed of.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22
This function is used for disposing of arrays that have been allocated by the library due to a call to one of the "Bsc::get*Array" functions. Such arrays are allocated dynamically by the library and the library owns the allocated memory. The caller should
call Bsc::disposeArray when the array is no longer needed.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::formatDname}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b formatDname}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::formatDname}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCFormatDname;formatDname;decorated names}}
Bsc::formatDname
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual SZ formatDname(SZ }{\i szDecor}{\b );}
\par {\b SZ BSCFormatDname(Bsc *}{\i pbsc}{\b , SZ }{\i szDecor}{\b );
\par }
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i szDecor}\tab A string that contains a decorated symbol name.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 Use this function to obtain an undecorated form of the decorated name {\i szDecor}.{\i }
This function returns a pointer to one of its internal buffers where the formatted string can be found. If you intend to use the contents of this buffer after making another call to the library, be sure to copy these contents, or they may be lost due to t
he next library call.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 A string that contains the undecorated name for the function name indicated by {\i szDecor}.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::fInstFilter}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b fInstFilter}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::fInstFilter}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCFinstFilter;fInstFilter;type}} Bsc::fInstFilter
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL fInstFilter(IINST }{\i iinst}{\b , MBF }{\i mbf}{\b );
\par BOOL BSCFInstFilter(Bsc *}{\i pbsc}{\b , IINST }{\i iinst}{\b , MBF }{\i mbf}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_fInstFilter}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iinst }\tab An index that specifies a symbol instance.{\i
\par
\par mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the given iinst value has a {\ul TYP}{\v bsc_TYP} value that corresponds with the value passed in the {\ul instance type filter}{\v bsc_MBF} ({\i mbf}), 0 otherwise.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::iinstFrIref}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b iinstFrIref}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::iinstFrIref}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCIinstFrIref;iinstFrIref;reference}}
Bsc::iinstFrIref
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual IINST iinstFrIref(IREF }{\i iref}{\b );
\par IINST BSCIinstFrIref(Bsc *}{\i pbsc}{\b , IREF }{\i iref}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_iinstFrIref}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iref}\tab \tab An index that specifies a symbol reference.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Returns the IINST value for the instance that contains the reference indicated by {\i iref}. If it finds no such instance index, the function returns {\i iinstNil}. This function will fail if {\i iref}
is an invalid reference index.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::iinstFrIdef}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b iinstFrIdef}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::iinstFrIdef}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCIinstFrIdef;iinstFrIdef;definition}}
Bsc::iinstFrIdef
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual IINST iinstFrIdef(IDEF }{\i idef}{\b );
\par IINST BSCIinstFrIdef(Bsc *}{\i pbsc}{\b , IDEF }{\i idef}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_iinstFrIdef}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i idef}\tab \tab An index that specifies a symbol definition.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Returns the IINST value for the instance that contains the definition indicated by {\i idef}. If it finds no such instance index, the function returns {\i iinstNil}. This function will fail if {\i idef}
is an invalid reference index.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::iinstContextIref}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b iinstContextIref}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::iinstContextIref}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCIinstContextIref;iinstContextIref;reference}} Bsc::iinstContextIref
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual IINST iinstContextIref(IREF}{\i iref}{\b );
\par INST BSCIinstContextIref(Bsc *}{\i pbsc}{\b , IREF}{\i iref}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_iinstContextIref}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i iref}\tab \tab An index that specifies a symbol reference.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Returns the IINST value for the instance that best represents the context at the reference indicated by the given {\i iref}. If it finds no such instance index, the function returns {\i iinstNil}
. This function uses a heuristic, "best guess" algorithm that is highly accurate, though not 100% or so.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getStatistics}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getStatistics}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getStatistics}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCGetStatistics;getStatistics;statistics}}
Bsc::getStatistics
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getStatistics(struct BSC_STAT *}{\i pstat}{\b );
\par BOOL BSCGetStatistics(Bsc *}{\i pbsc}{\b , struct BSC_STAT *}{\i pstat}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_getStatistics}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i pstat}\tab Points to BSC_STAT structure that will receive the statistics.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function outputs statistics about the entire browser database to the user-supplied BSC_STAT structure.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if successful, 0 otherwise.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\fs22\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getModuleStatistics}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getModuleStatistics}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getModuleStatistics}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetModuleStatistics;getModuleStatistics;statistics}} Bsc::getModuleStatistics
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getModuleStatistics(IMOD }{\i imod}{\b , struct BSC_STAT *}{\i pstat}{\b );
\par BOOL BSCGetModuleStatistics(Bsc *}{\i pbsc}{\b , IMOD }{\i imod}{\b , struct BSC_STAT *}{\i pstat}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_getModuleStatistics}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i imod}\tab A module index.
\par
\par {\i pstat}\tab Points to BSC_STAT structure that will receive the statistics.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function outputs statistics about the module {\i imod} to the user-supplied BSC_STAT structure.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if successful, 0 otherwise.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::fCaseSensitive}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #
} bsc_{\b fCaseSensitive}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::fCaseSensitive}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} BSCFCaseSensitive;fCaseSensitive;case sensitivity}}
Bsc::fCaseSensitive
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL fCaseSensitive();
\par BOOL BSCFCaseSensitive(Bsc *}{\i pbsc}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_fCaseSensitive}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the database is built with case-sensitive language, 0 otherwise.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::setCaseSensitivity}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b setCaseSensitivity}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::setCaseSensitivity}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCSetCaseSensitivity;setCaseSensitivity;case sensitivity}} Bsc::setCaseSensitivity
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL setCaseSensitivity(BOOL }{\i fCaseIn}{\b );
\par BOOL BSCSetCaseSensitivity(Bsc *}{\i pbsc}{\b , BOOL }{\i fCaseIn}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_setCaseSensitivity}{\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i fCaseIn}\tab Specifies whether the database should be case sensitive.
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 {\b0
\par }Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 Overrides the case sensitivity of the database. Look-ups in the symbol table become case sensitive if {\i fCaseIn}. is TRUE, otherwise look-ups become case insensitive.
\par {\b
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if case sensitivity was successfully set, 0 otherwise.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Bsc::getAllGlobalsArray}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b getAllGlobalsArray}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Bsc::getAllGlobalsArray}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
BSCGetAllGlobalsArray;getAllGlobalsArray;global symbols}} Bsc::getAllGlobalsArray
\par \pard\plain \li360\keepn\widctlpar \f4\fs22 {\b virtual BOOL getAllGlobalsArray(MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );
\par BOOL BSCGetAllGlobalsArray(Bsc *}{\i pbsc}{\b , MBF }{\i mbf}{\b , OUT IINST **}{\i ppiinst}{\b , OUT ULONG *}{\i pciinst}{\b );
\par }{\f45\fs16\ul See Also}{\v\f45\fs16 sa_getAllGlobalsArray}
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Parameters
\par \pard\plain \li360\widctlpar \f4\fs22 {\i pbsc}\tab Points to the browser database.
\par
\par {\i mbf}\tab \tab Specifies the {\ul instance type filter (MBF)}{\v bsc_MBF}.
\par
\par {\i ppiinst}\tab Points to an IINST* value that will receive a pointer to an array of instance indices.
\par
\par {\i pciinst}\tab Points to a ULONG value that will receive the number of elements contained in the array.
\par
\par {\i ppiinstinfo}\tab Points to an IinstInfo* value that will receive a pointer to an array of IinstInfo elements.
\par
\par \pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Remarks
\par \pard\plain \li360\widctlpar \f4\fs22 This function looks for instances of global symbols that meet the type criteria specified by the {\ul instance type filter}{\v bsc_MBF} ({\i mbf}
), and provides an array containing the indices of the symbol instances that meet these criteria.
\par
\par The array can be accessed via the {\i ppinst} argument. It is allocated dynamically by the library and the library owns the allocated memory. The caller should call Bsc::disposeArray when the array is no longer needed.{\b
\par
\par }\pard\plain \s22\li360\sb60\sa60\widctlpar \b\f5\fs20 Return Value
\par \pard\plain \li360\widctlpar \f4\fs22 Nonzero if the array was successfully created, otherwise 0.
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Database queries}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #}
bsc_{\b query}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: z010 }K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} queries;database queries}} Database queries
\par \pard\plain \li360\keepn\widctlpar \f4\fs22
\par \pard \li360\widctlpar The c
urrent BSC API provides several high-level functions that help the client query the information stored in the database. Earlier versions of the BSC API provided lower-level core functionality and a bsc query mechanism for implementing higher level queries
. Part of this query mechanism is also supported in the new BSC API (4.x) and provides limited backward compatibility.\tab
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 {\b0 \page }{\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Before you use the query mechanism}}#{\footnote \pard\plain \s17\li360\widctlpar
\f4\fs22 {\cs18\super #} bsc_{\b beforeYouUse}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: z020}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} queries;OpenBSCQuery;CloseBSCQuery;InitBSCQuery}}
Before you use the query mechanism
\par
\par \pard\plain \li360\widctlpar \f4\fs22 Before you use the query mechanism it is essential that you open a browser database and pass the resulting BSC* pointer to the OpenBSCQuery function:
\par
\par \tab \tab {\f11 BOOL OpenBSCQuery(BSC *pbsc)
\par }
\par This function associates the query mechanism with the browser database. Note that the BSC query mechanism can be associated with only one browser database at a time. Once you are done with the query mechanism, or before opening another BSC query for a dif
ferent browser database you should call CloseBSCQuery:
\par
\par \tab \tab {\f11 BOOL CloseBSCQuery()}
\par
\par The browser database should be remain open while the query mechanism is in use (i.e., you should not call BSC::close before calling CloseBSCQuery)
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 {\b0 \page }{\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Browser Objects}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super #} bsc_{\b bob}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: z030}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} queries;BOB;Browser Objects;LszNameFrBob;BobFrName}} Browser Objects
\par \pard\plain \li360\keepn\widctlpar \f4\fs22
\par \pard \li360\widctlpar All the queries process one item called a browser object (BOB). A b
rowser object is actually one of the index values that are encoded along with the type of index into a 32-bit quantity. Thus, once it is known, the type or "class" of the browser object can be extracted, as can its appropriate index value (see below).
\par
\par The {\f11 ClsOfBob()} macro returns one of the following CLS (class) types for the given browser object:{\f11 clsMod, clsInst, clsRef, clsDef. }(Note that the following class types are no longer supported: {\f11
clsSym, clsUse, clsUby, clsBase, clsDerv, clsFrin, clsFrout.
\par }
\par A browser object can be created from either a name of a symbol known to the database or from an index which is valid with respect to the database.
\par
\par The following call creates a browser object from the name of the object:
\par \tab {\f11 BOB BSC_API BobFrName (LSZ lsz)}
\par
\par If no browser object can be created from the given name, the value {\f11 bobNil} is returned. If the name is found, then the browser object returned will be either of class {\f11 clsMod} (if the name was a module name) or of class {\f11 clsInst}
(if the name was a symbol name). If more than one instance is associated with the given name, the browser object's value will be the first (smallest) such instance.
\par
\par The following macros can create a browser object from one of the index values. Listed beside each macro is the macro that performs the reverse operation.
\par {\f11
\par \tab BobFrMod ( IMOD x )\tab ImodFrBob ( BOB b )
\par \tab BobFrInst ( IINST x )\tab IinstFrBob ( BOB b )
\par \tab BobFrRef ( IREF x )\tab IrefFrBob ( BOB b )
\par \tab BobFrDef ( IDEF x )\tab IdefFrBob ( BOB b )
\par
\par }All of the macros on the left use the function {\f11 BobFrClsIdx}, which, given one of the indexes shown above, returns the appropriate BOB.{\b
\par }\tab
\par {\b NOTE}
: The macros that convert an index into a browser object create a BOB whose class type corresponds to the type of index given. But the macros that convert a browser object back to an index do not check to make sure that the browser object has the correct
class type value to do the conversion. It is up to the user of these macros to do whatever checking may be required before using them.
\par
\par To retrieve the symbol name of a browser object, use the function
\par \tab {\f11 LSZ BSC_API LszNameFrBob ( BOB bob )
\par }
\par which returns either a symbol name or a module name, depending on the class type of the browser object.
\par
\par \pard\plain \s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 {\b0 \page }{\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b Performing database queries}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22
{\cs18\super #} bsc_performingQueries}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: z040}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} queries;database queries;InitBSCQuery;BobNext}}
Performing database queries
\par \pard\plain \li360\keepn\widctlpar \f4\fs22
\par \pard \li360\widctlpar You can initiate several predefined queries once a browser object has been created and the query mechanism has been opened via OpenBscQuery. The queries are passed to the function {\f11 InitBSCQuery}
along with the browser object itself.
\par
\par \tab {\f11 BOOL BSC_API InitBSCQuery (QY qy, BOB bob)}
\par
\par The function returns TRUE if the query has been initiated successfully, FALSE otherwise. Not all queries can be performed on all browser objects (for example, trying to perform the query "What does this browser object call?" when the browser object type i
s actually that of a module index). The possible queries and their permitted browser object types are outlined in the following table:
\par {\b\f23
\par }\trowd \trgaph108\trleft708\trkeep \clbrdrt\brdrs\brdrw30 \clbrdrl\brdrs\brdrw30 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx2160\clbrdrt\brdrs\brdrw30 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx3420\clbrdrt
\brdrs\brdrw30 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx4590\clbrdrt\brdrs\brdrw30 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw30 \cellx8688 \pard \li360\widctlpar\intbl {\b\f23\fs16 Query\cell
}\pard \li72\widctlpar\intbl {\b\f23\fs16 Input BOB Type\cell Return BOB Type\cell }\pard \li56\widctlpar\intbl {\b\f23\fs16 Query initiated for\cell }\pard \widctlpar\intbl {\b\f23 \row }\trowd \trgaph108\trleft708\trkeep \clbrdrt\brdrs\brdrw15 \clbrdrl
\brdrs\brdrw30 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx2160\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx3420\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr
\brdrs\brdrw15 \cellx4590\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw30 \cellx8688 \pard \li84\widctlpar\intbl {\f11\fs16 qyContains\cell }\pard \li72\widctlpar\intbl {\fs16 module\cell instance\cell }\pard
\li56\widctlpar\intbl {\fs16 Symbols that are defined in that module.\cell }\pard \widctlpar\intbl \row \pard \li84\widctlpar\intbl {\f11\fs16 qyCalls\cell }\pard \li72\widctlpar\intbl {\fs16 instance\cell instance\cell }\pard \li56\widctlpar\intbl {
\fs16 Instances that a function (instance) calls. If the instance in that BOB is not of the type function, then the list of instances returned will be of zero length.\cell }\pard \widctlpar\intbl \row \pard \li84\widctlpar\intbl {\f11\fs16 qyCalledBy
\cell }\pard \li72\widctlpar\intbl {\fs16 instance\cell instance\cell }\pard \li56\widctlpar\intbl {\fs16 Instances that call the input instance. These instances will be of the type function.\cell }\pard \widctlpar\intbl \row \pard \li84\widctlpar\intbl {
\f11\fs16 qyRefs\cell }\pard \li72\widctlpar\intbl {\fs16 instance\cell reference\cell }\pard \li56\widctlpar\intbl {\fs16 References to all instances of the symbol, or, if the BOB is an instance, then the references to that particular instance itself.
\cell }\pard \widctlpar\intbl \row \pard \li84\widctlpar\intbl {\f11\fs16 qyDefs\cell }\pard \li72\widctlpar\intbl {\fs16 instance\cell definition\cell }\pard \li56\widctlpar\intbl {\fs16
Definitions of all instances of a symbol, or, if the BOB is an instance, then the definitions to that particular instance itself.\cell }\pard \widctlpar\intbl \row \pard \li84\widctlpar\intbl {\f11\fs16 qyBaseOf\cell }\pard \li72\widctlpar\intbl {\fs16
instance, class\cell instance, class\cell }\pard \li56\widctlpar\intbl {\fs16 Instances that have the given symbol as their base class.\cell }\pard \widctlpar\intbl \row \pard \li84\widctlpar\intbl {\f11\fs16 qyDervOf\cell }\pard \li72\widctlpar\intbl {
\fs16 instance, class\cell instance, class\cell }\pard \li56\widctlpar\intbl {\fs16 Instances that are derived from the symbol.\cell }\pard \widctlpar\intbl \row \trowd \trgaph108\trleft708\trkeep \clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw30 \clbrdrb
\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx2160\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx3420\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cellx4590
\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw30 \cellx8688 \pard \li84\widctlpar\intbl {\f11\fs16 qyImpMembers\cell }\pard \li72\widctlpar\intbl {\fs16 instance, class\cell instance, mem_var, mem_funct\cell
}\pard \li56\widctlpar\intbl {\fs16 All members implemented by the given class.\cell }\pard \widctlpar\intbl \row \pard \li360\widctlpar
\par The result of a query is a collection of browser objects. To obtain the next browser object in the query information, use the following function:
\par
\par \tab {\f11 BOB BSC_API BobNext (VOID)}
\par
\par Any one of the browser objects returned may be passed back to initiate another query. The name of the symbol for that browser object may be found using the function {\f11 LszNameFrBob}
, which can also be used to obtain the next browser object in the collection. If there are no more browser objects left in the collection, the value {\f11 bobNil} is returned.
\par
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} bsc_TYP}${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} type values (TYP)}} {\cs18\super K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {
\cs18\super K} type values;TYP}} The type value ({\b TYP}) is exactly one of the following:
\par
\par \trowd \trgaph108\trleft360 \cellx3690\cellx7200 \pard \li360\widctlpar\intbl {\b INST_TYP_FUNCTION\cell INST_TYP_LABEL\cell }\pard \widctlpar\intbl \row \trowd \trgaph108\trleft360 \cellx3690\cellx7200 \pard \li360\widctlpar\intbl {\b INST_TYP_PARAMETER
\cell INST_TYP_VARIABLE\cell }\pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b INST_TYP_CONSTANT\cell INST_TYP_MACRO\cell }\pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b INST_TYP_TYPEDEF\cell INST_TYP_STRUCNAM\cell }\pard
\widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b INST_TYP_ENUMNAM\cell INST_TYP_ENUMMEM\cell }\pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b INST_TYP_UNIONNAM\cell INST_TYP_SEGMENT\cell }\pard \widctlpar\intbl \row \pard
\li360\widctlpar\intbl {\b INST_TYP_GROUP\cell INST_TYP_PROGRAM\cell }\pard \widctlpar\intbl \row \pard \li360\widctlpar\intbl {\b INST_TYP_CLASSNAM\cell INST_TYP_MEMFUNC\cell }\pard \widctlpar\intbl \row \trowd \trgaph108\trleft360 \cellx3690\cellx7200
\pard \li360\widctlpar\intbl {\b INST_TYP_MEMVAR\cell \cell }\pard \widctlpar\intbl \row \pard \li360\widctlpar \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} bsc_ATR}${\footnote \pard\plain \s17\li360\widctlpar
\f4\fs22 {\cs18\super $} attribute values (ATR)}} {\cs18\b\super +{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: Other{\b 1}}}{\cs18\super K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K}
attribute values;ATR}} The attribute value ({\b ATR}
) describes the storage class of the instance. Any combination of the attribute bits may be set, although some combinations do not make sense and thus do not occur in practice. The attribute bits are as follows:
\par
\par \trowd \trgaph108\trleft360 \cellx3600\cellx6930 \pard \li360\widctlpar\intbl {\b INST_ATR_LOCAL \cell INST_ATR_STATIC \cell }\pard \widctlpar\intbl {\b \row }\trowd \trgaph108\trleft360 \cellx3600\cellx6930 \pard \li360\widctlpar\intbl {\b
INST_ATR_SHARED \cell INST_ATR_NEAR \cell }\pard \widctlpar\intbl {\b \row }\pard \li360\widctlpar\intbl {\b INST_ATR_COMMON \cell INST_ATR_DECL_ONLY \cell }\pard \widctlpar\intbl {\b \row }\pard \li360\widctlpar\intbl {\b INST_ATR_PUBLIC
\cell INST_ATR_NAMED \cell }\pard \widctlpar\intbl {\b \row }\pard \li360\widctlpar\intbl {\b INST_ATR_MODULE \cell INST_ATR_VIRTUAL \cell }\pard \widctlpar\intbl {\b \row }\trowd \trgaph108\trleft360 \cellx3600\cellx6930 \pard
\li360\widctlpar\intbl {\b INST_ATR_PRIVATE \cell INST_ATR_PROTECT\cell }\pard \widctlpar\intbl {\b \row }\pard \li360\widctlpar \page {\cs18\b\fs24\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} bsc_MBF}${\footnote
\pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} instance type values (MBF)}}{\b }{\cs18\b\super +{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Other2}}}{\cs18\b\fs24\super K{\footnote \pard\plain
\s17\li360\widctlpar \f4\fs22 {\cs18\super K} type values;MBF}}{\b Instance type (MBF) values
\par
\par }The instance type (called an MBF) can be any bitwise-OR combination of the following constants:
\par
\par \trowd \trgaph108\trleft360 \cellx2070\cellx3600 \pard \widctlpar\intbl {\b mbfNil \cell mbfVars \cell }\pard \widctlpar\intbl \row \trowd \trgaph108\trleft360 \cellx2070\cellx3600 \pard \widctlpar\intbl {\b mbfFuncs \cell mbfMacros\cell }\pard
\widctlpar\intbl \row \pard \widctlpar\intbl {\b mbfTypes \cell mbfClass \cell }\pard \widctlpar\intbl \row \trowd \trgaph108\trleft360 \cellx2070\cellx3600 \pard \widctlpar\intbl {\b mbfAll\cell \cell }\pard \widctlpar\intbl \row \pard\plain
\s21\li360\sb60\sa60\keepn\widctlpar \b\f5\fs28\kerning28 \page {\cs18\b0\super ${\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super $} {\b IndexVariables}}#{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} bsc_{\b
indexVariables}}+{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super +} bsc: {\b Other0}}K{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super K} index variables;IMOD;IINST;IREF;IDEF}} Database Index Variables
\par \pard\plain \li360\widctlpar \f4\fs22
Each object found in the browser database is represented by a numerical index value that uniquely identifies one database object. The name of every index variable type begins with the letter "I" and ends with letters referring to the kind of object indexe
d by the variable. Each of these index variable types are described below.
\par
\par {\b\fs24 Modules (IMOD Variables)}{\fs24
\par Each module in the database has an associated module index (IMOD) value.
\par
\par }{\b\fs24 Symbol Instances (IINST Variables)
\par }{\fs24 Every symbol in a br
owser database is associated with several instances, each of which corresponds to a different way the symbol is used in the program(s) described in the browser database). For example, the symbol "mysymbol" might be used as a static variable in one place,
and as a function parameter in another. The browser library keeps track of these various instances using instance index values called IINST variables.
\par }{\b\fs24
\par Definitions and References (IDEF and IREF Variables)}{\fs24
\par Each instance in the database has an associated set of definitions and references, which also are tracked using index variables (IDEF and IREF).
\par }\page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_open}} {\b\uldb close}{\v bsc_close}\page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_close}} {\b\uldb open}{\v bsc_open
}\page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_iinstInfo}} {\b\uldb irefInfo}{\v bsc_irefInfo}
\par {\b\uldb idefInfo}{\v bsc_idefInfo}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_irefInfo}} {\b\uldb iinstInfo}{\v bsc_iinstInfo}
\par {\b\uldb idefInfo}{\v bsc_idefInfo}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_idefInfo}} {\b\uldb iinstInfo}{\v bsc_iinstInfo}
\par {\b\uldb irefInfo}{\v bsc_irefInfo}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_imodInfo}} {\b\uldb getModuleByName}{\v bsc_getModuleByName}
\par {\b\uldb getAllModulesArray}{\v bsc_getAllModulesArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_szFrTyp}} {\b\uldb szFrAtr}{\v bsc_szFrAtr}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_szFrAtr}} {\b\uldb szFrTyp}{\v bsc_szFrTyp}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getIinstByvalue}} {\b\uldb getOverloadArray}{\v bsc_getOverloadArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getOverloadArray}} {\b\uldb getIinstByvalue}{\v bsc_getIinstByvalue}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getUsedByArray}} {\b\uldb getUsesArray}{\v bsc_getUsesArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getUsesArray}} {\b\uldb getUsedByArray}{\v bsc_getUsedByArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getBaseArray}} {\b\uldb getDervArray}{\v bsc_getDervArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getDervArray}} {\b\uldb getBaseArray}{\v bsc_getBaseArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getMembersArray}} {\b\uldb getBaseArray}{\v bsc_getBaseArray}{\b\uldb
\par getDervArray}{\v bsc_getDervArray}
\par {\b\uldb getOverloadArray}{\v bsc_getOverloadArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getDefArray}} {\b\uldb getRefArray}{\v bsc_getRefArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getRefArray}} {\b\uldb getDefArray}{\v bsc_getDefArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getModuleContents}} {\b\uldb getAllGlobalsArray}{\v bsc_getAllGlobalsArray}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getModuleByName}} {\b\uldb getAllModulesArray}{\v bsc_getAllModulesArray}
\par {\b\uldb imodInfo}{\v bsc_imodInfo}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getAllModulesArray}} {\b\uldb getModuleByName}{\v bsc_getModuleByName}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_disposeArray}} {\b\uldb getOverloadArray}{\v bsc_getOverloadArray}
\par {\b\uldb getUsedByArray}{\v bsc_getUsedByArray}
\par {\b\uldb getUsesArray}{\v bsc_getUsesArray}
\par {\b\uldb getBaseArray}{\v bsc_getBaseArray}
\par {\b\uldb getDervArray}{\v bsc_getDervArray}
\par {\b\uldb getMembersArray}{\v bsc_getMembersArray}
\par {\b\uldb getDefArray}{\v bsc_getDefArray}
\par {\b\uldb getRefArray}{\v bsc_getRefArray}
\par {\b\uldb getModuleContents}{\v bsc_getModuleContents}
\par {\b\uldb getAllModulesArray}{\v bsc_getAllModulesArray}
\par {\b\uldb getAllGlobalsArray}{\v bsc_getAllGlobalsArray}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_formatDname}}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_fInstFilter}} {\b\uldb MBF}{\v bsc_MBF}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_iinstFrIref}} {\b\uldb iinstContextIref}{\v bsc_iinstContextIref}
\par {\b\uldb iinstFrIdef}{\v bsc_iinstFrIdef}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_iinstFrIdef}} {\b\uldb iinstFrIref}{\v bsc_iinstFrIref}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_iinstContextIref}} {\b\uldb iinstFrIref}{\v bsc_iinstFrIref}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getStatistics}} {\b\uldb getModuleStatistics}{\v bsc_getModuleStatistics}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getModuleStatistics}} {\b\uldb getStatistics}{\v bsc_getStatistics}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_fCaseSensitive}} {\b\uldb setCaseSensitivity}{\v bsc_setCaseSensitivity}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_setCaseSensitivity}} {\b\uldb fCaseSensitive}{\v bsc_fCaseSensitive}
\par \page {\cs18\super #{\footnote \pard\plain \s17\li360\widctlpar \f4\fs22 {\cs18\super #} sa_getAllGlobalsArray}} {\b\uldb getModuleContents}{\v bsc_getModuleContents}{\b\uldb
\par disposeArray}{\v bsc_disposeArray}
\par \page
\par }