master
md 39 lines 1.11 KB
Rendered Raw
1 # WslcSetProcessSettingsCallbacks
2
3 ```c
4 STDAPI WslcSetProcessSettingsCallbacks(_In_ WslcProcessSettings* processSettings, _In_ const WslcProcessCallbacks* callbacks, _In_opt_ PVOID context);
5 ```
6
7 | Parameter | Type | Direction |
8 |---|---|---|
9 | `processSettings` | `WslcProcessSettings*` | in |
10 | `callbacks` | `const WslcProcessCallbacks*` | in |
11 | `context` | `PVOID` | in, optional |
12
13 Return value: `HRESULT`.
14
15 Header note: using callbacks consumes the process I/O handles and prevents later acquisition through `WslcGetProcessIOHandle`.
16
17 Example:
18
19 ```c
20 void CALLBACK OnStdOut(WslcProcessIOHandle ioHandle, const BYTE* data, uint32_t dataBytes, PVOID context)
21 {
22 UNREFERENCED_PARAMETER(ioHandle);
23 UNREFERENCED_PARAMETER(context);
24 fwrite(data, 1, dataBytes, stdout);
25 }
26
27 void CALLBACK OnExit(INT32 exitCode, PVOID context)
28 {
29 UNREFERENCED_PARAMETER(context);
30 printf("exit=%ld\n", (long)exitCode);
31 }
32
33 WslcProcessCallbacks callbacks = { 0 };
34 callbacks.onStdOut = OnStdOut;
35 callbacks.onStdErr = OnStdOut;
36 callbacks.onExit = OnExit;
37
38 HRESULT hr = WslcSetProcessSettingsCallbacks(&processSettings, &callbacks, NULL);
39 ```