Remote Workplace Server v0.60 - OS2

This is a discussion on Remote Workplace Server v0.60 - OS2 ; A new version of Remote Workplace Server, v0.60, is now available. RWS enables a program to invoke any class or object method or any SOM function in the WPS process without the use of SOM or DSOM. All types of ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: Remote Workplace Server v0.60

  1. Remote Workplace Server v0.60

    A new version of Remote Workplace Server, v0.60, is now available.

    RWS enables a program to invoke any class or object method or any
    SOM function in the WPS process without the use of SOM or DSOM.
    All types of arguments and return values are supported. Data that
    is accessible or meaningful only in the WPS process (e.g. a buffer
    or object pointer) can be copied or converted to make it available
    to the calling process. RWS also includes a feature to convert
    one type of object reference to another (e.g. handle to title) and
    several built-in commands to perform tasks that require additional
    support within the WPS process.

    New in v0.60:

    - additional conversion options, including access to non-file
    objects by title
    - new commands, including one that enables clients either to
    provide a near-complete emulation of WPS folders, or simply
    to add shadows to File Open/Save as dialogs
    - exception handlers in the WPS process
    - conflict-free coexistence of different versions of RWS
    - makefiles for all projects
    - and more...

    RWS is an open-source project licensed under the generous terms of
    the Mozilla Public License. The developer's package, rws060.zip,
    contains ready-to-use server & client dlls, complete source code,
    and extensive documentation. It also contains three demo programs,
    including a new one, FPos, that lets you review and delete entries
    in PM_Workplace:FolderPos. You can obtain the package from:

    http://e-vertise.com/rws/rws060.zip (290,844 bytes)

    It is also available from hobbes; this url should find it:

    http://hobbes.nmsu.edu/cgi-bin/h-search?key=rws060.zip

    RWS is still in its initial stages of development. Suggestions
    for its improvement & contributions of code to that end will be
    greatly appreciated.


    --
    == == almost usable email address: rws AT e-vertise.com == ==
    __________________________________________________ _________________
    |
    | New - Remote Workplace Server v0.60
    Rich Walsh | interact with the WPS from any program
    Ft Myers, FL | http://e-vertise.com/rws/rws060.zip
    __________________________________________________ _________________

  2. Re: Remote Workplace Server v0.60

    On Wed, 24 Nov 2004 01:57:06 GMT
    "Rich Walsh" wrote:

    > New in v0.60:
    >
    > - additional conversion options, including access to non-file
    > objects by title
    > - new commands, including one that enables clients either to
    > provide a near-complete emulation of WPS folders, or simply
    > to add shadows to File Open/Save as dialogs
    > - exception handlers in the WPS process
    > - conflict-free coexistence of different versions of RWS
    > - makefiles for all projects
    > - and more...


    This is insanely cool! Wish I had this stuff five years ago! Perhaps I will manage to find a use for it anyways. Great work, Rich!

    Take Care!
    Harald Eilertsen

  3. Re: Remote Workplace Server v0.60

    On Wed, 24 Nov 2004 16:26:36 UTC, Harald Eilertsen wrote:

    > On Wed, 24 Nov 2004 01:57:06 GMT
    > "Rich Walsh" wrote:
    >
    > > New in v0.60:
    > >
    > > - additional conversion options, including access to non-file
    > > objects by title
    > > - new commands, including one that enables clients either to
    > > provide a near-complete emulation of WPS folders, or simply
    > > to add shadows to File Open/Save as dialogs
    > > - exception handlers in the WPS process
    > > - conflict-free coexistence of different versions of RWS
    > > - makefiles for all projects
    > > - and more...

    >
    > This is insanely cool!


    Thanks,

    > Wish I had this stuff five years ago!


    I was thinking more like "wish I had written this 8 years ago" :-\
    OTOH, if I hadn't spent all those years on DragText, I wouldn't
    have been able to write the first version of RWS in two months.
    I don't know which is slower, developing software or developing
    the synaptic connections which make it all possible.

    > Perhaps I will manage to find a use for it anyways.


    I hope so.


    --
    == == almost usable email address: rws AT e-vertise.com == ==
    __________________________________________________ _________________
    |
    | New - Remote Workplace Server v0.60
    Rich Walsh | interact with the WPS from any program
    Ft Myers, FL | http://e-vertise.com/rws/rws060.zip
    __________________________________________________ _________________

  4. Re: Remote Workplace Server v0.60

    Yip. This is cool. Has anyone used the supplied RWSTest utility? I'm
    not sure if I'm using it right since I keep getting response like 'rc
    = 1028'. If you managed to get something different to work, post what
    your inputs were.

    Cheers,

    -- j

  5. Re: Remote Workplace Server v0.60

    On Tue, 30 Nov 2004 17:27:26 UTC, spam@jqhome.net (spam@jqhome.net) wrote:

    > Yip. This is cool. Has anyone used the supplied RWSTest utility? I'm
    > not sure if I'm using it right since I keep getting response like 'rc
    > = 1028'. If you managed to get something different to work, post what
    > your inputs were.


    Sorry I haven't answered your email yet - I've been preoccupied with
    the RWS demos. Here's a few examples:


    #1 - invoking an object method

    You want to see what extensions are associated with the System Editor.
    The method is: PSZ wpQueryAssociationFilter( WPProgram somSelf)

    You supply a program object and get back either a string such as
    "*.TXT,*.CMD" or a null pointer to indicate no associations.

    Type Size Value
    ---------- ---- ------------------------
    Proc RWSP_MNAMI wpQueryAssociationFilter
    Arg1 RWSI_OPATH 0
    Arg2,3,4 (none)
    Return RWSR_PSTR 0

    "RWSP_MNAMI" invokes a method by name but doesn't treat the return
    value as a boolean the way "RWSP_MNAM" does (the 'I' stands for Ignore).
    A return of zero produces rc=1032 (OUTVALUEZERO) rather than rc=1028
    (FUNCTIONFAILED). I'd suggest keeping a copy of rwserr.h handy :-)

    "RWSI_OPATH" converts a f/q filename or object ID to an object.
    "RWSR_PSTR" tells RWS that the return is a pointer to a string which
    should be copied to it buffer. With 'Size' set to zero, RWS will
    use a default buffer size of 260 bytes.


    #2 - invoking an RwsCommand

    You want to popup the menu for the Firefox pgm object on your Desktop.
    The command's pseudo-syntax is:
    HWND RWSCMD_POPUPMENU( WPObject* somSelf, HWND hOwner, POINTL* pptlOwner);

    You supply an object, and optionally, the window that "owns" the menu
    and the point where the menu should appear. The return is the menu's
    window handle.

    Type Size Value
    ------------ ---- ------------------------
    Proc RWSP_CMD 1
    Arg1 RWSI_OFTITLE 0 F:\Desktop\firefox v1.0
    Arg2 RWSI_ASIS 0 0
    Arg3 RWSI_ASIS 0 0
    Arg4 (none)
    Return RWSR_ASIS 0

    Commands are numeric values defined in rws.h. RWSCMD_POPUPMENU equates
    to '1'. "RWSI_OFTITLE" identifies an object by its f/q title or object
    ID. This is an expensive operation & should be used sparingly.

    A bug in RwsTest prevents using a pointer to a buffer as input, so the
    example uses the defaults which position the menu at the mouse pointer.
    "RWSI_ASIS" tells RWS to pass the specified value as-is. "RWSR_ASIS"
    tells it to return the command's output without interpreting it.


    #3 - invoking RwsConvert

    You have an object handle and want to get its title, the folder it's in,
    its class, and it's Object ID (if any).

    Type Size Value
    ----------------- ---- -------
    Proc RWSP_CONV
    Arg1 RWSC_OHNDL_OTITLE 0 210fb
    Arg2 RWSC_PREV_OFLDR 0
    Arg3 RWSC_PREV_CNAME 0
    Arg4 RWSC_PREV_OID 0
    Return RWSR_ASIS 0

    For "RWSP_CONV", the 'Value' field is ignored. "RWSC_OHNDL_OTITLE" says
    you want to convert an object handle to an object pointer on input, then
    convert that pointer to an object title on ouput. To avoid the overhead
    of multiple, redundant input conversions, args 2-4 specify "RWSC_PREV_*"
    to reuse the previous argument's object pointer. Their 'Value' fields
    can be blank or zero. The return identifies how many of these conversions
    succeeded.

    FYI... while writing this, I found a bug in RwsConvert. If an arg that
    uses RWSC_PREV_ fails, subsequent args that use RWSC_PREV_ will also
    fail. Each conversion in a group is supposed to operate independently.
    To work around this, put the most-likely-to-fail item(s) at the end.
    In the example above, the request for an object ID is likely to fail
    since few objects hace IDs, so it appears last.

    If you have additional questions or problems, please email or post again.
    I'll try to be more responsive.


    --
    == == almost usable email address: rws AT e-vertise.com == ==
    __________________________________________________ _________________
    |
    | New - Remote Workplace Server v0.60
    Rich Walsh | interact with the WPS from any program
    Ft Myers, FL | http://e-vertise.com/rws/rws060.zip
    __________________________________________________ _________________

+ Reply to Thread