While trying to run some executables I noticed handlers for
`NtUserRegisterClassExWOW`/`NtUserUnregisterClass` were necessary, so
this PR aims to add them. Also, while working on this PR I noticed that
atoms should be ref-counted, so this PR also does that.
I found a previous abandoned PR that aimed to add it
(https://github.com/momo5502/emulator/pull/101), so I took some of the
feedback from that and added a common function in process_context to
handle the atoms, I hope that's ok.
This PR aims to fix an issue with NtOpenSection where it would fail with
"Unsupported section" if the RootDirectory was
"BASE_NAMED_OBJECTS_DIRECTORY", it also adds handlers for "NtOpenThread"
(stub), "NtUserGetProcessWindowStation" (stub) and "NtFlushBuffersFile".
As you can see from the changes, the `NtOpenThread` handler simply
returns `STATUS_NOT_SUPPORTED`. I don't know if there's anything better
I could do, but this was enough to get around it in the executable I was
trying to run.
Bumps [deps/googletest](https://github.com/google/googletest) from
`e90fe24` to `155b337`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="155b337c93"><code>155b337</code></a>
Bump RE2 dependency to 2024-07-02.bcr.1</li>
<li>See full diff in <a
href="e90fe24856...155b337c93">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Bumps [deps/reflect](https://github.com/qlibs/reflect) from `e85c958` to
`68d8fd0`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="68d8fd0913"><code>68d8fd0</code></a>
🎨 [style] formatting</li>
<li><a
href="1e497a9d7a"><code>1e497a9</code></a>
🔧 [cppm] C++ mode</li>
<li><a
href="f03e4052dd"><code>f03e405</code></a>
📚 [README]</li>
<li><a
href="809d8506e7"><code>809d850</code></a>
🔧 LICENSE</li>
<li><a
href="fe39b8f0f4"><code>fe39b8f</code></a>
📚 [README]</li>
<li><a
href="aa7121a971"><code>aa7121a</code></a>
📚 [README]</li>
<li><a
href="aed8253baf"><code>aed8253</code></a>
📚 [README]</li>
<li><a
href="4ca8ce1976"><code>4ca8ce1</code></a>
🔧 [cppm] license</li>
<li><a
href="1dbce7ae71"><code>1dbce7a</code></a>
🆕 Support C++20 module - original commit by <a
href="https://github.com/stripe2933"><code>@stripe2933</code></a> - <a
href="https://github">https://github</a>....</li>
<li>See full diff in <a
href="e85c958d22...68d8fd0913">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>