Advanced Development Environment Configuration
Notice
This document provides extra information on the development environment for advanced users only. Use of this information presumes knowledge of the registry. This information is provided for those developers who wish to make use of it. However, Because this is not a part of the standard documentation, this information is likely to change between releases without backward compatibility and no guarantees are made by Sybase, Inc. that this technology will be supported in any way or in any future release of PowerBuilder. This is considered an advanced and unsupported feature. Use at your own risk.
Notation
This document uses the following notational conventions:
name -- italics are used for placeholders
| -- separates different choices
[ ] -- surrounds optional items
Base Registry Keys
PowerBuilder use the following registry keys:
HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\7.0
HKEY_LOCAL_MACHINE\Software\Sybase\PowerBuilder\7.0
InfoMaker uses the following registry keys:
HKEY_CURRENT_USER\Software\Sybase\InfoMaker\7.0
HKEY_LOCAL_MACHINE\Software\Sybase\InfoMaker\7.0
DataWindow Builder uses the following keys:
HKEY_CURRENT_USER\Software\Sybase\DataWindowBuilder\7.0
HKEY_LOCAL_MACHINE \Software\Sybase\DataWindowBuilder\7.0
International versions will add a one letter suffix to the version (i.e. 7.0u)
u - Unicode
j - Japanese
Through the remainder of this document, the product's HKEY_CURRENT_USER key will be abbreviated to product-hkcu and the product's HKEY_LOCAL_MACHINE key will be abbreviated to product-hklm.
Painter Names
Both URLs and the command line make use of painter names.
The following painter names are valid for PowerBuilder, InfoMaker, and DataWindow Builder:
http
ftp
mailto
execute
wizard
Database
DBProfile
DataPipeline
FileEdit
Library
Query
Report
RunReport
The following additional painter names are valid for PowerBuilder:
Application
DataWindow
Debug
Function
Menu
Project
RunWindow
Structure
UserObject
Window
The following additional painter names are valid for InfoMaker:
Form
The following additional painter names are valid for DataWindow Builder:
DataWindow
PowerBuilder URLs
Internet URL format is identified by the leading slashes "//" and follows the pattern:
<service>://<user>:<password>@<host>:<port>/<url-path>
This format is usually extended to support parameters with the following format:
<service>://<user>:<password>@<host>:<port>/<path>
?<name>=<value>&<name>=<value>
The following parts may be excluded:
<user>:<password>@
:<password>
:<port>
/<path>?<name>=<value>&<name>=<value>
?<name>=<value>&<name>=<value>
&<name>=<value>
The following part may be repeated at the end of the pattern:
&<name>=<value>
The service may only consist of the characters:
a-z 0-9 . + -
In the path on Wintel, the following translations occur:
: |
\ /
In the name and value sections, the following translations occur:
space +
+ %2b
In the user, password, host, and port sections, the following translation occurs:
/ %2f
In all sections, the following characters are otherwise encoded as % with two hex characters:
0x00-0x1f space 0x7f-0xff
< > " # % { } | ^ ~ [ ] ` ; @ ? = & : \
Service identifies the component that will interpret the remainder of the URL. Path generally points to the content. Often, the extension in the path or the content is used by the service to identify another component that processes the content. The parameters can be used by the service or the component processing the content.
The following standard browser URL services are supported and they all invoke the default browser to process them.
http://user:password@host/path
ftp://user:password@host
mailto:user@host
For example:
http://www.sybase.com
ftp://www.sybase.com
mailto:support@sybase.com
Programs can be executed with the following URL:
execute://path?args=arguments
For example:
execute://C|/Program Files/Microsoft Office/Office/winword.exe?args=c:\My+Documents\Sample.doc
Windows that are a part of the internal wizard application can be opened with:
wizard:?entry=windowname
wizard:?entry=windowname/option
where option may be
0 -- start wizard
1 -- object wizard
2 -- project wizard
For example:
wizard:?entry=w_sample
Painters that don't work on objects in a library or file, can be opened using:
painter://
Painters that operate on objects in a file, can be opened using:
painter://?action=new
painter://file?action=dosfile
Painters that operate on objects in a library, can be opened using:
painter://?action=new
painter://library?action=open&entry=objectName
painter://library?action=inherit&entry=objectName
painter://library?action=run&entry=objectName
painter://library?action=runonly&entry=objectName
The painter userobject also supports the following additional arguments for new user objects (may be added to the end of the URL separated by &):
udotype=cv|ev|sv|cnv|snv
udoclass=class-name
The painters userobject, window, and application also support the following additional arguments for positioning to an individual script:
function=function-name
control=control-name
event=event-name
line=line-number
The painters userobject, window, application, and function also support the following additional arguments for positioning to a structure:
structure=structure-name
The painter project also requires the following additional argument for specifying the project type when action=new.
guid={genererator-guid}
The GUIDs for the projects are:
{bb0dd543-b36e-11d1-bb47-000086095dda} -- Application
{36A08730-A06D-11D0-AEDC-00A0D103F6BC} -- Proxy Library
{1B1DCEE1-E514-11D1-B30A-006008925BD4} -- Jaguar Proxy
{DF93F2A2-E504-11D1-B30A-006008925BD4} -- Jaguar Component
{3D326055-5AB3-11D1-9281-00A0247712F1} -- COM/MTS Component
{CA82AC28-36A9-11d2-B30B-006008925BD4} -- Automation Server
{DA7487C2-3843-11d2-B30F-00600825A521} -- Web.PB
{44E34E90-41B2-11D1-BD7B-080009AC019B} -- Java Proxy
New Dialog
The new dialog can be customized to include additional icons. In this way, icons can be added that would, for instance, open a new window that is inherited from a specific object. The icons can map to any of the URLs described in the previous section.
Each item that appears in the new dialog must be registered under a key with a unique CLSID. The CLSID should be generated with Microsoft's GUIDGEN or UUIDGEN.
product-hklm\CLSID\{clsid}
The values that are supported under that key:
(default)=label
DefaultIcon=path,index
URL=internal-url
Icons appear in the PowerBuilder new dialog by specifying one of the following values:
StartTool=
ObjectTool=
DataWindowTool=
DatabaseTool=
ProjectTool=
Tool=
Icons appear in the InfoMaker and DataWindow Builder new dialogs by specifying one of the following values:
IMLibraryTool=
IMObjectTool=
IMDatabaseTool=
IMTool=
Icons may be restricted to certain products by specifying one of:
OnlyInPB=
OnlyInIM= -- InfoMaker without form painter
OnlyInIX= -- InfoMaker with form painter
OnlyInDWB=
For example:
product-hklm\CLSID\{d49b4590-3880-11d2-bc50-000000000000}
(default)=Sybase Home Page
URL=http://www.sybase.com
DefaultIcon=C:\Program Files\PLUS!\Microsoft Internet\IEXPLORE.EXE,1
Tool=
To-Do List
All of the to-do list entries appear in the registry under the key:
product-hkcu\Application\$pbl-path(application-name)\ToDo
Where pbl-path is the path the application's library with slashes (\ or /) translated to $ and application-name is the name of the application.
Under that key the following values are used to save the number of items and the last selection:
Count=count
Selection=selection
Each of the to-do entries are stored under sequentially numbered values of the format:
n=y|n ~t text ~t URL
The y or n represents the checked state of the item. The checked state, text, and URL are separated by tab characters (~t). The URL may be any of the URLs described in the URL section above.
Note: When the to-do list is closed, it completely rewrites this key. Any changes made to this key while the to-do list is open will be lost.
To-Do List Wizards
With the following registry entries, additional entries may be added to a user's to-do list with a wizard is run.
product-hklm\CustomTo-Do\wizard-type\wizard-tab
where wizard-type may be one of:
template
jaguar proxy
jaguar component
com component
ole auto component
and wizard-tab may be one of:
start
object
project
Value names under this key can be any legal value name. All values will be used in alphabetical order.
The values must be a semicolon (;) delimited set of name=value pairs or an URL with a and text sub-value. For example:
Item1=service=window;path=c:\pbls\myapp.pbl;action=open;entry=w_main;text=Open w_main window
Item2=http://www.sybase.com;text=Go to Sybase web page
Wizard Application Lib List
The wizards in PowerBuilder were written using PowerBuilder itself. PowerBuilder simply starts up a run-time session with a separate application. Windows in this application are usually opened using an URL with a service of wizard. The library list to this application can be extended through the registry. A maximum of 30 libraries may be added.
The library values must be under the key:
product-hklm\WizardLibraries
The libraries must be in sequentially numbered values. For example:
1=c:\powerbuilderextension1.pbd
2=c:\powerbuilderextension2.pbd
Note: If Sybase needs to add additional wizards between releases, the installation of those wizards will overwrite one or more of these entries.
Duplicating Configurations
To duplicate the keyboard shortcuts, toolbar configuration, or view layouts between machines use the Export Registry File and Import Registry File menu items in regedit.exe to duplicate the following keys:
product-hkcu\Shortcuts
product-hkcu\Toolbar
product-hkcu\Layout
Command Line Arguments
/painter painterName or /p painterName
Identifies the target painter. See the section above.
/library objectLibName or /l objectLibName
Identifies the library for an open or inherit operation.
/file fileName or /f fileName
Identify the file. For the painter FileEdit opens the specified file in the editor. For the painter Report, opens the specified .psr in the editor.
/open objectName or /o objectName
Identifies the object that the painter should be opened to display. The object MUST be in the library specified in the /library option.
/inherit ancestorName or /i ancestorName
Create a new object that inherits from the passed object that must be in the library specified in the /library option.
/argument argument or /a argument
A painter dependent argument. Used by Sybase only.
/new or /n
Indicates that a new object should be created.
/run or /r
Runs the painter. Used with painter project to run a project. Used with painter runreport to preview a datawindow. Used with form to preview a form.
/runonly or /ro
Run the painter and then close immediately. This can be used with the painter project to run a project and exit.
/appname appObjName or /ap appObjName
Specify the application object name. The object must exist in the library specified by /applibrary.
/applibrary appLibraryName or /appl appLibraryName
Indicates the library that the application is in. If there is only a single library in the library list, then the /librarylist parameter does not have to be specified.
/searchlist libList or /s libList
/librarylist libList or /libraryl libList
/path libList or /pat libList
Specify the library list. This does not need to be specified if the /applibrary is the only library.
/sdi
Indicates that the painter should operate in SDI look mode. This is done by maximizing the sheet and removing MDI menu items and decorations. The behavior of the frame is modified as well. When no sheet is visible, then the frame is made invisible.
/url painterUrl or /u painterUrl
Open according to an URL. See the section on URLs.
Toolbar Customization
URLs may also be entered as the command line for custom toolbar items in the toolbar customization dialogs. |