struct CCL::IExecutableLoader
Overview
Management functions for dynmanically loaded executables. More…
#include <iexecutable.h> struct IExecutableLoader: public CCL::IUnknown { // methods virtual const IExecutableImage&CCL_API getMainImage () = 0; virtual tresult CCL_API loadImage (IExecutableImage*& image, UrlRef path) = 0; virtual IExecutableImage*CCL_API createImage (ModuleRef module) = 0; virtual IExecutableIterator*CCL_API createIterator () = 0; virtual void CCL_API addNativeImage (ModuleRef module) = 0; virtual void CCL_API removeNativeImage (ModuleRef module) = 0; virtual tresult CCL_API execute ( Threading::ProcessID& processId, UrlRef path, ArgsRef args, int flags = 0, IUnknown* context = nullptr ) = 0; virtual tresult CCL_API relaunch (ArgsRef args) = 0; virtual tresult CCL_API terminate (Threading::ProcessID processId) = 0; virtual tresult CCL_API getExecutablePath ( IUrl& path, Threading::ProcessID processId ) = 0; virtual tbool CCL_API isProcessRunning (UrlRef executableFile) = 0; virtual tresult CCL_API getModuleInfo (IAttributeList& attributes, UrlRef path) = 0; };
Inherited Members
public: // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0;
Detailed Documentation
Management functions for dynmanically loaded executables.
Methods
virtual const IExecutableImage&CCL_API getMainImage () = 0
Get image object of main executable.
virtual tresult CCL_API loadImage (IExecutableImage*& image, UrlRef path) = 0
Map executable into address space.
It will be unmapped when calling release() on the image object.
virtual IExecutableImage*CCL_API createImage (ModuleRef module) = 0
Create image object for given module reference (must be released by caller!)
virtual IExecutableIterator*CCL_API createIterator () = 0
Create iterator of loaded executables.
virtual void CCL_API addNativeImage (ModuleRef module) = 0
Register module reference (already loaded).
virtual void CCL_API removeNativeImage (ModuleRef module) = 0
Unregister module reference (no unload).
virtual tresult CCL_API execute ( Threading::ProcessID& processId, UrlRef path, ArgsRef args, int flags = 0, IUnknown* context = nullptr ) = 0
Executes another program with given arguments and options (see System::ExecutionFlags).
virtual tresult CCL_API relaunch (ArgsRef args) = 0
Start new instance of main executable.
virtual tresult CCL_API terminate (Threading::ProcessID processId) = 0
Terminate process with given identifier.
virtual tresult CCL_API getExecutablePath ( IUrl& path, Threading::ProcessID processId ) = 0
Get the path to the main module of a process.
virtual tbool CCL_API isProcessRunning (UrlRef executableFile) = 0
Determine if a process is currently running.
virtual tresult CCL_API getModuleInfo (IAttributeList& attributes, UrlRef path) = 0
Get platform version information for module.