{"size": 1387, "ext": "scrbl", "max_stars_repo_path": "scribblings/dcom.scrbl", "max_stars_repo_name": "LiberalArtist/mysterx", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "scribblings/dcom.scrbl", "max_issues_repo_name": "LiberalArtist/mysterx", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "scribblings/dcom.scrbl", "max_forks_repo_name": "LiberalArtist/mysterx", "max_forks_repo_forks_event_min_datetime": "2017-06-08T20:38:42.000Z", "max_forks_repo_forks_event_max_datetime": "2021-10-09T05:02:52.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 2, "avg_line_length": 40.7941176471, "max_line_length": 100, "alphanum_fraction": 0.7786589762}
#lang scribble/doc
@(require "common.rkt" scribble/bnf)

@title[#:tag "remote"]{Remote COM servers (DCOM)}

For the MysterX procedures @racket[cocreate-instance-from-coclass] and
@racket[cocreate-instance-from-progid], the optional @racket[_where]
argument can be @racket['remote].  In that case, the server instance
is run at the location given by the Registry key

@centerline{@tt{HKEY_CLASSES_ROOT\AppID\@nonterm{CLSID}\RemoteServerName}}

where @nonterm{CLSID} is the CLSID of the application.  This key may
be set using the @exec{dcomcnfg} utility.  From @exec{dcomcnfg}, pick
the application to be run on the @onscreen{Applications} tab, then
click on the @onscreen{Properties} button.  On the @onscreen{Location}
tab, choose @onscreen{Run application on the following computer}, and
enter the machine name.

In order to run a COM remote server, the registry on the client
machine must contain an entry at

@centerline{@tt{HKEY_CLASSES_ROOT\CLSID\@nonterm{CLSID}}}

where @nonterm{CLSID} is the CLSID for the server.  The server
application itself need not be installed on the client machine.

There are a number of configuration issues relating to DCOM, which
MysterX uses to invoke remote COM servers.  The Web page

@centerline{@link["http://www.distribucon.com/dcom95.aspx"]{http://www.distribucon.com/dcom95.html}}

discusses how to setup client and server machines for DCOM.
