mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
update documentation for service
This commit is contained in:
Vendored
+647
@@ -0,0 +1,647 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en" data-content_root="../">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>ctypes — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
</head><body>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">ctypes</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for ctypes</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""create and manipulate C data types in Python"""</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">os</span> <span class="k">as</span> <span class="nn">_os</span><span class="o">,</span> <span class="nn">sys</span> <span class="k">as</span> <span class="nn">_sys</span>
|
||||
<span class="kn">import</span> <span class="nn">types</span> <span class="k">as</span> <span class="nn">_types</span>
|
||||
|
||||
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">"1.1.0"</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Structure</span><span class="p">,</span> <span class="n">Array</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">_Pointer</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">CFuncPtr</span> <span class="k">as</span> <span class="n">_CFuncPtr</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">__version__</span> <span class="k">as</span> <span class="n">_ctypes_version</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">RTLD_LOCAL</span><span class="p">,</span> <span class="n">RTLD_GLOBAL</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">ArgumentError</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">struct</span> <span class="kn">import</span> <span class="n">calcsize</span> <span class="k">as</span> <span class="n">_calcsize</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">__version__</span> <span class="o">!=</span> <span class="n">_ctypes_version</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Version number mismatch"</span><span class="p">,</span> <span class="n">__version__</span><span class="p">,</span> <span class="n">_ctypes_version</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">FormatError</span>
|
||||
|
||||
<span class="n">DEFAULT_MODE</span> <span class="o">=</span> <span class="n">RTLD_LOCAL</span>
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"posix"</span> <span class="ow">and</span> <span class="n">_sys</span><span class="o">.</span><span class="n">platform</span> <span class="o">==</span> <span class="s2">"darwin"</span><span class="p">:</span>
|
||||
<span class="c1"># On OS X 10.3, we use RTLD_GLOBAL as default mode</span>
|
||||
<span class="c1"># because RTLD_LOCAL does not work at least on some</span>
|
||||
<span class="c1"># libraries. OS X 10.3 is Darwin 7, so we check for</span>
|
||||
<span class="c1"># that.</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">_os</span><span class="o">.</span><span class="n">uname</span><span class="p">()</span><span class="o">.</span><span class="n">release</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="o"><</span> <span class="mi">8</span><span class="p">:</span>
|
||||
<span class="n">DEFAULT_MODE</span> <span class="o">=</span> <span class="n">RTLD_GLOBAL</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">FUNCFLAG_CDECL</span> <span class="k">as</span> <span class="n">_FUNCFLAG_CDECL</span><span class="p">,</span> \
|
||||
<span class="n">FUNCFLAG_PYTHONAPI</span> <span class="k">as</span> <span class="n">_FUNCFLAG_PYTHONAPI</span><span class="p">,</span> \
|
||||
<span class="n">FUNCFLAG_USE_ERRNO</span> <span class="k">as</span> <span class="n">_FUNCFLAG_USE_ERRNO</span><span class="p">,</span> \
|
||||
<span class="n">FUNCFLAG_USE_LASTERROR</span> <span class="k">as</span> <span class="n">_FUNCFLAG_USE_LASTERROR</span>
|
||||
|
||||
<span class="c1"># WINOLEAPI -> HRESULT</span>
|
||||
<span class="c1"># WINOLEAPI_(type)</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="c1"># STDMETHODCALLTYPE</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="c1"># STDMETHOD(name)</span>
|
||||
<span class="c1"># STDMETHOD_(type, name)</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="c1"># STDAPICALLTYPE</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">create_string_buffer</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""create_string_buffer(aBytes) -> character array</span>
|
||||
<span class="sd"> create_string_buffer(anInteger) -> character array</span>
|
||||
<span class="sd"> create_string_buffer(aBytes, anInteger) -> character array</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">size</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">init</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span>
|
||||
<span class="n">_sys</span><span class="o">.</span><span class="n">audit</span><span class="p">(</span><span class="s2">"ctypes.create_string_buffer"</span><span class="p">,</span> <span class="n">init</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
||||
<span class="n">buftype</span> <span class="o">=</span> <span class="n">c_char</span> <span class="o">*</span> <span class="n">size</span>
|
||||
<span class="n">buf</span> <span class="o">=</span> <span class="n">buftype</span><span class="p">()</span>
|
||||
<span class="n">buf</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">init</span>
|
||||
<span class="k">return</span> <span class="n">buf</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
<span class="n">_sys</span><span class="o">.</span><span class="n">audit</span><span class="p">(</span><span class="s2">"ctypes.create_string_buffer"</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">init</span><span class="p">)</span>
|
||||
<span class="n">buftype</span> <span class="o">=</span> <span class="n">c_char</span> <span class="o">*</span> <span class="n">init</span>
|
||||
<span class="n">buf</span> <span class="o">=</span> <span class="n">buftype</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="n">buf</span>
|
||||
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="n">init</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Alias to create_string_buffer() for backward compatibility</span>
|
||||
<span class="n">c_buffer</span> <span class="o">=</span> <span class="n">create_string_buffer</span>
|
||||
|
||||
<span class="n">_c_functype_cache</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">def</span> <span class="nf">CFUNCTYPE</span><span class="p">(</span><span class="n">restype</span><span class="p">,</span> <span class="o">*</span><span class="n">argtypes</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""CFUNCTYPE(restype, *argtypes,</span>
|
||||
<span class="sd"> use_errno=False, use_last_error=False) -> function prototype.</span>
|
||||
|
||||
<span class="sd"> restype: the result type</span>
|
||||
<span class="sd"> argtypes: a sequence specifying the argument types</span>
|
||||
|
||||
<span class="sd"> The function prototype can be called in different ways to create a</span>
|
||||
<span class="sd"> callable object:</span>
|
||||
|
||||
<span class="sd"> prototype(integer address) -> foreign function</span>
|
||||
<span class="sd"> prototype(callable) -> create and return a C callable function from callable</span>
|
||||
<span class="sd"> prototype(integer index, method name[, paramflags]) -> foreign function calling a COM method</span>
|
||||
<span class="sd"> prototype((ordinal number, dll object)[, paramflags]) -> foreign function exported by ordinal</span>
|
||||
<span class="sd"> prototype((function name, dll object)[, paramflags]) -> foreign function exported by name</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">flags</span> <span class="o">=</span> <span class="n">_FUNCFLAG_CDECL</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"use_errno"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
||||
<span class="n">flags</span> <span class="o">|=</span> <span class="n">_FUNCFLAG_USE_ERRNO</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"use_last_error"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
||||
<span class="n">flags</span> <span class="o">|=</span> <span class="n">_FUNCFLAG_USE_LASTERROR</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"unexpected keyword argument(s) </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">kw</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">_c_functype_cache</span><span class="p">[(</span><span class="n">restype</span><span class="p">,</span> <span class="n">argtypes</span><span class="p">,</span> <span class="n">flags</span><span class="p">)]</span>
|
||||
<span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">CFunctionType</span><span class="p">(</span><span class="n">_CFuncPtr</span><span class="p">):</span>
|
||||
<span class="n">_argtypes_</span> <span class="o">=</span> <span class="n">argtypes</span>
|
||||
<span class="n">_restype_</span> <span class="o">=</span> <span class="n">restype</span>
|
||||
<span class="n">_flags_</span> <span class="o">=</span> <span class="n">flags</span>
|
||||
<span class="n">_c_functype_cache</span><span class="p">[(</span><span class="n">restype</span><span class="p">,</span> <span class="n">argtypes</span><span class="p">,</span> <span class="n">flags</span><span class="p">)]</span> <span class="o">=</span> <span class="n">CFunctionType</span>
|
||||
<span class="k">return</span> <span class="n">CFunctionType</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">LoadLibrary</span> <span class="k">as</span> <span class="n">_dlopen</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">FUNCFLAG_STDCALL</span> <span class="k">as</span> <span class="n">_FUNCFLAG_STDCALL</span>
|
||||
|
||||
<span class="n">_win_functype_cache</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">def</span> <span class="nf">WINFUNCTYPE</span><span class="p">(</span><span class="n">restype</span><span class="p">,</span> <span class="o">*</span><span class="n">argtypes</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
|
||||
<span class="c1"># docstring set later (very similar to CFUNCTYPE.__doc__)</span>
|
||||
<span class="n">flags</span> <span class="o">=</span> <span class="n">_FUNCFLAG_STDCALL</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"use_errno"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
||||
<span class="n">flags</span> <span class="o">|=</span> <span class="n">_FUNCFLAG_USE_ERRNO</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"use_last_error"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
||||
<span class="n">flags</span> <span class="o">|=</span> <span class="n">_FUNCFLAG_USE_LASTERROR</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"unexpected keyword argument(s) </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">kw</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">_win_functype_cache</span><span class="p">[(</span><span class="n">restype</span><span class="p">,</span> <span class="n">argtypes</span><span class="p">,</span> <span class="n">flags</span><span class="p">)]</span>
|
||||
<span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">WinFunctionType</span><span class="p">(</span><span class="n">_CFuncPtr</span><span class="p">):</span>
|
||||
<span class="n">_argtypes_</span> <span class="o">=</span> <span class="n">argtypes</span>
|
||||
<span class="n">_restype_</span> <span class="o">=</span> <span class="n">restype</span>
|
||||
<span class="n">_flags_</span> <span class="o">=</span> <span class="n">flags</span>
|
||||
<span class="n">_win_functype_cache</span><span class="p">[(</span><span class="n">restype</span><span class="p">,</span> <span class="n">argtypes</span><span class="p">,</span> <span class="n">flags</span><span class="p">)]</span> <span class="o">=</span> <span class="n">WinFunctionType</span>
|
||||
<span class="k">return</span> <span class="n">WinFunctionType</span>
|
||||
<span class="k">if</span> <span class="n">WINFUNCTYPE</span><span class="o">.</span><span class="vm">__doc__</span><span class="p">:</span>
|
||||
<span class="n">WINFUNCTYPE</span><span class="o">.</span><span class="vm">__doc__</span> <span class="o">=</span> <span class="n">CFUNCTYPE</span><span class="o">.</span><span class="vm">__doc__</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"CFUNCTYPE"</span><span class="p">,</span> <span class="s2">"WINFUNCTYPE"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">elif</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"posix"</span><span class="p">:</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">dlopen</span> <span class="k">as</span> <span class="n">_dlopen</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">sizeof</span><span class="p">,</span> <span class="n">byref</span><span class="p">,</span> <span class="n">addressof</span><span class="p">,</span> <span class="n">alignment</span><span class="p">,</span> <span class="n">resize</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">get_errno</span><span class="p">,</span> <span class="n">set_errno</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">_SimpleCData</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_check_size</span><span class="p">(</span><span class="n">typ</span><span class="p">,</span> <span class="n">typecode</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="c1"># Check if sizeof(ctypes_type) against struct.calcsize. This</span>
|
||||
<span class="c1"># should protect somewhat against a misconfigured libffi.</span>
|
||||
<span class="kn">from</span> <span class="nn">struct</span> <span class="kn">import</span> <span class="n">calcsize</span>
|
||||
<span class="k">if</span> <span class="n">typecode</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="c1"># Most _type_ codes are the same as used in struct</span>
|
||||
<span class="n">typecode</span> <span class="o">=</span> <span class="n">typ</span><span class="o">.</span><span class="n">_type_</span>
|
||||
<span class="n">actual</span><span class="p">,</span> <span class="n">required</span> <span class="o">=</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">typ</span><span class="p">),</span> <span class="n">calcsize</span><span class="p">(</span><span class="n">typecode</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">actual</span> <span class="o">!=</span> <span class="n">required</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">SystemError</span><span class="p">(</span><span class="s2">"sizeof(</span><span class="si">%s</span><span class="s2">) wrong: </span><span class="si">%d</span><span class="s2"> instead of </span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> \
|
||||
<span class="p">(</span><span class="n">typ</span><span class="p">,</span> <span class="n">actual</span><span class="p">,</span> <span class="n">required</span><span class="p">))</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">py_object</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"O"</span>
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__repr__</span><span class="p">()</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">(<NULL>)"</span> <span class="o">%</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">py_object</span><span class="p">,</span> <span class="s2">"P"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_short</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"h"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_short</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_ushort</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"H"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_ushort</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_long</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"l"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_long</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_ulong</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"L"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_ulong</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_calcsize</span><span class="p">(</span><span class="s2">"i"</span><span class="p">)</span> <span class="o">==</span> <span class="n">_calcsize</span><span class="p">(</span><span class="s2">"l"</span><span class="p">):</span>
|
||||
<span class="c1"># if int and long have the same size, make c_int an alias for c_long</span>
|
||||
<span class="n">c_int</span> <span class="o">=</span> <span class="n">c_long</span>
|
||||
<span class="n">c_uint</span> <span class="o">=</span> <span class="n">c_ulong</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">class</span> <span class="nc">c_int</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"i"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_int</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_uint</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"I"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_uint</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_float</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"f"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_float</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_double</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"d"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_double</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_longdouble</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"g"</span>
|
||||
<span class="k">if</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_longdouble</span><span class="p">)</span> <span class="o">==</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_double</span><span class="p">):</span>
|
||||
<span class="n">c_longdouble</span> <span class="o">=</span> <span class="n">c_double</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_calcsize</span><span class="p">(</span><span class="s2">"l"</span><span class="p">)</span> <span class="o">==</span> <span class="n">_calcsize</span><span class="p">(</span><span class="s2">"q"</span><span class="p">):</span>
|
||||
<span class="c1"># if long and long long have the same size, make c_longlong an alias for c_long</span>
|
||||
<span class="n">c_longlong</span> <span class="o">=</span> <span class="n">c_long</span>
|
||||
<span class="n">c_ulonglong</span> <span class="o">=</span> <span class="n">c_ulong</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">class</span> <span class="nc">c_longlong</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"q"</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_longlong</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_ulonglong</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"Q"</span>
|
||||
<span class="c1">## def from_param(cls, val):</span>
|
||||
<span class="c1">## return ('d', float(val), val)</span>
|
||||
<span class="c1">## from_param = classmethod(from_param)</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_ulonglong</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_ubyte</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"B"</span>
|
||||
<span class="n">c_ubyte</span><span class="o">.</span><span class="n">__ctype_le__</span> <span class="o">=</span> <span class="n">c_ubyte</span><span class="o">.</span><span class="n">__ctype_be__</span> <span class="o">=</span> <span class="n">c_ubyte</span>
|
||||
<span class="c1"># backward compatibility:</span>
|
||||
<span class="c1">##c_uchar = c_ubyte</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_ubyte</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_byte</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"b"</span>
|
||||
<span class="n">c_byte</span><span class="o">.</span><span class="n">__ctype_le__</span> <span class="o">=</span> <span class="n">c_byte</span><span class="o">.</span><span class="n">__ctype_be__</span> <span class="o">=</span> <span class="n">c_byte</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_byte</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_char</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"c"</span>
|
||||
<span class="n">c_char</span><span class="o">.</span><span class="n">__ctype_le__</span> <span class="o">=</span> <span class="n">c_char</span><span class="o">.</span><span class="n">__ctype_be__</span> <span class="o">=</span> <span class="n">c_char</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_char</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_char_p</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"z"</span>
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">(</span><span class="si">%s</span><span class="s2">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">c_void_p</span><span class="o">.</span><span class="n">from_buffer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_char_p</span><span class="p">,</span> <span class="s2">"P"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_void_p</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"P"</span>
|
||||
<span class="n">c_voidp</span> <span class="o">=</span> <span class="n">c_void_p</span> <span class="c1"># backwards compatibility (to a bug)</span>
|
||||
<span class="n">_check_size</span><span class="p">(</span><span class="n">c_void_p</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_bool</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"?"</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">POINTER</span><span class="p">,</span> <span class="n">pointer</span><span class="p">,</span> <span class="n">_pointer_type_cache</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_wchar_p</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"Z"</span>
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">(</span><span class="si">%s</span><span class="s2">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">c_void_p</span><span class="o">.</span><span class="n">from_buffer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">c_wchar</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"u"</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_reset_cache</span><span class="p">():</span>
|
||||
<span class="n">_pointer_type_cache</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
||||
<span class="n">_c_functype_cache</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
<span class="n">_win_functype_cache</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
||||
<span class="c1"># _SimpleCData.c_wchar_p_from_param</span>
|
||||
<span class="n">POINTER</span><span class="p">(</span><span class="n">c_wchar</span><span class="p">)</span><span class="o">.</span><span class="n">from_param</span> <span class="o">=</span> <span class="n">c_wchar_p</span><span class="o">.</span><span class="n">from_param</span>
|
||||
<span class="c1"># _SimpleCData.c_char_p_from_param</span>
|
||||
<span class="n">POINTER</span><span class="p">(</span><span class="n">c_char</span><span class="p">)</span><span class="o">.</span><span class="n">from_param</span> <span class="o">=</span> <span class="n">c_char_p</span><span class="o">.</span><span class="n">from_param</span>
|
||||
<span class="n">_pointer_type_cache</span><span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="n">c_void_p</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">create_unicode_buffer</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""create_unicode_buffer(aString) -> character array</span>
|
||||
<span class="sd"> create_unicode_buffer(anInteger) -> character array</span>
|
||||
<span class="sd"> create_unicode_buffer(aString, anInteger) -> character array</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">size</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_wchar</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
|
||||
<span class="c1"># UTF-16 requires a surrogate pair (2 wchar_t) for non-BMP</span>
|
||||
<span class="c1"># characters (outside [U+0000; U+FFFF] range). +1 for trailing</span>
|
||||
<span class="c1"># NUL character.</span>
|
||||
<span class="n">size</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="mi">2</span> <span class="k">if</span> <span class="nb">ord</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="o">></span> <span class="mh">0xFFFF</span> <span class="k">else</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">init</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># 32-bit wchar_t (1 wchar_t per Unicode character). +1 for</span>
|
||||
<span class="c1"># trailing NUL character.</span>
|
||||
<span class="n">size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">init</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<span class="n">_sys</span><span class="o">.</span><span class="n">audit</span><span class="p">(</span><span class="s2">"ctypes.create_unicode_buffer"</span><span class="p">,</span> <span class="n">init</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
||||
<span class="n">buftype</span> <span class="o">=</span> <span class="n">c_wchar</span> <span class="o">*</span> <span class="n">size</span>
|
||||
<span class="n">buf</span> <span class="o">=</span> <span class="n">buftype</span><span class="p">()</span>
|
||||
<span class="n">buf</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">init</span>
|
||||
<span class="k">return</span> <span class="n">buf</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
<span class="n">_sys</span><span class="o">.</span><span class="n">audit</span><span class="p">(</span><span class="s2">"ctypes.create_unicode_buffer"</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">init</span><span class="p">)</span>
|
||||
<span class="n">buftype</span> <span class="o">=</span> <span class="n">c_wchar</span> <span class="o">*</span> <span class="n">init</span>
|
||||
<span class="n">buf</span> <span class="o">=</span> <span class="n">buftype</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="n">buf</span>
|
||||
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="n">init</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="c1"># XXX Deprecated</span>
|
||||
<span class="k">def</span> <span class="nf">SetPointerType</span><span class="p">(</span><span class="n">pointer</span><span class="p">,</span> <span class="bp">cls</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">_pointer_type_cache</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"This type already exists in the cache"</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">id</span><span class="p">(</span><span class="n">pointer</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">_pointer_type_cache</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"What's this???"</span><span class="p">)</span>
|
||||
<span class="n">pointer</span><span class="o">.</span><span class="n">set_type</span><span class="p">(</span><span class="bp">cls</span><span class="p">)</span>
|
||||
<span class="n">_pointer_type_cache</span><span class="p">[</span><span class="bp">cls</span><span class="p">]</span> <span class="o">=</span> <span class="n">pointer</span>
|
||||
<span class="k">del</span> <span class="n">_pointer_type_cache</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">pointer</span><span class="p">)]</span>
|
||||
|
||||
<span class="c1"># XXX Deprecated</span>
|
||||
<span class="k">def</span> <span class="nf">ARRAY</span><span class="p">(</span><span class="n">typ</span><span class="p">,</span> <span class="nb">len</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">typ</span> <span class="o">*</span> <span class="nb">len</span>
|
||||
|
||||
<span class="c1">################################################################</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">CDLL</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""An instance of this class represents a loaded dll/shared</span>
|
||||
<span class="sd"> library, exporting functions using the standard C calling</span>
|
||||
<span class="sd"> convention (named 'cdecl' on Windows).</span>
|
||||
|
||||
<span class="sd"> The exported functions can be accessed as attributes, or by</span>
|
||||
<span class="sd"> indexing with the function name. Examples:</span>
|
||||
|
||||
<span class="sd"> <obj>.qsort -> callable object</span>
|
||||
<span class="sd"> <obj>['qsort'] -> callable object</span>
|
||||
|
||||
<span class="sd"> Calling the functions releases the Python GIL during the call and</span>
|
||||
<span class="sd"> reacquires it afterwards.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">_func_flags_</span> <span class="o">=</span> <span class="n">_FUNCFLAG_CDECL</span>
|
||||
<span class="n">_func_restype_</span> <span class="o">=</span> <span class="n">c_int</span>
|
||||
<span class="c1"># default values for repr</span>
|
||||
<span class="n">_name</span> <span class="o">=</span> <span class="s1">'<uninitialized>'</span>
|
||||
<span class="n">_handle</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">_FuncPtr</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="n">DEFAULT_MODE</span><span class="p">,</span> <span class="n">handle</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">use_errno</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">use_last_error</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">winmode</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_name</span> <span class="o">=</span> <span class="n">name</span>
|
||||
<span class="n">flags</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_func_flags_</span>
|
||||
<span class="k">if</span> <span class="n">use_errno</span><span class="p">:</span>
|
||||
<span class="n">flags</span> <span class="o">|=</span> <span class="n">_FUNCFLAG_USE_ERRNO</span>
|
||||
<span class="k">if</span> <span class="n">use_last_error</span><span class="p">:</span>
|
||||
<span class="n">flags</span> <span class="o">|=</span> <span class="n">_FUNCFLAG_USE_LASTERROR</span>
|
||||
<span class="k">if</span> <span class="n">_sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"aix"</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""When the name contains ".a(" and ends with ")",</span>
|
||||
<span class="sd"> e.g., "libFOO.a(libFOO.so)" - this is taken to be an</span>
|
||||
<span class="sd"> archive(member) syntax for dlopen(), and the mode is adjusted.</span>
|
||||
<span class="sd"> Otherwise, name is presented to dlopen() as a file argument.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">name</span> <span class="ow">and</span> <span class="n">name</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">")"</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">".a("</span> <span class="ow">in</span> <span class="n">name</span><span class="p">:</span>
|
||||
<span class="n">mode</span> <span class="o">|=</span> <span class="p">(</span> <span class="n">_os</span><span class="o">.</span><span class="n">RTLD_MEMBER</span> <span class="o">|</span> <span class="n">_os</span><span class="o">.</span><span class="n">RTLD_NOW</span> <span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">winmode</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">mode</span> <span class="o">=</span> <span class="n">winmode</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="kn">import</span> <span class="nn">nt</span>
|
||||
<span class="n">mode</span> <span class="o">=</span> <span class="n">nt</span><span class="o">.</span><span class="n">_LOAD_LIBRARY_SEARCH_DEFAULT_DIRS</span>
|
||||
<span class="k">if</span> <span class="s1">'/'</span> <span class="ow">in</span> <span class="n">name</span> <span class="ow">or</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span> <span class="ow">in</span> <span class="n">name</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_name</span> <span class="o">=</span> <span class="n">nt</span><span class="o">.</span><span class="n">_getfullpathname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="p">)</span>
|
||||
<span class="n">mode</span> <span class="o">|=</span> <span class="n">nt</span><span class="o">.</span><span class="n">_LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">_FuncPtr</span><span class="p">(</span><span class="n">_CFuncPtr</span><span class="p">):</span>
|
||||
<span class="n">_flags_</span> <span class="o">=</span> <span class="n">flags</span>
|
||||
<span class="n">_restype_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_func_restype_</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_FuncPtr</span> <span class="o">=</span> <span class="n">_FuncPtr</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">handle</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_handle</span> <span class="o">=</span> <span class="n">_dlopen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_handle</span> <span class="o">=</span> <span class="n">handle</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="s2">"<</span><span class="si">%s</span><span class="s2"> '</span><span class="si">%s</span><span class="s2">', handle </span><span class="si">%x</span><span class="s2"> at </span><span class="si">%#x</span><span class="s2">>"</span> <span class="o">%</span> \
|
||||
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="p">,</span>
|
||||
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_handle</span> <span class="o">&</span> <span class="p">(</span><span class="n">_sys</span><span class="o">.</span><span class="n">maxsize</span><span class="o">*</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)),</span>
|
||||
<span class="nb">id</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">&</span> <span class="p">(</span><span class="n">_sys</span><span class="o">.</span><span class="n">maxsize</span><span class="o">*</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'__'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">name</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">'__'</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="n">func</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__getitem__</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">func</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">func</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name_or_ordinal</span><span class="p">):</span>
|
||||
<span class="n">func</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_FuncPtr</span><span class="p">((</span><span class="n">name_or_ordinal</span><span class="p">,</span> <span class="bp">self</span><span class="p">))</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name_or_ordinal</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
|
||||
<span class="n">func</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">=</span> <span class="n">name_or_ordinal</span>
|
||||
<span class="k">return</span> <span class="n">func</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">PyDLL</span><span class="p">(</span><span class="n">CDLL</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""This class represents the Python library itself. It allows</span>
|
||||
<span class="sd"> accessing Python API functions. The GIL is not released, and</span>
|
||||
<span class="sd"> Python exceptions are handled correctly.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">_func_flags_</span> <span class="o">=</span> <span class="n">_FUNCFLAG_CDECL</span> <span class="o">|</span> <span class="n">_FUNCFLAG_PYTHONAPI</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">WinDLL</span><span class="p">(</span><span class="n">CDLL</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""This class represents a dll exporting functions using the</span>
|
||||
<span class="sd"> Windows stdcall calling convention.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">_func_flags_</span> <span class="o">=</span> <span class="n">_FUNCFLAG_STDCALL</span>
|
||||
|
||||
<span class="c1"># XXX Hm, what about HRESULT as normal parameter?</span>
|
||||
<span class="c1"># Mustn't it derive from c_long then?</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">_check_HRESULT</span><span class="p">,</span> <span class="n">_SimpleCData</span>
|
||||
<span class="k">class</span> <span class="nc">HRESULT</span><span class="p">(</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"l"</span>
|
||||
<span class="c1"># _check_retval_ is called with the function's result when it</span>
|
||||
<span class="c1"># is used as restype. It checks for the FAILED bit, and</span>
|
||||
<span class="c1"># raises an OSError if it is set.</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="c1"># The _check_retval_ method is implemented in C, so that the</span>
|
||||
<span class="c1"># method definition itself is not included in the traceback</span>
|
||||
<span class="c1"># when it raises an error - that is what we want (and Python</span>
|
||||
<span class="c1"># doesn't have a way to raise an exception in the caller's</span>
|
||||
<span class="c1"># frame).</span>
|
||||
<span class="n">_check_retval_</span> <span class="o">=</span> <span class="n">_check_HRESULT</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">OleDLL</span><span class="p">(</span><span class="n">CDLL</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""This class represents a dll exporting functions using the</span>
|
||||
<span class="sd"> Windows stdcall calling convention, and returning HRESULT.</span>
|
||||
<span class="sd"> HRESULT error values are automatically raised as OSError</span>
|
||||
<span class="sd"> exceptions.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">_func_flags_</span> <span class="o">=</span> <span class="n">_FUNCFLAG_STDCALL</span>
|
||||
<span class="n">_func_restype_</span> <span class="o">=</span> <span class="n">HRESULT</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">LibraryLoader</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dlltype</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_dlltype</span> <span class="o">=</span> <span class="n">dlltype</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">name</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'_'</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="n">dll</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_dlltype</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">dll</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">dll</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">LoadLibrary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_dlltype</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
|
||||
<span class="n">__class_getitem__</span> <span class="o">=</span> <span class="nb">classmethod</span><span class="p">(</span><span class="n">_types</span><span class="o">.</span><span class="n">GenericAlias</span><span class="p">)</span>
|
||||
|
||||
<span class="n">cdll</span> <span class="o">=</span> <span class="n">LibraryLoader</span><span class="p">(</span><span class="n">CDLL</span><span class="p">)</span>
|
||||
<span class="n">pydll</span> <span class="o">=</span> <span class="n">LibraryLoader</span><span class="p">(</span><span class="n">PyDLL</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
<span class="n">pythonapi</span> <span class="o">=</span> <span class="n">PyDLL</span><span class="p">(</span><span class="s2">"python dll"</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">_sys</span><span class="o">.</span><span class="n">dllhandle</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">_sys</span><span class="o">.</span><span class="n">platform</span> <span class="o">==</span> <span class="s2">"cygwin"</span><span class="p">:</span>
|
||||
<span class="n">pythonapi</span> <span class="o">=</span> <span class="n">PyDLL</span><span class="p">(</span><span class="s2">"libpython</span><span class="si">%d</span><span class="s2">.</span><span class="si">%d</span><span class="s2">.dll"</span> <span class="o">%</span> <span class="n">_sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">[:</span><span class="mi">2</span><span class="p">])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">pythonapi</span> <span class="o">=</span> <span class="n">PyDLL</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span>
|
||||
<span class="n">windll</span> <span class="o">=</span> <span class="n">LibraryLoader</span><span class="p">(</span><span class="n">WinDLL</span><span class="p">)</span>
|
||||
<span class="n">oledll</span> <span class="o">=</span> <span class="n">LibraryLoader</span><span class="p">(</span><span class="n">OleDLL</span><span class="p">)</span>
|
||||
|
||||
<span class="n">GetLastError</span> <span class="o">=</span> <span class="n">windll</span><span class="o">.</span><span class="n">kernel32</span><span class="o">.</span><span class="n">GetLastError</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">get_last_error</span><span class="p">,</span> <span class="n">set_last_error</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">WinError</span><span class="p">(</span><span class="n">code</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">descr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">code</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">code</span> <span class="o">=</span> <span class="n">GetLastError</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="n">descr</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">descr</span> <span class="o">=</span> <span class="n">FormatError</span><span class="p">(</span><span class="n">code</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="ne">OSError</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="n">descr</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">code</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_uint</span><span class="p">)</span> <span class="o">==</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_void_p</span><span class="p">):</span>
|
||||
<span class="n">c_size_t</span> <span class="o">=</span> <span class="n">c_uint</span>
|
||||
<span class="n">c_ssize_t</span> <span class="o">=</span> <span class="n">c_int</span>
|
||||
<span class="k">elif</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_ulong</span><span class="p">)</span> <span class="o">==</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_void_p</span><span class="p">):</span>
|
||||
<span class="n">c_size_t</span> <span class="o">=</span> <span class="n">c_ulong</span>
|
||||
<span class="n">c_ssize_t</span> <span class="o">=</span> <span class="n">c_long</span>
|
||||
<span class="k">elif</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_ulonglong</span><span class="p">)</span> <span class="o">==</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">c_void_p</span><span class="p">):</span>
|
||||
<span class="n">c_size_t</span> <span class="o">=</span> <span class="n">c_ulonglong</span>
|
||||
<span class="n">c_ssize_t</span> <span class="o">=</span> <span class="n">c_longlong</span>
|
||||
|
||||
<span class="c1"># functions</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">_memmove_addr</span><span class="p">,</span> <span class="n">_memset_addr</span><span class="p">,</span> <span class="n">_string_at_addr</span><span class="p">,</span> <span class="n">_cast_addr</span>
|
||||
|
||||
<span class="c1">## void *memmove(void *, const void *, size_t);</span>
|
||||
<span class="n">memmove</span> <span class="o">=</span> <span class="n">CFUNCTYPE</span><span class="p">(</span><span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_size_t</span><span class="p">)(</span><span class="n">_memmove_addr</span><span class="p">)</span>
|
||||
|
||||
<span class="c1">## void *memset(void *, int, size_t)</span>
|
||||
<span class="n">memset</span> <span class="o">=</span> <span class="n">CFUNCTYPE</span><span class="p">(</span><span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_int</span><span class="p">,</span> <span class="n">c_size_t</span><span class="p">)(</span><span class="n">_memset_addr</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">PYFUNCTYPE</span><span class="p">(</span><span class="n">restype</span><span class="p">,</span> <span class="o">*</span><span class="n">argtypes</span><span class="p">):</span>
|
||||
<span class="k">class</span> <span class="nc">CFunctionType</span><span class="p">(</span><span class="n">_CFuncPtr</span><span class="p">):</span>
|
||||
<span class="n">_argtypes_</span> <span class="o">=</span> <span class="n">argtypes</span>
|
||||
<span class="n">_restype_</span> <span class="o">=</span> <span class="n">restype</span>
|
||||
<span class="n">_flags_</span> <span class="o">=</span> <span class="n">_FUNCFLAG_CDECL</span> <span class="o">|</span> <span class="n">_FUNCFLAG_PYTHONAPI</span>
|
||||
<span class="k">return</span> <span class="n">CFunctionType</span>
|
||||
|
||||
<span class="n">_cast</span> <span class="o">=</span> <span class="n">PYFUNCTYPE</span><span class="p">(</span><span class="n">py_object</span><span class="p">,</span> <span class="n">c_void_p</span><span class="p">,</span> <span class="n">py_object</span><span class="p">,</span> <span class="n">py_object</span><span class="p">)(</span><span class="n">_cast_addr</span><span class="p">)</span>
|
||||
<span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">typ</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">_cast</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">typ</span><span class="p">)</span>
|
||||
|
||||
<span class="n">_string_at</span> <span class="o">=</span> <span class="n">PYFUNCTYPE</span><span class="p">(</span><span class="n">py_object</span><span class="p">,</span> <span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_int</span><span class="p">)(</span><span class="n">_string_at_addr</span><span class="p">)</span>
|
||||
<span class="k">def</span> <span class="nf">string_at</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span> <span class="n">size</span><span class="o">=-</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""string_at(addr[, size]) -> string</span>
|
||||
|
||||
<span class="sd"> Return the string at addr."""</span>
|
||||
<span class="k">return</span> <span class="n">_string_at</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="kn">from</span> <span class="nn">_ctypes</span> <span class="kn">import</span> <span class="n">_wstring_at_addr</span>
|
||||
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
|
||||
<span class="k">pass</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">_wstring_at</span> <span class="o">=</span> <span class="n">PYFUNCTYPE</span><span class="p">(</span><span class="n">py_object</span><span class="p">,</span> <span class="n">c_void_p</span><span class="p">,</span> <span class="n">c_int</span><span class="p">)(</span><span class="n">_wstring_at_addr</span><span class="p">)</span>
|
||||
<span class="k">def</span> <span class="nf">wstring_at</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span> <span class="n">size</span><span class="o">=-</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""wstring_at(addr[, size]) -> string</span>
|
||||
|
||||
<span class="sd"> Return the string at addr."""</span>
|
||||
<span class="k">return</span> <span class="n">_wstring_at</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">if</span> <span class="n">_os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"nt"</span><span class="p">:</span> <span class="c1"># COM stuff</span>
|
||||
<span class="k">def</span> <span class="nf">DllGetClassObject</span><span class="p">(</span><span class="n">rclsid</span><span class="p">,</span> <span class="n">riid</span><span class="p">,</span> <span class="n">ppv</span><span class="p">):</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">ccom</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span><span class="s2">"comtypes.server.inprocserver"</span><span class="p">,</span> <span class="nb">globals</span><span class="p">(),</span> <span class="nb">locals</span><span class="p">(),</span> <span class="p">[</span><span class="s1">'*'</span><span class="p">])</span>
|
||||
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="o">-</span><span class="mi">2147221231</span> <span class="c1"># CLASS_E_CLASSNOTAVAILABLE</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">ccom</span><span class="o">.</span><span class="n">DllGetClassObject</span><span class="p">(</span><span class="n">rclsid</span><span class="p">,</span> <span class="n">riid</span><span class="p">,</span> <span class="n">ppv</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">DllCanUnloadNow</span><span class="p">():</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">ccom</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span><span class="s2">"comtypes.server.inprocserver"</span><span class="p">,</span> <span class="nb">globals</span><span class="p">(),</span> <span class="nb">locals</span><span class="p">(),</span> <span class="p">[</span><span class="s1">'*'</span><span class="p">])</span>
|
||||
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="mi">0</span> <span class="c1"># S_OK</span>
|
||||
<span class="k">return</span> <span class="n">ccom</span><span class="o">.</span><span class="n">DllCanUnloadNow</span><span class="p">()</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">ctypes._endian</span> <span class="kn">import</span> <span class="n">BigEndianStructure</span><span class="p">,</span> <span class="n">LittleEndianStructure</span>
|
||||
<span class="kn">from</span> <span class="nn">ctypes._endian</span> <span class="kn">import</span> <span class="n">BigEndianUnion</span><span class="p">,</span> <span class="n">LittleEndianUnion</span>
|
||||
|
||||
<span class="c1"># Fill in specifically-sized types</span>
|
||||
<span class="n">c_int8</span> <span class="o">=</span> <span class="n">c_byte</span>
|
||||
<span class="n">c_uint8</span> <span class="o">=</span> <span class="n">c_ubyte</span>
|
||||
<span class="k">for</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">[</span><span class="n">c_short</span><span class="p">,</span> <span class="n">c_int</span><span class="p">,</span> <span class="n">c_long</span><span class="p">,</span> <span class="n">c_longlong</span><span class="p">]:</span>
|
||||
<span class="k">if</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> <span class="n">c_int16</span> <span class="o">=</span> <span class="n">kind</span>
|
||||
<span class="k">elif</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span> <span class="n">c_int32</span> <span class="o">=</span> <span class="n">kind</span>
|
||||
<span class="k">elif</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span> <span class="o">==</span> <span class="mi">8</span><span class="p">:</span> <span class="n">c_int64</span> <span class="o">=</span> <span class="n">kind</span>
|
||||
<span class="k">for</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">[</span><span class="n">c_ushort</span><span class="p">,</span> <span class="n">c_uint</span><span class="p">,</span> <span class="n">c_ulong</span><span class="p">,</span> <span class="n">c_ulonglong</span><span class="p">]:</span>
|
||||
<span class="k">if</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> <span class="n">c_uint16</span> <span class="o">=</span> <span class="n">kind</span>
|
||||
<span class="k">elif</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span> <span class="n">c_uint32</span> <span class="o">=</span> <span class="n">kind</span>
|
||||
<span class="k">elif</span> <span class="n">sizeof</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span> <span class="o">==</span> <span class="mi">8</span><span class="p">:</span> <span class="n">c_uint64</span> <span class="o">=</span> <span class="n">kind</span>
|
||||
<span class="k">del</span><span class="p">(</span><span class="n">kind</span><span class="p">)</span>
|
||||
|
||||
<span class="n">_reset_cache</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<search id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</search>
|
||||
<script>document.getElementById('searchbox').style.display = "block"</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">ctypes</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2015-2020, Clement Rouault.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.3.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+285
@@ -0,0 +1,285 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en" data-content_root="../../">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>ctypes.wintypes — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
</head><body>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../ctypes.html" accesskey="U">ctypes</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">ctypes.wintypes</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for ctypes.wintypes</h1><div class="highlight"><pre>
|
||||
<span></span><span class="c1"># The most useful windows datatypes</span>
|
||||
<span class="kn">import</span> <span class="nn">ctypes</span>
|
||||
|
||||
<span class="n">BYTE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_byte</span>
|
||||
<span class="n">WORD</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ushort</span>
|
||||
<span class="n">DWORD</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ulong</span>
|
||||
|
||||
<span class="c1">#UCHAR = ctypes.c_uchar</span>
|
||||
<span class="n">CHAR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_char</span>
|
||||
<span class="n">WCHAR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_wchar</span>
|
||||
<span class="n">UINT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_uint</span>
|
||||
<span class="n">INT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_int</span>
|
||||
|
||||
<span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_double</span>
|
||||
<span class="n">FLOAT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_float</span>
|
||||
|
||||
<span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">BYTE</span>
|
||||
<span class="n">BOOL</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_long</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">VARIANT_BOOL</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">_SimpleCData</span><span class="p">):</span>
|
||||
<span class="n">_type_</span> <span class="o">=</span> <span class="s2">"v"</span>
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">(</span><span class="si">%r</span><span class="s2">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
|
||||
<span class="n">ULONG</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ulong</span>
|
||||
<span class="n">LONG</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_long</span>
|
||||
|
||||
<span class="n">USHORT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ushort</span>
|
||||
<span class="n">SHORT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_short</span>
|
||||
|
||||
<span class="c1"># in the windows header files, these are structures.</span>
|
||||
<span class="n">_LARGE_INTEGER</span> <span class="o">=</span> <span class="n">LARGE_INTEGER</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_longlong</span>
|
||||
<span class="n">_ULARGE_INTEGER</span> <span class="o">=</span> <span class="n">ULARGE_INTEGER</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ulonglong</span>
|
||||
|
||||
<span class="n">LPCOLESTR</span> <span class="o">=</span> <span class="n">LPOLESTR</span> <span class="o">=</span> <span class="n">OLESTR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_wchar_p</span>
|
||||
<span class="n">LPCWSTR</span> <span class="o">=</span> <span class="n">LPWSTR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_wchar_p</span>
|
||||
<span class="n">LPCSTR</span> <span class="o">=</span> <span class="n">LPSTR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_char_p</span>
|
||||
<span class="n">LPCVOID</span> <span class="o">=</span> <span class="n">LPVOID</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span>
|
||||
|
||||
<span class="c1"># WPARAM is defined as UINT_PTR (unsigned type)</span>
|
||||
<span class="c1"># LPARAM is defined as LONG_PTR (signed type)</span>
|
||||
<span class="k">if</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">sizeof</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">c_long</span><span class="p">)</span> <span class="o">==</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">sizeof</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">):</span>
|
||||
<span class="n">WPARAM</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ulong</span>
|
||||
<span class="n">LPARAM</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_long</span>
|
||||
<span class="k">elif</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">sizeof</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">c_longlong</span><span class="p">)</span> <span class="o">==</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">sizeof</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="p">):</span>
|
||||
<span class="n">WPARAM</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_ulonglong</span>
|
||||
<span class="n">LPARAM</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_longlong</span>
|
||||
|
||||
<span class="n">ATOM</span> <span class="o">=</span> <span class="n">WORD</span>
|
||||
<span class="n">LANGID</span> <span class="o">=</span> <span class="n">WORD</span>
|
||||
|
||||
<span class="n">COLORREF</span> <span class="o">=</span> <span class="n">DWORD</span>
|
||||
<span class="n">LGRPID</span> <span class="o">=</span> <span class="n">DWORD</span>
|
||||
<span class="n">LCTYPE</span> <span class="o">=</span> <span class="n">DWORD</span>
|
||||
|
||||
<span class="n">LCID</span> <span class="o">=</span> <span class="n">DWORD</span>
|
||||
|
||||
<span class="c1">################################################################</span>
|
||||
<span class="c1"># HANDLE types</span>
|
||||
<span class="n">HANDLE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span> <span class="c1"># in the header files: void *</span>
|
||||
|
||||
<span class="n">HACCEL</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HBITMAP</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HBRUSH</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HCOLORSPACE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HDC</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HDESK</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HDWP</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HENHMETAFILE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HFONT</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HGDIOBJ</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HGLOBAL</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HHOOK</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HICON</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HINSTANCE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HKEY</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HKL</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HLOCAL</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HMENU</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HMETAFILE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HMODULE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HMONITOR</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HPALETTE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HPEN</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HRGN</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HRSRC</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HSTR</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HTASK</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HWINSTA</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">HWND</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">SC_HANDLE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
<span class="n">SERVICE_STATUS_HANDLE</span> <span class="o">=</span> <span class="n">HANDLE</span>
|
||||
|
||||
<span class="c1">################################################################</span>
|
||||
<span class="c1"># Some important structure definitions</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">RECT</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"left"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"top"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"right"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"bottom"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">)]</span>
|
||||
<span class="n">tagRECT</span> <span class="o">=</span> <span class="n">_RECTL</span> <span class="o">=</span> <span class="n">RECTL</span> <span class="o">=</span> <span class="n">RECT</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">_SMALL_RECT</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">'Left'</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s1">'Top'</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s1">'Right'</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s1">'Bottom'</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">)]</span>
|
||||
<span class="n">SMALL_RECT</span> <span class="o">=</span> <span class="n">_SMALL_RECT</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">_COORD</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">'X'</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s1">'Y'</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">)]</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">POINT</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"y"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">)]</span>
|
||||
<span class="n">tagPOINT</span> <span class="o">=</span> <span class="n">_POINTL</span> <span class="o">=</span> <span class="n">POINTL</span> <span class="o">=</span> <span class="n">POINT</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">SIZE</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"cx"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"cy"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">)]</span>
|
||||
<span class="n">tagSIZE</span> <span class="o">=</span> <span class="n">SIZEL</span> <span class="o">=</span> <span class="n">SIZE</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">RGB</span><span class="p">(</span><span class="n">red</span><span class="p">,</span> <span class="n">green</span><span class="p">,</span> <span class="n">blue</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">red</span> <span class="o">+</span> <span class="p">(</span><span class="n">green</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">blue</span> <span class="o"><<</span> <span class="mi">16</span><span class="p">)</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">FILETIME</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"dwLowDateTime"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"dwHighDateTime"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">)]</span>
|
||||
<span class="n">_FILETIME</span> <span class="o">=</span> <span class="n">FILETIME</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">MSG</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"hWnd"</span><span class="p">,</span> <span class="n">HWND</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"message"</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"wParam"</span><span class="p">,</span> <span class="n">WPARAM</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"lParam"</span><span class="p">,</span> <span class="n">LPARAM</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"time"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"pt"</span><span class="p">,</span> <span class="n">POINT</span><span class="p">)]</span>
|
||||
<span class="n">tagMSG</span> <span class="o">=</span> <span class="n">MSG</span>
|
||||
<span class="n">MAX_PATH</span> <span class="o">=</span> <span class="mi">260</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">WIN32_FIND_DATAA</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"dwFileAttributes"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftCreationTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftLastAccessTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftLastWriteTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileSizeHigh"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileSizeLow"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"dwReserved0"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"dwReserved1"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"cFileName"</span><span class="p">,</span> <span class="n">CHAR</span> <span class="o">*</span> <span class="n">MAX_PATH</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"cAlternateFileName"</span><span class="p">,</span> <span class="n">CHAR</span> <span class="o">*</span> <span class="mi">14</span><span class="p">)]</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">WIN32_FIND_DATAW</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"dwFileAttributes"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftCreationTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftLastAccessTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftLastWriteTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileSizeHigh"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileSizeLow"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"dwReserved0"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"dwReserved1"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"cFileName"</span><span class="p">,</span> <span class="n">WCHAR</span> <span class="o">*</span> <span class="n">MAX_PATH</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"cAlternateFileName"</span><span class="p">,</span> <span class="n">WCHAR</span> <span class="o">*</span> <span class="mi">14</span><span class="p">)]</span>
|
||||
|
||||
<span class="c1">################################################################</span>
|
||||
<span class="c1"># Pointer types</span>
|
||||
|
||||
<span class="n">LPBOOL</span> <span class="o">=</span> <span class="n">PBOOL</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">BOOL</span><span class="p">)</span>
|
||||
<span class="n">PBOOLEAN</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">BOOLEAN</span><span class="p">)</span>
|
||||
<span class="n">LPBYTE</span> <span class="o">=</span> <span class="n">PBYTE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">BYTE</span><span class="p">)</span>
|
||||
<span class="n">PCHAR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">CHAR</span><span class="p">)</span>
|
||||
<span class="n">LPCOLORREF</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">COLORREF</span><span class="p">)</span>
|
||||
<span class="n">LPDWORD</span> <span class="o">=</span> <span class="n">PDWORD</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">DWORD</span><span class="p">)</span>
|
||||
<span class="n">LPFILETIME</span> <span class="o">=</span> <span class="n">PFILETIME</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">FILETIME</span><span class="p">)</span>
|
||||
<span class="n">PFLOAT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">FLOAT</span><span class="p">)</span>
|
||||
<span class="n">LPHANDLE</span> <span class="o">=</span> <span class="n">PHANDLE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">HANDLE</span><span class="p">)</span>
|
||||
<span class="n">PHKEY</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">HKEY</span><span class="p">)</span>
|
||||
<span class="n">LPHKL</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">HKL</span><span class="p">)</span>
|
||||
<span class="n">LPINT</span> <span class="o">=</span> <span class="n">PINT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">INT</span><span class="p">)</span>
|
||||
<span class="n">PLARGE_INTEGER</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">LARGE_INTEGER</span><span class="p">)</span>
|
||||
<span class="n">PLCID</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">LCID</span><span class="p">)</span>
|
||||
<span class="n">LPLONG</span> <span class="o">=</span> <span class="n">PLONG</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">LONG</span><span class="p">)</span>
|
||||
<span class="n">LPMSG</span> <span class="o">=</span> <span class="n">PMSG</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">MSG</span><span class="p">)</span>
|
||||
<span class="n">LPPOINT</span> <span class="o">=</span> <span class="n">PPOINT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">POINT</span><span class="p">)</span>
|
||||
<span class="n">PPOINTL</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">POINTL</span><span class="p">)</span>
|
||||
<span class="n">LPRECT</span> <span class="o">=</span> <span class="n">PRECT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">RECT</span><span class="p">)</span>
|
||||
<span class="n">LPRECTL</span> <span class="o">=</span> <span class="n">PRECTL</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">RECTL</span><span class="p">)</span>
|
||||
<span class="n">LPSC_HANDLE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">SC_HANDLE</span><span class="p">)</span>
|
||||
<span class="n">PSHORT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">SHORT</span><span class="p">)</span>
|
||||
<span class="n">LPSIZE</span> <span class="o">=</span> <span class="n">PSIZE</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">SIZE</span><span class="p">)</span>
|
||||
<span class="n">LPSIZEL</span> <span class="o">=</span> <span class="n">PSIZEL</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">SIZEL</span><span class="p">)</span>
|
||||
<span class="n">PSMALL_RECT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">SMALL_RECT</span><span class="p">)</span>
|
||||
<span class="n">LPUINT</span> <span class="o">=</span> <span class="n">PUINT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">UINT</span><span class="p">)</span>
|
||||
<span class="n">PULARGE_INTEGER</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">ULARGE_INTEGER</span><span class="p">)</span>
|
||||
<span class="n">PULONG</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">ULONG</span><span class="p">)</span>
|
||||
<span class="n">PUSHORT</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">USHORT</span><span class="p">)</span>
|
||||
<span class="n">PWCHAR</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">WCHAR</span><span class="p">)</span>
|
||||
<span class="n">LPWIN32_FIND_DATAA</span> <span class="o">=</span> <span class="n">PWIN32_FIND_DATAA</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">WIN32_FIND_DATAA</span><span class="p">)</span>
|
||||
<span class="n">LPWIN32_FIND_DATAW</span> <span class="o">=</span> <span class="n">PWIN32_FIND_DATAW</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">WIN32_FIND_DATAW</span><span class="p">)</span>
|
||||
<span class="n">LPWORD</span> <span class="o">=</span> <span class="n">PWORD</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">WORD</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<search id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</search>
|
||||
<script>document.getElementById('searchbox').style.display = "block"</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../ctypes.html" >ctypes</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">ctypes.wintypes</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2015-2020, Clement Rouault.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.3.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+10
-4
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.debug.symbols — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.debug.symbols — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.debug.symbols</a></li>
|
||||
</ul>
|
||||
@@ -605,6 +605,12 @@
|
||||
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">SymGetTypeFromNameW</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">,</span> <span class="n">mod</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">buff</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">SymbolType</span><span class="o">.</span><span class="n">from_symbol_info</span><span class="p">(</span><span class="n">buff</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">resolver</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
|
||||
|
||||
<span class="c1">#</span>
|
||||
<span class="k">def</span> <span class="nf">types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mod</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="n">typeslist</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># Iter on types of all modules if None provided ?</span>
|
||||
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">SymEnumTypes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">,</span> <span class="n">mod</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">simple_aggregator</span><span class="p">,</span> <span class="n">typeslist</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="p">[</span><span class="n">SymbolType</span><span class="o">.</span><span class="n">from_symbol_info</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">resolver</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">typeslist</span><span class="p">]</span>
|
||||
|
||||
|
||||
<span class="c1"># TODO: mets de l'huile pour w4kfu</span>
|
||||
<span class="k">class</span> <span class="nc">StackWalker</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
@@ -863,7 +869,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.debug.symbols</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.generated_def.flag — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.generated_def.flag — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.generated_def.flag</a></li>
|
||||
</ul>
|
||||
@@ -145,7 +145,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.generated_def.flag</a></li>
|
||||
</ul>
|
||||
|
||||
+25
-25
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.generated_def.interfaces — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.generated_def.interfaces — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.generated_def.interfaces</a></li>
|
||||
</ul>
|
||||
@@ -117,12 +117,6 @@
|
||||
|
||||
|
||||
|
||||
<div class="viewcode-block" id="IActivationStageInfo">
|
||||
<a class="viewcode-back" href="../../../interfaces_generated.html#windows.generated_def.interfaces.IActivationStageInfo">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">IActivationStageInfo</span><span class="p">(</span><span class="n">COMInterface</span><span class="p">):</span>
|
||||
<span class="n">IID</span> <span class="o">=</span> <span class="n">generate_IID</span><span class="p">(</span><span class="mh">0x000001A8</span><span class="p">,</span> <span class="mh">0x0000</span><span class="p">,</span> <span class="mh">0x0000</span><span class="p">,</span> <span class="mh">0xC0</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x46</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"IActivationStageInfo"</span><span class="p">,</span> <span class="n">strid</span><span class="o">=</span><span class="s2">"000001A8-0000-0000-C000-000000000046"</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="ICallFactory">
|
||||
<a class="viewcode-back" href="../../../interfaces_generated.html#windows.generated_def.interfaces.ICallFactory">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">ICallFactory</span><span class="p">(</span><span class="n">COMInterface</span><span class="p">):</span>
|
||||
@@ -405,6 +399,12 @@
|
||||
<span class="n">IID</span> <span class="o">=</span> <span class="n">generate_IID</span><span class="p">(</span><span class="mh">0x000001A2</span><span class="p">,</span> <span class="mh">0x0000</span><span class="p">,</span> <span class="mh">0x0000</span><span class="p">,</span> <span class="mh">0xC0</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x46</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"IActivationPropertiesIn"</span><span class="p">,</span> <span class="n">strid</span><span class="o">=</span><span class="s2">"000001A2-0000-0000-C000-000000000046"</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="IActivationStageInfo">
|
||||
<a class="viewcode-back" href="../../../interfaces_generated.html#windows.generated_def.interfaces.IActivationStageInfo">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">IActivationStageInfo</span><span class="p">(</span><span class="n">COMInterface</span><span class="p">):</span>
|
||||
<span class="n">IID</span> <span class="o">=</span> <span class="n">generate_IID</span><span class="p">(</span><span class="mh">0x000001A8</span><span class="p">,</span> <span class="mh">0x0000</span><span class="p">,</span> <span class="mh">0x0000</span><span class="p">,</span> <span class="mh">0xC0</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x46</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"IActivationStageInfo"</span><span class="p">,</span> <span class="n">strid</span><span class="o">=</span><span class="s2">"000001A8-0000-0000-C000-000000000046"</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="IClassClassicInfo">
|
||||
<a class="viewcode-back" href="../../../interfaces_generated.html#windows.generated_def.interfaces.IClassClassicInfo">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">IClassClassicInfo</span><span class="p">(</span><span class="n">COMInterface</span><span class="p">):</span>
|
||||
@@ -801,21 +801,6 @@
|
||||
<span class="n">IID</span> <span class="o">=</span> <span class="n">generate_IID</span><span class="p">(</span><span class="mh">0x0EFA6E54</span><span class="p">,</span> <span class="mh">0xF313</span><span class="p">,</span> <span class="mh">0x405D</span><span class="p">,</span> <span class="mh">0xB5</span><span class="p">,</span> <span class="mh">0xD8</span><span class="p">,</span> <span class="mh">0x83</span><span class="p">,</span> <span class="mh">0x0A</span><span class="p">,</span> <span class="mh">0x91</span><span class="p">,</span> <span class="mh">0x4F</span><span class="p">,</span> <span class="mh">0x64</span><span class="p">,</span> <span class="mh">0x96</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"IWbemServices"</span><span class="p">,</span> <span class="n">strid</span><span class="o">=</span><span class="s2">"0EFA6E54-F313-405D-B5D8-830A914F6496"</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<span class="n">IActivationStageInfo</span><span class="o">.</span><span class="n">_functions_</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># QueryInterface -> riid:REFIID, ppvObject:**void</span>
|
||||
<span class="s2">"QueryInterface"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">REFIID</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PVOID</span><span class="p">))(</span><span class="mi">0</span><span class="p">,</span> <span class="s2">"QueryInterface"</span><span class="p">),</span>
|
||||
<span class="c1"># AddRef -> </span>
|
||||
<span class="s2">"AddRef"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">ULONG</span><span class="p">)(</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"AddRef"</span><span class="p">),</span>
|
||||
<span class="c1"># Release -> </span>
|
||||
<span class="s2">"Release"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">ULONG</span><span class="p">)(</span><span class="mi">2</span><span class="p">,</span> <span class="s2">"Release"</span><span class="p">),</span>
|
||||
<span class="c1"># SetStageAndIndex -> stage:ACTIVATION_STAGE, index:INT</span>
|
||||
<span class="s2">"SetStageAndIndex"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">ACTIVATION_STAGE</span><span class="p">,</span> <span class="n">INT</span><span class="p">)(</span><span class="mi">3</span><span class="p">,</span> <span class="s2">"SetStageAndIndex"</span><span class="p">),</span>
|
||||
<span class="c1"># GetStage -> pstage:*ACTIVATION_STAGE</span>
|
||||
<span class="s2">"GetStage"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">ACTIVATION_STAGE</span><span class="p">))(</span><span class="mi">4</span><span class="p">,</span> <span class="s2">"GetStage"</span><span class="p">),</span>
|
||||
<span class="c1"># GetIndex -> pindex:*INT</span>
|
||||
<span class="s2">"GetIndex"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">INT</span><span class="p">))(</span><span class="mi">5</span><span class="p">,</span> <span class="s2">"GetIndex"</span><span class="p">),</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">ICallFactory</span><span class="o">.</span><span class="n">_functions_</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># QueryInterface -> riid:REFIID, ppvObject:**void</span>
|
||||
<span class="s2">"QueryInterface"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">REFIID</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PVOID</span><span class="p">))(</span><span class="mi">0</span><span class="p">,</span> <span class="s2">"QueryInterface"</span><span class="p">),</span>
|
||||
@@ -2021,6 +2006,21 @@
|
||||
<span class="s2">"GetReturnActivationProperties"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">IUnknown</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">IActivationPropertiesOut</span><span class="p">))(</span><span class="mi">12</span><span class="p">,</span> <span class="s2">"GetReturnActivationProperties"</span><span class="p">),</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">IActivationStageInfo</span><span class="o">.</span><span class="n">_functions_</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># QueryInterface -> riid:REFIID, ppvObject:**void</span>
|
||||
<span class="s2">"QueryInterface"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">REFIID</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PVOID</span><span class="p">))(</span><span class="mi">0</span><span class="p">,</span> <span class="s2">"QueryInterface"</span><span class="p">),</span>
|
||||
<span class="c1"># AddRef -> </span>
|
||||
<span class="s2">"AddRef"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">ULONG</span><span class="p">)(</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"AddRef"</span><span class="p">),</span>
|
||||
<span class="c1"># Release -> </span>
|
||||
<span class="s2">"Release"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">ULONG</span><span class="p">)(</span><span class="mi">2</span><span class="p">,</span> <span class="s2">"Release"</span><span class="p">),</span>
|
||||
<span class="c1"># SetStageAndIndex -> stage:ACTIVATION_STAGE, index:INT</span>
|
||||
<span class="s2">"SetStageAndIndex"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">ACTIVATION_STAGE</span><span class="p">,</span> <span class="n">INT</span><span class="p">)(</span><span class="mi">3</span><span class="p">,</span> <span class="s2">"SetStageAndIndex"</span><span class="p">),</span>
|
||||
<span class="c1"># GetStage -> pstage:*ACTIVATION_STAGE</span>
|
||||
<span class="s2">"GetStage"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">ACTIVATION_STAGE</span><span class="p">))(</span><span class="mi">4</span><span class="p">,</span> <span class="s2">"GetStage"</span><span class="p">),</span>
|
||||
<span class="c1"># GetIndex -> pindex:*INT</span>
|
||||
<span class="s2">"GetIndex"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">INT</span><span class="p">))(</span><span class="mi">5</span><span class="p">,</span> <span class="s2">"GetIndex"</span><span class="p">),</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">IClassClassicInfo</span><span class="o">.</span><span class="n">_functions_</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># QueryInterface -> riid:REFIID, ppvObject:**void</span>
|
||||
<span class="s2">"QueryInterface"</span><span class="p">:</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">HRESULT</span><span class="p">,</span> <span class="n">REFIID</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PVOID</span><span class="p">))(</span><span class="mi">0</span><span class="p">,</span> <span class="s2">"QueryInterface"</span><span class="p">),</span>
|
||||
@@ -3998,7 +3998,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.generated_def.interfaces</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.generated_def.winstructs — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.generated_def.winstructs — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.generated_def.winstructs</a></li>
|
||||
</ul>
|
||||
@@ -346,6 +346,8 @@
|
||||
<span class="n">LPSERVICE_MAIN_FUNCTIONW</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">LPOVERLAPPED_COMPLETION_ROUTINE</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">PDNS_QUERY_COMPLETION_ROUTINE</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">LPHANDLER_FUNCTION</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">LPHANDLER_FUNCTION_EX</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">LPCONTEXT</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">HCERTSTORE</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
<span class="n">HCRYPTMSG</span> <span class="o">=</span> <span class="n">PVOID</span>
|
||||
@@ -11231,6 +11233,42 @@
|
||||
<span class="n">PFILE_INFORMATION_CLASS</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_FILE_INFORMATION_CLASS</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="n">FileBasicInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileBasicInfo"</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">FileStandardInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileStandardInfo"</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
|
||||
<span class="n">FileNameInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileNameInfo"</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
|
||||
<span class="n">FileRenameInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileRenameInfo"</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
|
||||
<span class="n">FileDispositionInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileDispositionInfo"</span><span class="p">,</span> <span class="mh">0x4</span><span class="p">)</span>
|
||||
<span class="n">FileAllocationInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileAllocationInfo"</span><span class="p">,</span> <span class="mh">0x5</span><span class="p">)</span>
|
||||
<span class="n">FileEndOfFileInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileEndOfFileInfo"</span><span class="p">,</span> <span class="mh">0x6</span><span class="p">)</span>
|
||||
<span class="n">FileStreamInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileStreamInfo"</span><span class="p">,</span> <span class="mh">0x7</span><span class="p">)</span>
|
||||
<span class="n">FileCompressionInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileCompressionInfo"</span><span class="p">,</span> <span class="mh">0x8</span><span class="p">)</span>
|
||||
<span class="n">FileAttributeTagInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileAttributeTagInfo"</span><span class="p">,</span> <span class="mh">0x9</span><span class="p">)</span>
|
||||
<span class="n">FileIdBothDirectoryInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileIdBothDirectoryInfo"</span><span class="p">,</span> <span class="mh">0xa</span><span class="p">)</span>
|
||||
<span class="n">FileIdBothDirectoryRestartInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileIdBothDirectoryRestartInfo"</span><span class="p">,</span> <span class="mh">0xb</span><span class="p">)</span>
|
||||
<span class="n">FileIoPriorityHintInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileIoPriorityHintInfo"</span><span class="p">,</span> <span class="mh">0xc</span><span class="p">)</span>
|
||||
<span class="n">FileRemoteProtocolInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileRemoteProtocolInfo"</span><span class="p">,</span> <span class="mh">0xd</span><span class="p">)</span>
|
||||
<span class="n">FileFullDirectoryInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileFullDirectoryInfo"</span><span class="p">,</span> <span class="mh">0xe</span><span class="p">)</span>
|
||||
<span class="n">FileFullDirectoryRestartInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileFullDirectoryRestartInfo"</span><span class="p">,</span> <span class="mh">0xf</span><span class="p">)</span>
|
||||
<span class="n">FileStorageInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileStorageInfo"</span><span class="p">,</span> <span class="mh">0x10</span><span class="p">)</span>
|
||||
<span class="n">FileAlignmentInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileAlignmentInfo"</span><span class="p">,</span> <span class="mh">0x11</span><span class="p">)</span>
|
||||
<span class="n">FileIdInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileIdInfo"</span><span class="p">,</span> <span class="mh">0x12</span><span class="p">)</span>
|
||||
<span class="n">FileIdExtdDirectoryInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileIdExtdDirectoryInfo"</span><span class="p">,</span> <span class="mh">0x13</span><span class="p">)</span>
|
||||
<span class="n">FileIdExtdDirectoryRestartInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileIdExtdDirectoryRestartInfo"</span><span class="p">,</span> <span class="mh">0x14</span><span class="p">)</span>
|
||||
<span class="n">FileDispositionInfoEx</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileDispositionInfoEx"</span><span class="p">,</span> <span class="mh">0x15</span><span class="p">)</span>
|
||||
<span class="n">FileRenameInfoEx</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileRenameInfoEx"</span><span class="p">,</span> <span class="mh">0x16</span><span class="p">)</span>
|
||||
<span class="n">FileCaseSensitiveInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileCaseSensitiveInfo"</span><span class="p">,</span> <span class="mh">0x17</span><span class="p">)</span>
|
||||
<span class="n">FileNormalizedNameInfo</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"FileNormalizedNameInfo"</span><span class="p">,</span> <span class="mh">0x18</span><span class="p">)</span>
|
||||
<span class="n">MaximumFileInfoByHandleClass</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_FILE_INFO_BY_HANDLE_CLASS"</span><span class="p">,</span> <span class="s2">"MaximumFileInfoByHandleClass"</span><span class="p">,</span> <span class="mh">0x19</span><span class="p">)</span>
|
||||
<div class="viewcode-block" id="_FILE_INFO_BY_HANDLE_CLASS">
|
||||
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">_FILE_INFO_BY_HANDLE_CLASS</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
|
||||
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">FileBasicInfo</span><span class="p">,</span> <span class="n">FileStandardInfo</span><span class="p">,</span> <span class="n">FileNameInfo</span><span class="p">,</span> <span class="n">FileRenameInfo</span><span class="p">,</span> <span class="n">FileDispositionInfo</span><span class="p">,</span> <span class="n">FileAllocationInfo</span><span class="p">,</span> <span class="n">FileEndOfFileInfo</span><span class="p">,</span> <span class="n">FileStreamInfo</span><span class="p">,</span> <span class="n">FileCompressionInfo</span><span class="p">,</span> <span class="n">FileAttributeTagInfo</span><span class="p">,</span> <span class="n">FileIdBothDirectoryInfo</span><span class="p">,</span> <span class="n">FileIdBothDirectoryRestartInfo</span><span class="p">,</span> <span class="n">FileIoPriorityHintInfo</span><span class="p">,</span> <span class="n">FileRemoteProtocolInfo</span><span class="p">,</span> <span class="n">FileFullDirectoryInfo</span><span class="p">,</span> <span class="n">FileFullDirectoryRestartInfo</span><span class="p">,</span> <span class="n">FileStorageInfo</span><span class="p">,</span> <span class="n">FileAlignmentInfo</span><span class="p">,</span> <span class="n">FileIdInfo</span><span class="p">,</span> <span class="n">FileIdExtdDirectoryInfo</span><span class="p">,</span> <span class="n">FileIdExtdDirectoryRestartInfo</span><span class="p">,</span> <span class="n">FileDispositionInfoEx</span><span class="p">,</span> <span class="n">FileRenameInfoEx</span><span class="p">,</span> <span class="n">FileCaseSensitiveInfo</span><span class="p">,</span> <span class="n">FileNormalizedNameInfo</span><span class="p">,</span> <span class="n">MaximumFileInfoByHandleClass</span><span class="p">]</span>
|
||||
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
|
||||
|
||||
<span class="n">FILE_INFO_BY_HANDLE_CLASS</span> <span class="o">=</span> <span class="n">_FILE_INFO_BY_HANDLE_CLASS</span>
|
||||
<span class="n">PFILE_INFO_BY_HANDLE_CLASS</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_FILE_INFO_BY_HANDLE_CLASS</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="n">IoPriorityVeryLow</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_IO_PRIORITY_HINT"</span><span class="p">,</span> <span class="s2">"IoPriorityVeryLow"</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">IoPriorityLow</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_IO_PRIORITY_HINT"</span><span class="p">,</span> <span class="s2">"IoPriorityLow"</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
|
||||
<span class="n">IoPriorityNormal</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">"_IO_PRIORITY_HINT"</span><span class="p">,</span> <span class="s2">"IoPriorityNormal"</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
|
||||
@@ -11472,6 +11510,26 @@
|
||||
<span class="n">FILE_GET_EA_INFORMATION</span> <span class="o">=</span> <span class="n">_FILE_GET_EA_INFORMATION</span>
|
||||
<span class="n">PFILE_GET_EA_INFORMATION</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_FILE_GET_EA_INFORMATION</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="_BY_HANDLE_FILE_INFORMATION">
|
||||
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">_BY_HANDLE_FILE_INFORMATION</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
|
||||
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
|
||||
<span class="p">(</span><span class="s2">"dwFileAttributes"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftCreationTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftLastAccessTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"ftLastWriteTime"</span><span class="p">,</span> <span class="n">FILETIME</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"dwVolumeSerialNumber"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileSizeHigh"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileSizeLow"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nNumberOfLinks"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileIndexHigh"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s2">"nFileIndexLow"</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
|
||||
<span class="p">]</span></div>
|
||||
|
||||
<span class="n">BY_HANDLE_FILE_INFORMATION</span> <span class="o">=</span> <span class="n">_BY_HANDLE_FILE_INFORMATION</span>
|
||||
<span class="n">LPBY_HANDLE_FILE_INFORMATION</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_BY_HANDLE_FILE_INFORMATION</span><span class="p">)</span>
|
||||
<span class="n">PBY_HANDLE_FILE_INFORMATION</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_BY_HANDLE_FILE_INFORMATION</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="tagVS_FIXEDFILEINFO">
|
||||
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagVS_FIXEDFILEINFO">[docs]</a>
|
||||
<span class="k">class</span> <span class="nc">tagVS_FIXEDFILEINFO</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
|
||||
@@ -14964,7 +15022,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.generated_def.winstructs</a></li>
|
||||
</ul>
|
||||
|
||||
+18
-5
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.pe_parse — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.pe_parse — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.pe_parse</a></li>
|
||||
</ul>
|
||||
@@ -503,7 +503,20 @@
|
||||
<span class="n">iat_entry</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">name</span> <span class="k">else</span> <span class="s2">""</span>
|
||||
<span class="n">name</span> <span class="o">=</span> <span class="n">get_string</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">target</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">baseaddr</span> <span class="o">+</span> <span class="n">import_descriptor</span><span class="o">.</span><span class="n">Name</span><span class="p">)</span>
|
||||
<span class="n">res</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="p">[])</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">IAT</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">res</span></div>
|
||||
<span class="k">return</span> <span class="n">res</span>
|
||||
|
||||
<span class="nd">@utils</span><span class="o">.</span><span class="n">fixedpropety</span>
|
||||
<span class="k">def</span> <span class="nf">binid</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Return the hex-string {TimeStamp}{SizeOfCode} used by PDB to identify a PE.</span>
|
||||
|
||||
<span class="sd"> I do not know the official name of this value...</span>
|
||||
|
||||
<span class="sd"> :type: :class:`str`</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">nth</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_NT_HEADER</span><span class="p">()</span>
|
||||
<span class="n">timestamp</span> <span class="o">=</span> <span class="n">nth</span><span class="o">.</span><span class="n">FileHeader</span><span class="o">.</span><span class="n">TimeDateStamp</span>
|
||||
<span class="n">image_size</span> <span class="o">=</span> <span class="n">nth</span><span class="o">.</span><span class="n">OptionalHeader</span><span class="o">.</span><span class="n">SizeOfImage</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="si">{timestamp:08x}{image_size:x}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">timestamp</span><span class="o">=</span><span class="n">timestamp</span><span class="p">,</span> <span class="n">image_size</span><span class="o">=</span><span class="n">image_size</span><span class="p">)</span></div>
|
||||
|
||||
</pre></div>
|
||||
|
||||
@@ -536,7 +549,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.pe_parse</a></li>
|
||||
</ul>
|
||||
|
||||
+9
-9
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.utils.winutils — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.utils.winutils — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.utils.winutils</a></li>
|
||||
</ul>
|
||||
@@ -620,11 +620,11 @@
|
||||
<span class="k">def</span> <span class="nf">create_file</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">access</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">GENERIC_READ</span><span class="p">,</span> <span class="n">share</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">FILE_SHARE_READ</span><span class="p">,</span> <span class="n">security</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">creation</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">OPEN_EXISTING</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">FILE_ATTRIBUTE_NORMAL</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CreateFileW</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">access</span><span class="p">,</span> <span class="n">share</span><span class="p">,</span> <span class="n">security</span><span class="p">,</span> <span class="n">creation</span><span class="p">,</span> <span class="n">flags</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">mapfile</span><span class="p">(</span><span class="n">file</span><span class="p">):</span>
|
||||
<span class="n">fhandle</span> <span class="o">=</span> <span class="n">get_handle_from_file</span><span class="p">(</span><span class="n">file</span><span class="p">)</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CreateFileMappingA</span><span class="p">(</span><span class="n">fhandle</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">PAGE_READONLY</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">addr</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">MapViewOfFile</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">dwDesiredAccess</span><span class="o">=</span><span class="n">FILE_MAP_READ</span><span class="p">,</span> <span class="n">dwNumberOfBytesToMap</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">addr</span>
|
||||
<span class="c1">#def mapfile(file):</span>
|
||||
<span class="c1"># fhandle = get_handle_from_file(file)</span>
|
||||
<span class="c1"># h = windows.winproxy.CreateFileMappingA(fhandle, None, PAGE_READONLY, 0, 1, None)</span>
|
||||
<span class="c1"># addr = windows.winproxy.MapViewOfFile(h, dwDesiredAccess=FILE_MAP_READ, dwNumberOfBytesToMap=1)</span>
|
||||
<span class="c1"># return addr</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">decompress_buffer</span><span class="p">(</span><span class="n">buffer</span><span class="p">,</span> <span class="n">comptype</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">COMPRESSION_FORMAT_LZNT1</span><span class="p">,</span> <span class="n">uncompress_size</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">uncompress_size</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
@@ -752,7 +752,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.utils.winutils</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.winobject.event_log — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.winobject.event_log — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.winobject.event_log</a></li>
|
||||
</ul>
|
||||
@@ -437,6 +437,7 @@
|
||||
<span class="n">gdef</span><span class="o">.</span><span class="n">EvtVarTypeUInt16</span> <span class="o">+</span> <span class="n">gdef</span><span class="o">.</span><span class="n">EVT_VARIANT_TYPE_ARRAY</span> <span class="p">:</span> <span class="s2">"UInt16Arr"</span><span class="p">,</span>
|
||||
<span class="n">gdef</span><span class="o">.</span><span class="n">EvtVarTypeUInt32</span> <span class="o">+</span> <span class="n">gdef</span><span class="o">.</span><span class="n">EVT_VARIANT_TYPE_ARRAY</span> <span class="p">:</span> <span class="s2">"UInt32Arr"</span><span class="p">,</span>
|
||||
<span class="n">gdef</span><span class="o">.</span><span class="n">EvtVarTypeUInt64</span> <span class="o">+</span> <span class="n">gdef</span><span class="o">.</span><span class="n">EVT_VARIANT_TYPE_ARRAY</span> <span class="p">:</span> <span class="s2">"UInt64Arr"</span><span class="p">,</span>
|
||||
<span class="n">gdef</span><span class="o">.</span><span class="n">EvtVarTypeHexInt64</span> <span class="o">+</span> <span class="n">gdef</span><span class="o">.</span><span class="n">EVT_VARIANT_TYPE_ARRAY</span> <span class="p">:</span> <span class="s2">"UInt64Arr"</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="n">NoneValue</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
@@ -1278,7 +1279,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.winobject.event_log</a></li>
|
||||
</ul>
|
||||
|
||||
+20
-6
@@ -4,12 +4,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>windows.winobject.service — PythonForWindows 1.0.0 documentation</title>
|
||||
<title>windows.winobject.service — PythonForWindows 1.0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||
|
||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
||||
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
|
||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.winobject.service</a></li>
|
||||
</ul>
|
||||
@@ -193,7 +193,13 @@
|
||||
<span class="k">def</span> <span class="nf">enumerate_services</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_enumerate_services_generator</span><span class="p">())</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">create</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">access</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="ServiceManager.create">
|
||||
<a class="viewcode-back" href="../../../service.html#windows.winobject.service.ServiceManager.create">[docs]</a>
|
||||
<span class="k">def</span> <span class="nf">create</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">access</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Create a new service</span>
|
||||
|
||||
<span class="sd"> :return: :class:`Service` -- The newly created service</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">newservice_handle</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CreateServiceW</span><span class="p">(</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">,</span> <span class="c1"># hSCManager</span>
|
||||
<span class="n">name</span><span class="p">,</span> <span class="c1"># lpServiceName</span>
|
||||
@@ -206,10 +212,11 @@
|
||||
<span class="kc">None</span><span class="p">,</span> <span class="c1"># lpLoadOrderGroup</span>
|
||||
<span class="kc">None</span><span class="p">,</span> <span class="c1"># lpdwTagId</span>
|
||||
<span class="kc">None</span><span class="p">,</span> <span class="c1"># lpDependencies</span>
|
||||
<span class="kc">None</span><span class="p">,</span> <span class="c1"># lpServiceStartName</span>
|
||||
<span class="n">user</span><span class="p">,</span> <span class="c1"># lpServiceStartName</span>
|
||||
<span class="kc">None</span><span class="p">)</span> <span class="c1"># lpPassword</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">Service</span><span class="p">(</span><span class="n">handle</span><span class="o">=</span><span class="n">newservice_handle</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">)</span></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -291,6 +298,13 @@
|
||||
<span class="k">return</span> <span class="n">status</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="Service.delete">
|
||||
<a class="viewcode-back" href="../../../service.html#windows.winobject.service.Service.delete">[docs]</a>
|
||||
<span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Delete the service"""</span>
|
||||
<span class="k">return</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">DeleteService</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">urepr_encode</span><span class="p">(</span><span class="sa">u</span><span class="s2">"""<</span><span class="si">{0}</span><span class="s2"> "</span><span class="si">{1}</span><span class="s2">" </span><span class="si">{2!r}</span><span class="s2">>"""</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">state</span><span class="p">))</span>
|
||||
|
||||
@@ -328,7 +342,7 @@
|
||||
<li class="right" >
|
||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">windows.winobject.service</a></li>
|
||||
</ul>
|
||||
|
||||
+10
-10
@@ -2,16 +2,6 @@
|
||||
|
||||
Interfaces
|
||||
----------
|
||||
.. class:: IActivationStageInfo
|
||||
|
||||
.. method:: QueryInterface
|
||||
.. method:: AddRef
|
||||
.. method:: Release
|
||||
.. method:: SetStageAndIndex
|
||||
.. method:: GetStage
|
||||
.. method:: GetIndex
|
||||
|
||||
|
||||
.. class:: ICallFactory
|
||||
|
||||
.. method:: QueryInterface
|
||||
@@ -722,6 +712,16 @@ Interfaces
|
||||
.. method:: GetReturnActivationProperties
|
||||
|
||||
|
||||
.. class:: IActivationStageInfo
|
||||
|
||||
.. method:: QueryInterface
|
||||
.. method:: AddRef
|
||||
.. method:: Release
|
||||
.. method:: SetStageAndIndex
|
||||
.. method:: GetStage
|
||||
.. method:: GetIndex
|
||||
|
||||
|
||||
.. class:: IClassClassicInfo
|
||||
|
||||
.. method:: QueryInterface
|
||||
|
||||
+10
@@ -103,7 +103,17 @@ Output
|
||||
|
||||
.. literalinclude:: samples_output\service_service_demo.txt
|
||||
|
||||
Windows Service in Python
|
||||
'''''''''''''''''''''''''
|
||||
|
||||
This script can register itself as a service and act on `stop` request.
|
||||
It also can delete its own service.
|
||||
|
||||
.. literalinclude:: ..\..\samples\service\python_service.py
|
||||
|
||||
Output
|
||||
|
||||
.. literalinclude:: samples_output\service_python_service.txt
|
||||
|
||||
|
||||
.. _sample_network_exploration:
|
||||
|
||||
@@ -488,6 +488,12 @@ Functions
|
||||
|
||||
.. function:: LockFileEx(hFile, dwFlags, dwReserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh, lpOverlapped)
|
||||
|
||||
.. function:: SetFileInformationByHandle(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
|
||||
.. function:: GetFileInformationByHandle(hFile, lpFileInformation)
|
||||
|
||||
.. function:: GetFileInformationByHandleEx(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
|
||||
.. function:: HeapAlloc(hHeap, dwFlags, dwBytes)
|
||||
|
||||
.. function:: InternetCheckConnectionA(lpszUrl, dwFlags, dwReserved)
|
||||
@@ -916,6 +922,18 @@ Functions
|
||||
|
||||
.. function:: StartServiceCtrlDispatcherW(lpServiceStartTable)
|
||||
|
||||
.. function:: RegisterServiceCtrlHandlerExA(lpServiceName, lpHandlerProc, lpContext)
|
||||
|
||||
.. function:: RegisterServiceCtrlHandlerExW(lpServiceName, lpHandlerProc, lpContext)
|
||||
|
||||
.. function:: RegisterServiceCtrlHandlerA(lpServiceName, lpHandlerProc)
|
||||
|
||||
.. function:: RegisterServiceCtrlHandlerW(lpServiceName, lpHandlerProc)
|
||||
|
||||
.. function:: SetServiceStatus(hServiceStatus, lpServiceStatus)
|
||||
|
||||
.. function:: SetServiceBits(hServiceStatus, dwServiceBits, bSetBitsOn, bUpdateImmediately)
|
||||
|
||||
.. function:: SetupDiClassNameFromGuidA(ClassGuid, ClassName, ClassNameSize, RequiredSize)
|
||||
|
||||
.. function:: SetupDiClassNameFromGuidW(ClassGuid, ClassName, ClassNameSize, RequiredSize)
|
||||
|
||||
@@ -511,6 +511,10 @@ Simple types
|
||||
|
||||
.. autoclass:: PDNS_QUERY_COMPLETION_ROUTINE
|
||||
|
||||
.. autoclass:: LPHANDLER_FUNCTION
|
||||
|
||||
.. autoclass:: LPHANDLER_FUNCTION_EX
|
||||
|
||||
.. autoclass:: LPCONTEXT
|
||||
|
||||
.. autoclass:: HCERTSTORE
|
||||
@@ -21089,6 +21093,71 @@ _FILE_GET_EA_INFORMATION
|
||||
|
||||
:class:`CHAR`
|
||||
|
||||
_BY_HANDLE_FILE_INFORMATION
|
||||
'''''''''''''''''''''''''''
|
||||
.. class:: BY_HANDLE_FILE_INFORMATION
|
||||
|
||||
Alias for :class:`_BY_HANDLE_FILE_INFORMATION`
|
||||
|
||||
.. class:: LPBY_HANDLE_FILE_INFORMATION
|
||||
|
||||
Pointer to :class:`_BY_HANDLE_FILE_INFORMATION`
|
||||
|
||||
.. class:: PBY_HANDLE_FILE_INFORMATION
|
||||
|
||||
Pointer to :class:`_BY_HANDLE_FILE_INFORMATION`
|
||||
|
||||
.. class:: _BY_HANDLE_FILE_INFORMATION
|
||||
|
||||
.. attribute:: dwFileAttributes
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: ftCreationTime
|
||||
|
||||
:class:`FILETIME`
|
||||
|
||||
|
||||
.. attribute:: ftLastAccessTime
|
||||
|
||||
:class:`FILETIME`
|
||||
|
||||
|
||||
.. attribute:: ftLastWriteTime
|
||||
|
||||
:class:`FILETIME`
|
||||
|
||||
|
||||
.. attribute:: dwVolumeSerialNumber
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileSizeHigh
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileSizeLow
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nNumberOfLinks
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileIndexHigh
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileIndexLow
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
tagVS_FIXEDFILEINFO
|
||||
'''''''''''''''''''
|
||||
.. class:: VS_FIXEDFILEINFO
|
||||
@@ -32567,6 +32636,98 @@ _FILE_INFORMATION_CLASS
|
||||
|
||||
.. attribute:: FileMaximumInformation(67)
|
||||
|
||||
_FILE_INFO_BY_HANDLE_CLASS
|
||||
''''''''''''''''''''''''''
|
||||
.. class:: FILE_INFO_BY_HANDLE_CLASS
|
||||
|
||||
Alias for :class:`_FILE_INFO_BY_HANDLE_CLASS`
|
||||
|
||||
|
||||
.. class:: PFILE_INFO_BY_HANDLE_CLASS
|
||||
|
||||
Pointer to :class:`_FILE_INFO_BY_HANDLE_CLASS`
|
||||
|
||||
|
||||
.. class:: _FILE_INFO_BY_HANDLE_CLASS
|
||||
|
||||
|
||||
.. attribute:: FileBasicInfo(0)
|
||||
|
||||
|
||||
.. attribute:: FileStandardInfo(1)
|
||||
|
||||
|
||||
.. attribute:: FileNameInfo(2)
|
||||
|
||||
|
||||
.. attribute:: FileRenameInfo(3)
|
||||
|
||||
|
||||
.. attribute:: FileDispositionInfo(4)
|
||||
|
||||
|
||||
.. attribute:: FileAllocationInfo(5)
|
||||
|
||||
|
||||
.. attribute:: FileEndOfFileInfo(6)
|
||||
|
||||
|
||||
.. attribute:: FileStreamInfo(7)
|
||||
|
||||
|
||||
.. attribute:: FileCompressionInfo(8)
|
||||
|
||||
|
||||
.. attribute:: FileAttributeTagInfo(9)
|
||||
|
||||
|
||||
.. attribute:: FileIdBothDirectoryInfo(10)
|
||||
|
||||
|
||||
.. attribute:: FileIdBothDirectoryRestartInfo(11)
|
||||
|
||||
|
||||
.. attribute:: FileIoPriorityHintInfo(12)
|
||||
|
||||
|
||||
.. attribute:: FileRemoteProtocolInfo(13)
|
||||
|
||||
|
||||
.. attribute:: FileFullDirectoryInfo(14)
|
||||
|
||||
|
||||
.. attribute:: FileFullDirectoryRestartInfo(15)
|
||||
|
||||
|
||||
.. attribute:: FileStorageInfo(16)
|
||||
|
||||
|
||||
.. attribute:: FileAlignmentInfo(17)
|
||||
|
||||
|
||||
.. attribute:: FileIdInfo(18)
|
||||
|
||||
|
||||
.. attribute:: FileIdExtdDirectoryInfo(19)
|
||||
|
||||
|
||||
.. attribute:: FileIdExtdDirectoryRestartInfo(20)
|
||||
|
||||
|
||||
.. attribute:: FileDispositionInfoEx(21)
|
||||
|
||||
|
||||
.. attribute:: FileRenameInfoEx(22)
|
||||
|
||||
|
||||
.. attribute:: FileCaseSensitiveInfo(23)
|
||||
|
||||
|
||||
.. attribute:: FileNormalizedNameInfo(24)
|
||||
|
||||
|
||||
.. attribute:: MaximumFileInfoByHandleClass(25)
|
||||
|
||||
_IO_PRIORITY_HINT
|
||||
'''''''''''''''''
|
||||
.. class:: IO_PRIORITY_HINT
|
||||
|
||||
Vendored
+140
-24
@@ -303,6 +303,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BG_JOB_TIMES">_BG_JOB_TIMES (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BG_JOB_TYPE">_BG_JOB_TYPE (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION">_BY_HANDLE_FILE_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._CALLFRAME_COPY">_CALLFRAME_COPY (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
@@ -669,6 +671,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_FULL_EA_INFORMATION">_FILE_FULL_EA_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_GET_EA_INFORMATION">_FILE_GET_EA_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS">_FILE_INFO_BY_HANDLE_CLASS (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS">_FILE_INFORMATION_CLASS (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
@@ -755,11 +759,11 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGEHLP_CBA_EVENTW">_IMAGEHLP_CBA_EVENTW (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGEHLP_CBA_READ_MEMORY">_IMAGEHLP_CBA_READ_MEMORY (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGEHLP_DEFERRED_SYMBOL_LOAD">_IMAGEHLP_DEFERRED_SYMBOL_LOAD (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGEHLP_DEFERRED_SYMBOL_LOAD">_IMAGEHLP_DEFERRED_SYMBOL_LOAD (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGEHLP_DEFERRED_SYMBOL_LOAD64">_IMAGEHLP_DEFERRED_SYMBOL_LOAD64 (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGEHLP_DEFERRED_SYMBOL_LOADW64">_IMAGEHLP_DEFERRED_SYMBOL_LOADW64 (class in windows.generated_def.winstructs)</a>
|
||||
@@ -3344,13 +3348,15 @@
|
||||
</ul></li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IMoniker.BindToObject">BindToObject() (windows.generated_def.interfaces.IMoniker method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IMoniker.BindToStorage">BindToStorage() (windows.generated_def.interfaces.IMoniker method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.ITypeComp.BindType">BindType() (windows.generated_def.interfaces.ITypeComp method)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._SECURITY_ATTRIBUTES.bInheritHandle">bInheritHandle (windows.generated_def.winstructs._SECURITY_ATTRIBUTES attribute)</a>
|
||||
</li>
|
||||
<li><a href="process.html#windows.pe_parse.PEFile.binid">binid (windows.pe_parse.PEFile property)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.tagBITMAPINFOHEADER.biPlanes">biPlanes (windows.generated_def.winstructs.tagBITMAPINFOHEADER attribute)</a>
|
||||
</li>
|
||||
@@ -3619,6 +3625,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._ANON_TMP_variant_sub_union.bVal">bVal (windows.generated_def.winstructs._ANON_TMP_variant_sub_union attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._PUBLICKEYSTRUC.bVersion">bVersion (windows.generated_def.winstructs._PUBLICKEYSTRUC attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.BY_HANDLE_FILE_INFORMATION">BY_HANDLE_FILE_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._ANON_TMP_variant_sub_union.byref">byref (windows.generated_def.winstructs._ANON_TMP_variant_sub_union attribute)</a>
|
||||
</li>
|
||||
@@ -6710,6 +6718,8 @@
|
||||
<li><a href="etw.html#windows.winobject.event_trace.EventTraceProperties.create">(windows.winobject.event_trace.EventTraceProperties class method)</a>
|
||||
</li>
|
||||
<li><a href="registry.html#windows.winobject.registry.PyHKey.create">(windows.winobject.registry.PyHKey method)</a>
|
||||
</li>
|
||||
<li><a href="service.html#windows.winobject.service.ServiceManager.create">(windows.winobject.service.ServiceManager method)</a>
|
||||
</li>
|
||||
<li><a href="task_scheduler.html#windows.winobject.task_scheduler.ActionCollection.create">(windows.winobject.task_scheduler.ActionCollection method)</a>
|
||||
</li>
|
||||
@@ -8063,7 +8073,11 @@
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="registry.html#windows.winobject.registry.PyHKey.delete">delete() (windows.winobject.registry.PyHKey method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="service.html#windows.winobject.service.Service.delete">(windows.winobject.service.Service method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="task_scheduler.html#windows.winobject.task_scheduler.TaskFolder.delete_folder">delete_folder() (windows.winobject.task_scheduler.TaskFolder method)</a>
|
||||
</li>
|
||||
<li><a href="wmi.html#windows.winobject.wmi.WmiNamespace.delete_instance">delete_instance() (windows.winobject.wmi.WmiNamespace method)</a>
|
||||
@@ -8828,10 +8842,10 @@
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.DNS_QUERY_NO_WIRE_QUERY">DNS_QUERY_NO_WIRE_QUERY (in module windows.generated_def)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.DNS_QUERY_REQUEST">DNS_QUERY_REQUEST (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="windef_generated.html#windows.generated_def.DNS_QUERY_RESERVED">DNS_QUERY_RESERVED (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.DNS_QUERY_RESULT">DNS_QUERY_RESULT (class in windows.generated_def.winstructs)</a>
|
||||
@@ -9470,9 +9484,11 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.DNS_TKEY_DATAW.dwExpireTime">(windows.generated_def.winstructs.DNS_TKEY_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.dwFileAttributes">dwFileAttributes (windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.dwFileAttributes">dwFileAttributes (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.dwFileAttributes">(windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAW.dwFileAttributes">(windows.generated_def.winstructs._WIN32_FIND_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
@@ -10144,6 +10160,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._CTL_INFO.dwVersion">(windows.generated_def.winstructs._CTL_INFO attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.dwVolumeSerialNumber">dwVolumeSerialNumber (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._SERVICE_STATUS.dwWaitHint">dwWaitHint (windows.generated_def.winstructs._SERVICE_STATUS attribute)</a>
|
||||
|
||||
<ul>
|
||||
@@ -19543,6 +19561,8 @@
|
||||
<li><a href="windef_generated.html#windows.generated_def.FILE_GENERIC_WRITE">FILE_GENERIC_WRITE (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.FILE_GET_EA_INFORMATION">FILE_GET_EA_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.FILE_INFO_BY_HANDLE_CLASS">FILE_INFO_BY_HANDLE_CLASS (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.FILE_INFORMATION_CLASS">FILE_INFORMATION_CLASS (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
@@ -19746,9 +19766,13 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._IMAGE_OPTIONAL_HEADER64.FileAlignment">(windows.generated_def.winstructs._IMAGE_OPTIONAL_HEADER64 attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileAlignmentInfo">FileAlignmentInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileAlignmentInformation">FileAlignmentInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileAllInformation">FileAllInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileAllocationInfo">FileAllocationInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileAllocationInformation">FileAllocationInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19764,23 +19788,37 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_NOTIFY_EXTENDED_INFORMATION.FileAttributes">(windows.generated_def.winstructs._FILE_NOTIFY_EXTENDED_INFORMATION attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileAttributeTagInfo">FileAttributeTagInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileAttributeTagInformation">FileAttributeTagInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileBasicInfo">FileBasicInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileBasicInformation">FileBasicInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileBothDirectoryInformation">FileBothDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileCaseSensitiveInfo">FileCaseSensitiveInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileCompletionInformation">FileCompletionInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileCompressionInfo">FileCompressionInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileCompressionInformation">FileCompressionInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileDirectoryInformation">FileDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfo">FileDispositionInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfoEx">FileDispositionInfoEx (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileDispositionInformation">FileDispositionInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileDispositionInformationEx">FileDispositionInformationEx (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileEaInformation">FileEaInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileEndOfFileInfo">FileEndOfFileInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileEndOfFileInformation">FileEndOfFileInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19805,8 +19843,12 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FS_INFORMATION_CLASS.FileFsVolumeFlagsInformation">FileFsVolumeFlagsInformation (windows.generated_def.winstructs._FS_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FS_INFORMATION_CLASS.FileFsVolumeInformation">FileFsVolumeInformation (windows.generated_def.winstructs._FS_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryInfo">FileFullDirectoryInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileFullDirectoryInformation">FileFullDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryRestartInfo">FileFullDirectoryRestartInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileFullEaInformation">FileFullEaInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19821,22 +19863,34 @@
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_NOTIFY_EXTENDED_INFORMATION.FileId">FileId (windows.generated_def.winstructs._FILE_NOTIFY_EXTENDED_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryInfo">FileIdBothDirectoryInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIdBothDirectoryInformation">FileIdBothDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryRestartInfo">FileIdBothDirectoryRestartInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIdExtdBothDirectoryInformation">FileIdExtdBothDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryInfo">FileIdExtdDirectoryInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIdExtdDirectoryInformation">FileIdExtdDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryRestartInfo">FileIdExtdDirectoryRestartInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIdFullDirectoryInformation">FileIdFullDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIdGlobalTxDirectoryInformation">FileIdGlobalTxDirectoryInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileIdInfo">FileIdInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIdInformation">FileIdInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileInternalInformation">FileInternalInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIoCompletionNotificationInformation">FileIoCompletionNotificationInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileIoPriorityHintInfo">FileIoPriorityHintInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileIoPriorityHintInformation">FileIoPriorityHintInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19881,6 +19935,8 @@
|
||||
<li><a href="winproxy.html#windows.winproxy.WinproxyError.filename2">filename2 (windows.winproxy.WinproxyError attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._DEBUG_SYMBOL_SOURCE_ENTRY.FileNameId">FileNameId (windows.generated_def.winstructs._DEBUG_SYMBOL_SOURCE_ENTRY attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileNameInfo">FileNameInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileNameInformation">FileNameInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19903,6 +19959,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileNetworkOpenInformation">FileNetworkOpenInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileNetworkPhysicalNameInformation">FileNetworkPhysicalNameInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileNormalizedNameInfo">FileNormalizedNameInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileNormalizedNameInformation">FileNormalizedNameInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19923,8 +19981,14 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileProcessIdsUsingFileInformation">FileProcessIdsUsingFileInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileQuotaInformation">FileQuotaInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileRemoteProtocolInfo">FileRemoteProtocolInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileRemoteProtocolInformation">FileRemoteProtocolInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileRenameInfo">FileRenameInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileRenameInfoEx">FileRenameInfoEx (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileRenameInformation">FileRenameInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -19945,14 +20009,20 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileShortNameInformation">FileShortNameInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_NOTIFY_EXTENDED_INFORMATION.FileSize">FileSize (windows.generated_def.winstructs._FILE_NOTIFY_EXTENDED_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileStandardInfo">FileStandardInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileStandardInformation">FileStandardInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileStandardLinkInformation">FileStandardLinkInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileStorageInfo">FileStorageInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BG_JOB_PROGRESS.FilesTotal">FilesTotal (windows.generated_def.winstructs._BG_JOB_PROGRESS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BG_JOB_PROGRESS.FilesTransferred">FilesTransferred (windows.generated_def.winstructs._BG_JOB_PROGRESS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.FileStreamInfo">FileStreamInfo (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFORMATION_CLASS.FileStreamInformation">FileStreamInformation (windows.generated_def.winstructs._FILE_INFORMATION_CLASS attribute)</a>
|
||||
</li>
|
||||
@@ -20984,21 +21054,27 @@
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.FSCTL_WRITE_USN_REASON">FSCTL_WRITE_USN_REASON (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.ftCreationTime">ftCreationTime (windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.ftCreationTime">ftCreationTime (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.ftCreationTime">(windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAW.ftCreationTime">(windows.generated_def.winstructs._WIN32_FIND_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.ftLastAccessTime">ftLastAccessTime (windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.ftLastAccessTime">ftLastAccessTime (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.ftLastAccessTime">(windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAW.ftLastAccessTime">(windows.generated_def.winstructs._WIN32_FIND_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.ftLastWriteTime">ftLastWriteTime (windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.ftLastWriteTime">ftLastWriteTime (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.ftLastWriteTime">(windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAW.ftLastWriteTime">(windows.generated_def.winstructs._WIN32_FIND_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
@@ -22431,6 +22507,10 @@
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.GetExtendedUdpTable">GetExtendedUdpTable() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IBackgroundCopyError.GetFile">GetFile() (windows.generated_def.interfaces.IBackgroundCopyError method)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.GetFileInformationByHandle">GetFileInformationByHandle() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.GetFileInformationByHandleEx">GetFileInformationByHandleEx() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IBackgroundCopyFile2.GetFileRanges">GetFileRanges() (windows.generated_def.interfaces.IBackgroundCopyFile2 method)</a>
|
||||
|
||||
@@ -22575,11 +22655,11 @@
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.ICallFrame.GetIIDAndMethod">GetIIDAndMethod() (windows.generated_def.interfaces.ICallFrame method)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IRpcHelper.GetIIDFromOBJREF">GetIIDFromOBJREF() (windows.generated_def.interfaces.IRpcHelper method)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IClassClassicInfo.GetImplementedClsid">GetImplementedClsid() (windows.generated_def.interfaces.IClassClassicInfo method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IClassClassicInfo.GetImplementedClsid">GetImplementedClsid() (windows.generated_def.interfaces.IClassClassicInfo method)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.ITypeInfo.GetImplTypeFlags">GetImplTypeFlags() (windows.generated_def.interfaces.ITypeInfo method)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IActivationStageInfo.GetIndex">GetIndex() (windows.generated_def.interfaces.IActivationStageInfo method)</a>
|
||||
@@ -26463,6 +26543,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPBITMAPINFOHEADER">LPBITMAPINFOHEADER (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPBOOL">LPBOOL (in module windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPBY_HANDLE_FILE_INFORMATION">LPBY_HANDLE_FILE_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
@@ -26591,6 +26673,10 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPGUID">LPGUID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPHANDLE">LPHANDLE (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPHANDLER_FUNCTION">LPHANDLER_FUNCTION (in module windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPHANDLER_FUNCTION_EX">LPHANDLER_FUNCTION_EX (in module windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.LPIDLDESC">LPIDLDESC (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
@@ -27189,6 +27275,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._CERT_CHAIN_ENGINE_CONFIG.MaximumCachedCertificates">MaximumCachedCertificates (windows.generated_def.winstructs._CERT_CHAIN_ENGINE_CONFIG attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_FS_ATTRIBUTE_INFORMATION.MaximumComponentNameLength">MaximumComponentNameLength (windows.generated_def.winstructs._FILE_FS_ATTRIBUTE_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS.MaximumFileInfoByHandleClass">MaximumFileInfoByHandleClass (windows.generated_def.winstructs._FILE_INFO_BY_HANDLE_CLASS attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._EVENT_TRACE_PROPERTIES.MaximumFileSize">MaximumFileSize (windows.generated_def.winstructs._EVENT_TRACE_PROPERTIES attribute)</a>
|
||||
|
||||
@@ -27557,11 +27645,11 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.MIB_TCPTABLE_OWNER_PID">MIB_TCPTABLE_OWNER_PID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.MIB_UDP6ROW_OWNER_PID">MIB_UDP6ROW_OWNER_PID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.MIB_UDP6TABLE_OWNER_PID">MIB_UDP6TABLE_OWNER_PID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.MIB_UDP6TABLE_OWNER_PID">MIB_UDP6TABLE_OWNER_PID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.MIB_UDPROW_OWNER_PID">MIB_UDPROW_OWNER_PID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.MIB_UDPTABLE_OWNER_PID">MIB_UDPTABLE_OWNER_PID (class in windows.generated_def.winstructs)</a>
|
||||
@@ -28935,14 +29023,14 @@
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NERR_RplLoadrDiskErr">NERR_RplLoadrDiskErr (in module windows.generated_def)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NERR_RplLoadrNetBiosErr">NERR_RplLoadrNetBiosErr (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NERR_RplNeedsRPLUSERAcct">NERR_RplNeedsRPLUSERAcct (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NERR_RplNoAdaptersStarted">NERR_RplNoAdaptersStarted (in module windows.generated_def)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NERR_RplNotRplServer">NERR_RplNotRplServer (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NERR_RplProfileInfoCorrupted">NERR_RplProfileInfoCorrupted (in module windows.generated_def)</a>
|
||||
@@ -29271,15 +29359,23 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._CTL_INFO.NextUpdate">(windows.generated_def.winstructs._CTL_INFO attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.nFileSizeHigh">nFileSizeHigh (windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.nFileIndexHigh">nFileIndexHigh (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.nFileIndexLow">nFileIndexLow (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.nFileSizeHigh">nFileSizeHigh (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.nFileSizeHigh">(windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAW.nFileSizeHigh">(windows.generated_def.winstructs._WIN32_FIND_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.nFileSizeLow">nFileSizeLow (windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.nFileSizeLow">nFileSizeLow (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAA.nFileSizeLow">(windows.generated_def.winstructs._WIN32_FIND_DATAA attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._WIN32_FIND_DATAW.nFileSizeLow">(windows.generated_def.winstructs._WIN32_FIND_DATAW attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
@@ -29290,6 +29386,8 @@
|
||||
<li><a href="windef_generated.html#windows.generated_def.NMPWAIT_USE_DEFAULT_WAIT">NMPWAIT_USE_DEFAULT_WAIT (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="windef_generated.html#windows.generated_def.NMPWAIT_WAIT_FOREVER">NMPWAIT_WAIT_FOREVER (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION.nNumberOfLinks">nNumberOfLinks (windows.generated_def.winstructs._BY_HANDLE_FILE_INFORMATION attribute)</a>
|
||||
</li>
|
||||
<li><a href="winerror_generated.html#windows.generated_def.NO_ERROR">NO_ERROR (in module windows.generated_def)</a>
|
||||
</li>
|
||||
@@ -30778,6 +30876,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._ANON_TMP_variant_sub_union.pbVal">pbVal (windows.generated_def.winstructs._ANON_TMP_variant_sub_union attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.CRYPTCATATTRIBUTE_.pbValue">pbValue (windows.generated_def.winstructs.CRYPTCATATTRIBUTE_ attribute)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.PBY_HANDLE_FILE_INFORMATION">PBY_HANDLE_FILE_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.PBYTE">PBYTE (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
@@ -31654,6 +31754,8 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.PFILE_FULL_EA_INFORMATION">PFILE_FULL_EA_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.PFILE_GET_EA_INFORMATION">PFILE_GET_EA_INFORMATION (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.PFILE_INFO_BY_HANDLE_CLASS">PFILE_INFO_BY_HANDLE_CLASS (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.PFILE_INFORMATION_CLASS">PFILE_INFORMATION_CLASS (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
@@ -32272,11 +32374,11 @@
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.POBJECTS_AND_NAME_A">POBJECTS_AND_NAME_A (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.POBJECTS_AND_NAME_W">POBJECTS_AND_NAME_W (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.POBJECTS_AND_SID">POBJECTS_AND_SID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs.POBJECTS_AND_SID">POBJECTS_AND_SID (class in windows.generated_def.winstructs)</a>
|
||||
</li>
|
||||
<li><a href="winstructs_generated.html#windows.generated_def.winstructs._CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION.pOctetString">pOctetString (windows.generated_def.winstructs._CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_UNION attribute)</a>
|
||||
|
||||
<ul>
|
||||
@@ -34810,6 +34912,14 @@
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IBindCtx.RegisterObjectBound">RegisterObjectBound() (windows.generated_def.interfaces.IBindCtx method)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IBindCtx.RegisterObjectParam">RegisterObjectParam() (windows.generated_def.interfaces.IBindCtx method)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerA">RegisterServiceCtrlHandlerA() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExA">RegisterServiceCtrlHandlerExA() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExW">RegisterServiceCtrlHandlerExW() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerW">RegisterServiceCtrlHandlerW() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.ICallInterceptor.RegisterSink">RegisterSink() (windows.generated_def.interfaces.ICallInterceptor method)</a>
|
||||
</li>
|
||||
@@ -35521,6 +35631,8 @@
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IStandardActivator.Reset">(windows.generated_def.interfaces.IStandardActivator method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="process.html#windows.winobject.apisetmap.ApiSetMap.resolution_dict">resolution_dict (windows.winobject.apisetmap.ApiSetMap property)</a>
|
||||
</li>
|
||||
<li><a href="winproxy.html#windows.winproxy.resolve">resolve() (in module windows.winproxy)</a>
|
||||
@@ -35531,8 +35643,6 @@
|
||||
<li><a href="debug.html#windows.debug.symbols.VirtualSymbolHandler.resolve">(windows.debug.symbols.VirtualSymbolHandler method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IShellLinkA.Resolve">Resolve() (windows.generated_def.interfaces.IShellLinkA method)</a>
|
||||
|
||||
<ul>
|
||||
@@ -37862,6 +37972,8 @@
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetEnvironmentVariableA">SetEnvironmentVariableA() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetEnvironmentVariableW">SetEnvironmentVariableW() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetFileInformationByHandle">SetFileInformationByHandle() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IShellLinkA.SetHotkey">SetHotkey() (windows.generated_def.interfaces.IShellLinkA method)</a>
|
||||
|
||||
@@ -37990,6 +38102,10 @@
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetSecurityDescriptorOwner">SetSecurityDescriptorOwner() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetSecurityInfo">SetSecurityInfo() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetServiceBits">SetServiceBits() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="winfuncs_generated.html#windows.generated_def.winfuncs.SetServiceStatus">SetServiceStatus() (in module windows.generated_def.winfuncs)</a>
|
||||
</li>
|
||||
<li><a href="interfaces_generated.html#windows.generated_def.interfaces.IShellLinkA.SetShowCmd">SetShowCmd() (windows.generated_def.interfaces.IShellLinkA method)</a>
|
||||
|
||||
@@ -40591,12 +40707,12 @@
|
||||
</li>
|
||||
<li><a href="ntstatus_generated.html#windows.generated_def.STATUS_FWP_DUPLICATE_CONDITION">STATUS_FWP_DUPLICATE_CONDITION (in module windows.generated_def)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="ntstatus_generated.html#windows.generated_def.STATUS_FWP_DUPLICATE_KEYMOD">STATUS_FWP_DUPLICATE_KEYMOD (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="ntstatus_generated.html#windows.generated_def.STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS">STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS (in module windows.generated_def)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="ntstatus_generated.html#windows.generated_def.STATUS_FWP_EM_NOT_SUPPORTED">STATUS_FWP_EM_NOT_SUPPORTED (in module windows.generated_def)</a>
|
||||
</li>
|
||||
<li><a href="ntstatus_generated.html#windows.generated_def.STATUS_FWP_FILTER_NOT_FOUND">STATUS_FWP_FILTER_NOT_FOUND (in module windows.generated_def)</a>
|
||||
|
||||
+44
-44
@@ -47,41 +47,6 @@
|
||||
|
||||
<section id="interfaces">
|
||||
<span id="module-windows.generated_def.interfaces"></span><h1><span class="section-number">14.7. </span>Interfaces<a class="headerlink" href="#interfaces" title="Link to this heading">¶</a></h1>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.generated_def.interfaces.</span></span><span class="sig-name descname"><span class="pre">IActivationStageInfo</span></span><a class="reference internal" href="_modules/windows/generated_def/interfaces.html#IActivationStageInfo"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo" title="Link to this definition">¶</a></dt>
|
||||
<dd><dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.QueryInterface">
|
||||
<span class="sig-name descname"><span class="pre">QueryInterface</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.QueryInterface" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.AddRef">
|
||||
<span class="sig-name descname"><span class="pre">AddRef</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.AddRef" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.Release">
|
||||
<span class="sig-name descname"><span class="pre">Release</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.Release" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.SetStageAndIndex">
|
||||
<span class="sig-name descname"><span class="pre">SetStageAndIndex</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.SetStageAndIndex" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.GetStage">
|
||||
<span class="sig-name descname"><span class="pre">GetStage</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.GetStage" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.GetIndex">
|
||||
<span class="sig-name descname"><span class="pre">GetIndex</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.GetIndex" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.ICallFactory">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.generated_def.interfaces.</span></span><span class="sig-name descname"><span class="pre">ICallFactory</span></span><a class="reference internal" href="_modules/windows/generated_def/interfaces.html#ICallFactory"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.generated_def.interfaces.ICallFactory" title="Link to this definition">¶</a></dt>
|
||||
@@ -2987,6 +2952,41 @@
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.generated_def.interfaces.</span></span><span class="sig-name descname"><span class="pre">IActivationStageInfo</span></span><a class="reference internal" href="_modules/windows/generated_def/interfaces.html#IActivationStageInfo"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo" title="Link to this definition">¶</a></dt>
|
||||
<dd><dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.QueryInterface">
|
||||
<span class="sig-name descname"><span class="pre">QueryInterface</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.QueryInterface" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.AddRef">
|
||||
<span class="sig-name descname"><span class="pre">AddRef</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.AddRef" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.Release">
|
||||
<span class="sig-name descname"><span class="pre">Release</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.Release" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.SetStageAndIndex">
|
||||
<span class="sig-name descname"><span class="pre">SetStageAndIndex</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.SetStageAndIndex" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.GetStage">
|
||||
<span class="sig-name descname"><span class="pre">GetStage</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.GetStage" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IActivationStageInfo.GetIndex">
|
||||
<span class="sig-name descname"><span class="pre">GetIndex</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.interfaces.IActivationStageInfo.GetIndex" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.interfaces.IClassClassicInfo">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.generated_def.interfaces.</span></span><span class="sig-name descname"><span class="pre">IClassClassicInfo</span></span><a class="reference internal" href="_modules/windows/generated_def/interfaces.html#IClassClassicInfo"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.generated_def.interfaces.IClassClassicInfo" title="Link to this definition">¶</a></dt>
|
||||
@@ -7700,15 +7700,6 @@
|
||||
<h3><a href="index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">14.7. Interfaces</a><ul>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo"><code class="docutils literal notranslate"><span class="pre">IActivationStageInfo</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.QueryInterface"><code class="docutils literal notranslate"><span class="pre">QueryInterface()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.AddRef"><code class="docutils literal notranslate"><span class="pre">AddRef()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.Release"><code class="docutils literal notranslate"><span class="pre">Release()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.SetStageAndIndex"><code class="docutils literal notranslate"><span class="pre">SetStageAndIndex()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.GetStage"><code class="docutils literal notranslate"><span class="pre">GetStage()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.GetIndex"><code class="docutils literal notranslate"><span class="pre">GetIndex()</span></code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.ICallFactory"><code class="docutils literal notranslate"><span class="pre">ICallFactory</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.ICallFactory.QueryInterface"><code class="docutils literal notranslate"><span class="pre">QueryInterface()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.ICallFactory.AddRef"><code class="docutils literal notranslate"><span class="pre">AddRef()</span></code></a></li>
|
||||
@@ -8376,6 +8367,15 @@
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationPropertiesIn.GetReturnActivationProperties"><code class="docutils literal notranslate"><span class="pre">GetReturnActivationProperties()</span></code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo"><code class="docutils literal notranslate"><span class="pre">IActivationStageInfo</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.QueryInterface"><code class="docutils literal notranslate"><span class="pre">QueryInterface()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.AddRef"><code class="docutils literal notranslate"><span class="pre">AddRef()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.Release"><code class="docutils literal notranslate"><span class="pre">Release()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.SetStageAndIndex"><code class="docutils literal notranslate"><span class="pre">SetStageAndIndex()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.GetStage"><code class="docutils literal notranslate"><span class="pre">GetStage()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IActivationStageInfo.GetIndex"><code class="docutils literal notranslate"><span class="pre">GetIndex()</span></code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IClassClassicInfo"><code class="docutils literal notranslate"><span class="pre">IClassClassicInfo</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IClassClassicInfo.QueryInterface"><code class="docutils literal notranslate"><span class="pre">QueryInterface()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.interfaces.IClassClassicInfo.AddRef"><code class="docutils literal notranslate"><span class="pre">AddRef()</span></code></a></li>
|
||||
|
||||
Vendored
+13
@@ -1442,6 +1442,18 @@ The behavior should match the non-exported function <code class="docutils litera
|
||||
<dt class="sig sig-object py" id="windows.pe_parse.PEFile">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.pe_parse.</span></span><span class="sig-name descname"><span class="pre">PEFile</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">baseaddr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">targetedbitness</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">transformers</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/pe_parse.html#PEFile"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.pe_parse.PEFile" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Represent a PE loaded in a process (current or remote)</p>
|
||||
<dl class="py property">
|
||||
<dt class="sig sig-object py" id="windows.pe_parse.PEFile.binid">
|
||||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">binid</span></span><a class="headerlink" href="#windows.pe_parse.PEFile.binid" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Return the hex-string {TimeStamp}{SizeOfCode} used by PDB to identify a PE.</p>
|
||||
<p>I do not know the official name of this value…</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Type<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py property">
|
||||
<dt class="sig sig-object py" id="windows.pe_parse.PEFile.export_name">
|
||||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">export_name</span></span><a class="headerlink" href="#windows.pe_parse.PEFile.export_name" title="Link to this definition">¶</a></dt>
|
||||
@@ -1764,6 +1776,7 @@ You MUST keep a reference to the hook while the hook is enabled.</p>
|
||||
<li><a class="reference internal" href="#windows.pe_parse.GetPEFile"><code class="docutils literal notranslate"><span class="pre">GetPEFile()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#pefile">2.3.1.1. PEFile</a><ul>
|
||||
<li><a class="reference internal" href="#windows.pe_parse.PEFile"><code class="docutils literal notranslate"><span class="pre">PEFile</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.pe_parse.PEFile.binid"><code class="docutils literal notranslate"><span class="pre">binid</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.pe_parse.PEFile.export_name"><code class="docutils literal notranslate"><span class="pre">export_name</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.pe_parse.PEFile.exports"><code class="docutils literal notranslate"><span class="pre">exports</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.pe_parse.PEFile.imports"><code class="docutils literal notranslate"><span class="pre">imports</span></code></a></li>
|
||||
|
||||
Vendored
+209
-1
@@ -713,6 +713,211 @@ Service started !
|
||||
- process: <WinProcess "!cannot-retrieve-name" pid 14700 at 0x4a2c4f0>
|
||||
</pre></div>
|
||||
</div>
|
||||
<section id="windows-service-in-python">
|
||||
<h3><span class="section-number">18.4.1. </span>Windows Service in Python<a class="headerlink" href="#windows-service-in-python" title="Link to this heading">¶</a></h3>
|
||||
<p>This script can register itself as a service and act on <cite>stop</cite> request.
|
||||
It also can delete its own service.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># A python script able to install itself as a service</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="kn">import</span> <span class="nn">os.path</span>
|
||||
<span class="kn">import</span> <span class="nn">argparse</span>
|
||||
<span class="kn">import</span> <span class="nn">datetime</span>
|
||||
<span class="kn">import</span> <span class="nn">ctypes</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">windows</span>
|
||||
<span class="kn">import</span> <span class="nn">windows.generated_def</span> <span class="k">as</span> <span class="nn">gdef</span>
|
||||
|
||||
<span class="n">SERVICE_NAME</span> <span class="o">=</span> <span class="sa">u</span><span class="s2">"PFW_SERVICE_DEMO"</span>
|
||||
<span class="n">SERVICE_DESCRIPTION</span> <span class="o">=</span> <span class="sa">u</span><span class="s2">"PythonForWindows demo service"</span>
|
||||
|
||||
<span class="n">SERVICE_LOGFILE</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="vm">__file__</span><span class="p">),</span> <span class="s2">"pfw_service_logs.txt"</span><span class="p">)</span>
|
||||
|
||||
<span class="n">SERVICE_HANDLE</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">install_demo_service</span><span class="p">():</span>
|
||||
<span class="n">path</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{executable}</span><span class="s2"> </span><span class="si">{pyfile}</span><span class="s2"> --run"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">executable</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">executable</span><span class="p">,</span> <span class="n">pyfile</span><span class="o">=</span><span class="vm">__file__</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Registering service <</span><span class="si">{0}</span><span class="s2">> as : <</span><span class="si">{1}</span><span class="s2">>"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">SERVICE_NAME</span><span class="p">,</span> <span class="n">path</span><span class="p">))</span>
|
||||
<span class="n">newservice</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">system</span><span class="o">.</span><span class="n">services</span><span class="o">.</span><span class="n">create</span><span class="p">(</span>
|
||||
<span class="n">name</span><span class="o">=</span><span class="n">SERVICE_NAME</span><span class="p">,</span>
|
||||
<span class="n">description</span><span class="o">=</span><span class="n">SERVICE_DESCRIPTION</span><span class="p">,</span>
|
||||
<span class="n">access</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_ALL_ACCESS</span><span class="p">,</span>
|
||||
<span class="nb">type</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_WIN32_OWN_PROCESS</span><span class="p">,</span>
|
||||
<span class="n">start</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_DEMAND_START</span><span class="p">,</span>
|
||||
<span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
||||
<span class="n">user</span><span class="o">=</span><span class="kc">None</span>
|
||||
<span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">newservice</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">uninstall_demo_service</span><span class="p">():</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Deleting service"</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">windows</span><span class="o">.</span><span class="n">system</span><span class="o">.</span><span class="n">services</span><span class="p">[</span><span class="n">SERVICE_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">delete</span><span class="p">())</span>
|
||||
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">SERVICE_LOGFILE</span><span class="p">,</span> <span class="s2">"a"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"[</span><span class="si">{time}</span><span class="s2">] </span><span class="si">{s}</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">(),</span> <span class="n">s</span><span class="o">=</span><span class="n">s</span><span class="p">))</span>
|
||||
|
||||
|
||||
<span class="nd">@ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">PVOID</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">PVOID</span><span class="p">)</span>
|
||||
<span class="k">def</span> <span class="nf">service_handlerex</span><span class="p">(</span><span class="n">dwControl</span><span class="p">,</span> <span class="n">dwEventType</span><span class="p">,</span> <span class="n">lpEventData</span><span class="p">,</span> <span class="n">lpContext</span><span class="p">):</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"in service_handlerex"</span><span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"service_handlerex: called with </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">dwControl</span><span class="p">))</span>
|
||||
<span class="k">if</span> <span class="n">dwControl</span> <span class="o">==</span> <span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_CONTROL_STOP</span><span class="p">:</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"Stopping the service"</span><span class="p">)</span>
|
||||
<span class="n">running_status</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_STATUS</span><span class="p">(</span>
|
||||
<span class="n">dwServiceSpecificExitCode</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
||||
<span class="n">dwServiceType</span> <span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_WIN32_OWN_PROCESS</span><span class="p">,</span>
|
||||
<span class="n">dwCurrentState</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_STOPPED</span><span class="p">,</span>
|
||||
<span class="n">dwWin32ExitCode</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">NO_ERROR</span><span class="p">,</span>
|
||||
<span class="n">dwControlsAccepted</span><span class="o">=</span><span class="mi">0</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">SetServiceStatus</span><span class="p">(</span><span class="n">SERVICE_HANDLE</span><span class="p">,</span> <span class="n">running_status</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
||||
<span class="k">return</span> <span class="mi">0</span>
|
||||
|
||||
<span class="nd">@ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">PVOID</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">LPWSTR</span><span class="p">))</span>
|
||||
<span class="k">def</span> <span class="nf">service_main</span><span class="p">(</span><span class="n">dwNumServicesArgs</span><span class="p">,</span> <span class="n">lpServiceArgVectors</span><span class="p">):</span>
|
||||
<span class="k">global</span> <span class="n">SERVICE_HANDLE</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"In service_main"</span><span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"service_main: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">dwNumServicesArgs</span><span class="p">))</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"service_main: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">lpServiceArgVectors</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"Calling RegisterServiceCtrlHandlerExW"</span><span class="p">)</span>
|
||||
<span class="n">SERVICE_HANDLE</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">RegisterServiceCtrlHandlerExW</span><span class="p">(</span><span class="n">SERVICE_NAME</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">service_handlerex</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">PVOID</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"RegisterServiceCtrlHandlerExW handle: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">SERVICE_HANDLE</span><span class="p">))</span>
|
||||
|
||||
<span class="n">running_status</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_STATUS</span><span class="p">(</span>
|
||||
<span class="n">dwServiceSpecificExitCode</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
||||
<span class="n">dwServiceType</span> <span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_WIN32_OWN_PROCESS</span><span class="p">,</span>
|
||||
<span class="n">dwCurrentState</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_RUNNING</span><span class="p">,</span>
|
||||
<span class="n">dwWin32ExitCode</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">NO_ERROR</span><span class="p">,</span>
|
||||
<span class="n">dwControlsAccepted</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_ACCEPT_STOP</span> <span class="o">|</span> <span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_ACCEPT_PAUSE_CONTINUE</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">res</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">SetServiceStatus</span><span class="p">(</span><span class="n">SERVICE_HANDLE</span><span class="p">,</span> <span class="n">running_status</span><span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"Service is running : </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">res</span><span class="p">))</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
||||
<span class="k">raise</span>
|
||||
|
||||
<span class="k">return</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run_demo_service</span><span class="p">():</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"start of run_demo_service()"</span><span class="p">)</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">SERVICE_TABLE</span> <span class="o">=</span> <span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_TABLE_ENTRYW</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)(</span>
|
||||
<span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_TABLE_ENTRYW</span><span class="p">(</span><span class="n">SERVICE_NAME</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">service_main</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">PVOID</span><span class="p">)),</span>
|
||||
<span class="n">gdef</span><span class="o">.</span><span class="n">SERVICE_TABLE_ENTRYW</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"Calling: StartServiceCtrlDispatcherW()"</span><span class="p">)</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">StartServiceCtrlDispatcherW</span><span class="p">(</span><span class="n">SERVICE_TABLE</span><span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"StartServiceCtrlDispatcherW returned: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">result</span><span class="p">))</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"Quitting"</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
||||
<span class="k">raise</span>
|
||||
|
||||
|
||||
|
||||
<span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">prog</span><span class="o">=</span><span class="vm">__file__</span><span class="p">,</span> <span class="n">formatter_class</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentDefaultsHelpFormatter</span><span class="p">)</span>
|
||||
<span class="n">group</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_mutually_exclusive_group</span><span class="p">(</span><span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--install"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Install the service in registry"</span><span class="p">)</span>
|
||||
<span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--uninstall"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"UnInstall the service in registry"</span><span class="p">)</span>
|
||||
<span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--run"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Called by the services.exe to run the service"</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span>
|
||||
<span class="n">args</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">install</span><span class="p">:</span>
|
||||
<span class="n">install_demo_service</span><span class="p">()</span>
|
||||
<span class="k">elif</span> <span class="n">args</span><span class="o">.</span><span class="n">uninstall</span><span class="p">:</span>
|
||||
<span class="n">uninstall_demo_service</span><span class="p">()</span>
|
||||
<span class="k">elif</span> <span class="n">args</span><span class="o">.</span><span class="n">run</span><span class="p">:</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="s2">"calling run_demo_service()"</span><span class="p">)</span>
|
||||
<span class="n">log</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
|
||||
<span class="n">run_demo_service</span><span class="p">()</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Unknown argument"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Output</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">sc</span><span class="o">.</span><span class="n">exe</span> <span class="n">query</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="p">[</span><span class="n">SC</span><span class="p">]</span> <span class="n">EnumQueryServicesStatus</span><span class="p">:</span><span class="n">OpenService</span> <span class="n">FAILED</span> <span class="mi">1060</span><span class="p">:</span>
|
||||
|
||||
<span class="n">The</span> <span class="n">specified</span> <span class="n">service</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">exist</span> <span class="k">as</span> <span class="n">an</span> <span class="n">installed</span> <span class="n">service</span><span class="o">.</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">py</span> <span class="o">.</span>\<span class="n">service</span>\<span class="n">python_service</span><span class="o">.</span><span class="n">py</span> <span class="o">--</span><span class="n">install</span>
|
||||
<span class="n">Registering</span> <span class="n">service</span> <span class="o"><</span><span class="n">PFW_SERVICE_DEMO</span><span class="o">></span> <span class="k">as</span> <span class="p">:</span> <span class="o"><</span><span class="n">C</span><span class="p">:</span>\<span class="n">Users</span>\<span class="n">cleme</span>\<span class="n">AppData</span>\<span class="n">Local</span>\<span class="n">Programs</span>\<span class="n">Python</span>\<span class="n">Python311</span>\<span class="n">python</span><span class="o">.</span><span class="n">exe</span> <span class="n">C</span><span class="p">:</span>\<span class="n">Users</span>\<span class="n">cleme</span>\<span class="n">Documents</span>\<span class="n">projets</span>\<span class="n">PythonForWindows</span>\<span class="n">samples</span>\<span class="n">service</span>\<span class="n">python_service</span><span class="o">.</span><span class="n">py</span> <span class="o">--</span><span class="n">run</span><span class="o">></span>
|
||||
<span class="o"><</span><span class="n">Service</span> <span class="s2">"PFW_SERVICE_DEMO"</span> <span class="n">SERVICE_STOPPED</span><span class="p">(</span><span class="mh">0x1</span><span class="p">)</span><span class="o">></span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">sc</span><span class="o">.</span><span class="n">exe</span> <span class="n">start</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="n">SERVICE_NAME</span><span class="p">:</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="n">TYPE</span> <span class="p">:</span> <span class="mi">10</span> <span class="n">WIN32_OWN_PROCESS</span>
|
||||
<span class="n">STATE</span> <span class="p">:</span> <span class="mi">2</span> <span class="n">START_PENDING</span>
|
||||
<span class="p">(</span><span class="n">NOT_STOPPABLE</span><span class="p">,</span> <span class="n">NOT_PAUSABLE</span><span class="p">,</span> <span class="n">IGNORES_SHUTDOWN</span><span class="p">)</span>
|
||||
<span class="n">WIN32_EXIT_CODE</span> <span class="p">:</span> <span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">SERVICE_EXIT_CODE</span> <span class="p">:</span> <span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">CHECKPOINT</span> <span class="p">:</span> <span class="mh">0x0</span>
|
||||
<span class="n">WAIT_HINT</span> <span class="p">:</span> <span class="mh">0x7d0</span>
|
||||
<span class="n">PID</span> <span class="p">:</span> <span class="mi">21132</span>
|
||||
<span class="n">FLAGS</span> <span class="p">:</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">sc</span><span class="o">.</span><span class="n">exe</span> <span class="n">query</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="n">SERVICE_NAME</span><span class="p">:</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="n">TYPE</span> <span class="p">:</span> <span class="mi">10</span> <span class="n">WIN32_OWN_PROCESS</span>
|
||||
<span class="n">STATE</span> <span class="p">:</span> <span class="mi">4</span> <span class="n">RUNNING</span>
|
||||
<span class="p">(</span><span class="n">STOPPABLE</span><span class="p">,</span> <span class="n">PAUSABLE</span><span class="p">,</span> <span class="n">IGNORES_SHUTDOWN</span><span class="p">)</span>
|
||||
<span class="n">WIN32_EXIT_CODE</span> <span class="p">:</span> <span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">SERVICE_EXIT_CODE</span> <span class="p">:</span> <span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">CHECKPOINT</span> <span class="p">:</span> <span class="mh">0x0</span>
|
||||
<span class="n">WAIT_HINT</span> <span class="p">:</span> <span class="mh">0x0</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">cat</span> <span class="o">.</span>\<span class="n">service</span>\<span class="n">pfw_service_logs</span><span class="o">.</span><span class="n">txt</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">calling</span> <span class="n">run_demo_service</span><span class="p">()</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="p">[</span><span class="s1">'C:</span><span class="se">\\</span><span class="s1">Users</span><span class="se">\\</span><span class="s1">XXX</span><span class="se">\\</span><span class="s1">PythonForWindows</span><span class="se">\\</span><span class="s1">samples</span><span class="se">\\</span><span class="s1">service</span><span class="se">\\</span><span class="s1">python_service.py'</span><span class="p">,</span> <span class="s1">'--run'</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">start</span> <span class="n">of</span> <span class="n">run_demo_service</span><span class="p">()</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">Calling</span><span class="p">:</span> <span class="n">StartServiceCtrlDispatcherW</span><span class="p">()</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">In</span> <span class="n">service_main</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">service_main</span><span class="p">:</span> <span class="mi">1</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">service_main</span><span class="p">:</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">Calling</span> <span class="n">RegisterServiceCtrlHandlerExW</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.033158</span><span class="p">]</span> <span class="n">RegisterServiceCtrlHandlerExW</span> <span class="n">handle</span><span class="p">:</span> <span class="mi">2591650953424</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.038274</span><span class="p">]</span> <span class="n">Service</span> <span class="ow">is</span> <span class="n">running</span> <span class="p">:</span> <span class="mi">1</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">sc</span><span class="o">.</span><span class="n">exe</span> <span class="n">stop</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="n">SERVICE_NAME</span><span class="p">:</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="n">TYPE</span> <span class="p">:</span> <span class="mi">10</span> <span class="n">WIN32_OWN_PROCESS</span>
|
||||
<span class="n">STATE</span> <span class="p">:</span> <span class="mi">1</span> <span class="n">STOPPED</span>
|
||||
<span class="n">WIN32_EXIT_CODE</span> <span class="p">:</span> <span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">SERVICE_EXIT_CODE</span> <span class="p">:</span> <span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
|
||||
<span class="n">CHECKPOINT</span> <span class="p">:</span> <span class="mh">0x0</span>
|
||||
<span class="n">WAIT_HINT</span> <span class="p">:</span> <span class="mh">0x0</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">cat</span> <span class="o">.</span>\<span class="n">service</span>\<span class="n">pfw_service_logs</span><span class="o">.</span><span class="n">txt</span>
|
||||
<span class="p">[</span><span class="o">...</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">36.038274</span><span class="p">]</span> <span class="n">Service</span> <span class="ow">is</span> <span class="n">running</span> <span class="p">:</span> <span class="mi">1</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">53.422375</span><span class="p">]</span> <span class="ow">in</span> <span class="n">service_handlerex</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">53.422375</span><span class="p">]</span> <span class="n">service_handlerex</span><span class="p">:</span> <span class="n">called</span> <span class="k">with</span> <span class="mi">1</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">53.432530</span><span class="p">]</span> <span class="n">Stopping</span> <span class="n">the</span> <span class="n">service</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">53.433035</span><span class="p">]</span> <span class="n">StartServiceCtrlDispatcherW</span> <span class="n">returned</span><span class="p">:</span> <span class="mi">1</span>
|
||||
<span class="p">[</span><span class="mi">2024</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mf">53.433035</span><span class="p">]</span> <span class="n">Quitting</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">py</span> <span class="o">.</span>\<span class="n">service</span>\<span class="n">python_service</span><span class="o">.</span><span class="n">py</span> <span class="o">--</span><span class="n">uninstall</span>
|
||||
<span class="n">Deleting</span> <span class="n">service</span>
|
||||
<span class="mi">1</span>
|
||||
|
||||
<span class="p">(</span><span class="n">cmd</span><span class="o">-</span><span class="n">admin</span><span class="p">)</span> <span class="n">sc</span><span class="o">.</span><span class="n">exe</span> <span class="n">query</span> <span class="n">PFW_SERVICE_DEMO</span>
|
||||
<span class="p">[</span><span class="n">SC</span><span class="p">]</span> <span class="n">EnumQueryServicesStatus</span><span class="p">:</span><span class="n">OpenService</span> <span class="n">FAILED</span> <span class="mi">1060</span><span class="p">:</span>
|
||||
|
||||
<span class="n">The</span> <span class="n">specified</span> <span class="n">service</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">exist</span> <span class="k">as</span> <span class="n">an</span> <span class="n">installed</span> <span class="n">service</span><span class="o">.</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="network-socket-exploration">
|
||||
<span id="sample-network-exploration"></span><h2><span class="section-number">18.5. </span><code class="xref py py-class docutils literal notranslate"><span class="pre">Network</span></code> - socket exploration<a class="headerlink" href="#network-socket-exploration" title="Link to this heading">¶</a></h2>
|
||||
@@ -4356,7 +4561,10 @@ BYE
|
||||
</li>
|
||||
<li><a class="reference internal" href="#token">18.2. Token</a></li>
|
||||
<li><a class="reference internal" href="#windows-system">18.3. <code class="docutils literal notranslate"><span class="pre">windows.system</span></code></a></li>
|
||||
<li><a class="reference internal" href="#services">18.4. Services</a></li>
|
||||
<li><a class="reference internal" href="#services">18.4. Services</a><ul>
|
||||
<li><a class="reference internal" href="#windows-service-in-python">18.4.1. Windows Service in Python</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#network-socket-exploration">18.5. <code class="xref py py-class docutils literal notranslate"><span class="pre">Network</span></code> - socket exploration</a></li>
|
||||
<li><a class="reference internal" href="#registry">18.6. <code class="xref py py-class docutils literal notranslate"><span class="pre">Registry</span></code></a></li>
|
||||
<li><a class="reference internal" href="#scheduled-tasks">18.7. Scheduled tasks</a></li>
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+19
@@ -81,6 +81,17 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.winobject.service.ServiceManager.create">
|
||||
<span class="sig-name descname"><span class="pre">create</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">description</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">user</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/winobject/service.html#ServiceManager.create"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.winobject.service.ServiceManager.create" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Create a new service</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p><a class="reference internal" href="#windows.winobject.service.Service" title="windows.winobject.service.Service"><code class="xref py py-class docutils literal notranslate"><span class="pre">Service</span></code></a> – The newly created service</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="windows.winobject.service.ServiceManager.enum_flags">
|
||||
<span class="sig-name descname"><span class="pre">enum_flags</span></span><a class="headerlink" href="#windows.winobject.service.ServiceManager.enum_flags" title="Link to this definition">¶</a></dt>
|
||||
@@ -128,6 +139,12 @@
|
||||
<dt class="sig sig-object py" id="windows.winobject.service.Service">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.winobject.service.</span></span><span class="sig-name descname"><span class="pre">Service</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handle</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">description</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/winobject/service.html#Service"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.winobject.service.Service" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Represent a service on the system</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="windows.winobject.service.Service.delete">
|
||||
<span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/winobject/service.html#Service.delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.winobject.service.Service.delete" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Delete the service</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py property">
|
||||
<dt class="sig sig-object py" id="windows.winobject.service.Service.description">
|
||||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">description</span></span><a class="headerlink" href="#windows.winobject.service.Service.description" title="Link to this definition">¶</a></dt>
|
||||
@@ -232,6 +249,7 @@
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager"><code class="docutils literal notranslate"><span class="pre">ServiceManager</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager.__getitem__"><code class="docutils literal notranslate"><span class="pre">__getitem__()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager.__iter__"><code class="docutils literal notranslate"><span class="pre">__iter__()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager.create"><code class="docutils literal notranslate"><span class="pre">create()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager.enum_flags"><code class="docutils literal notranslate"><span class="pre">enum_flags</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager.get_service"><code class="docutils literal notranslate"><span class="pre">get_service()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.ServiceManager.handle"><code class="docutils literal notranslate"><span class="pre">handle</span></code></a></li>
|
||||
@@ -242,6 +260,7 @@
|
||||
</li>
|
||||
<li><a class="reference internal" href="#id1">2.8.2. Service</a><ul>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.Service"><code class="docutils literal notranslate"><span class="pre">Service</span></code></a><ul>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.Service.delete"><code class="docutils literal notranslate"><span class="pre">delete()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.Service.description"><code class="docutils literal notranslate"><span class="pre">description</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.Service.from_param"><code class="docutils literal notranslate"><span class="pre">from_param()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.winobject.service.Service.name"><code class="docutils literal notranslate"><span class="pre">name</span></code></a></li>
|
||||
|
||||
+54
@@ -1262,6 +1262,21 @@
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">LockFileEx</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hFile</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwFlags</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwReserved</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">nNumberOfBytesToLockLow</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">nNumberOfBytesToLockHigh</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpOverlapped</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.LockFileEx" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.SetFileInformationByHandle">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">SetFileInformationByHandle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hFile</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">FileInformationClass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpFileInformation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwBufferSize</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.SetFileInformationByHandle" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.GetFileInformationByHandle">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">GetFileInformationByHandle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hFile</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpFileInformation</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.GetFileInformationByHandle" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.GetFileInformationByHandleEx">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">GetFileInformationByHandleEx</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hFile</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">FileInformationClass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpFileInformation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwBufferSize</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.GetFileInformationByHandleEx" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.HeapAlloc">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">HeapAlloc</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hHeap</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwFlags</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwBytes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.HeapAlloc" title="Link to this definition">¶</a></dt>
|
||||
@@ -2332,6 +2347,36 @@
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">StartServiceCtrlDispatcherW</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lpServiceStartTable</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.StartServiceCtrlDispatcherW" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExA">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">RegisterServiceCtrlHandlerExA</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lpServiceName</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpHandlerProc</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpContext</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExA" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExW">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">RegisterServiceCtrlHandlerExW</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lpServiceName</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpHandlerProc</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpContext</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExW" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.RegisterServiceCtrlHandlerA">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">RegisterServiceCtrlHandlerA</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lpServiceName</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpHandlerProc</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerA" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.RegisterServiceCtrlHandlerW">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">RegisterServiceCtrlHandlerW</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lpServiceName</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpHandlerProc</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerW" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.SetServiceStatus">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">SetServiceStatus</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hServiceStatus</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lpServiceStatus</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.SetServiceStatus" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.SetServiceBits">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">SetServiceBits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hServiceStatus</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dwServiceBits</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bSetBitsOn</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bUpdateImmediately</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.SetServiceBits" title="Link to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="windows.generated_def.winfuncs.SetupDiClassNameFromGuidA">
|
||||
<span class="sig-prename descclassname"><span class="pre">windows.generated_def.winfuncs.</span></span><span class="sig-name descname"><span class="pre">SetupDiClassNameFromGuidA</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ClassGuid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ClassName</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ClassNameSize</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">RequiredSize</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.generated_def.winfuncs.SetupDiClassNameFromGuidA" title="Link to this definition">¶</a></dt>
|
||||
@@ -4513,6 +4558,9 @@
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.ReadDirectoryChangesExW"><code class="docutils literal notranslate"><span class="pre">ReadDirectoryChangesExW()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.LockFile"><code class="docutils literal notranslate"><span class="pre">LockFile()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.LockFileEx"><code class="docutils literal notranslate"><span class="pre">LockFileEx()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.SetFileInformationByHandle"><code class="docutils literal notranslate"><span class="pre">SetFileInformationByHandle()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.GetFileInformationByHandle"><code class="docutils literal notranslate"><span class="pre">GetFileInformationByHandle()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.GetFileInformationByHandleEx"><code class="docutils literal notranslate"><span class="pre">GetFileInformationByHandleEx()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.HeapAlloc"><code class="docutils literal notranslate"><span class="pre">HeapAlloc()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.InternetCheckConnectionA"><code class="docutils literal notranslate"><span class="pre">InternetCheckConnectionA()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.InternetCheckConnectionW"><code class="docutils literal notranslate"><span class="pre">InternetCheckConnectionW()</span></code></a></li>
|
||||
@@ -4727,6 +4775,12 @@
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.DeleteService"><code class="docutils literal notranslate"><span class="pre">DeleteService()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.StartServiceCtrlDispatcherA"><code class="docutils literal notranslate"><span class="pre">StartServiceCtrlDispatcherA()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.StartServiceCtrlDispatcherW"><code class="docutils literal notranslate"><span class="pre">StartServiceCtrlDispatcherW()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExA"><code class="docutils literal notranslate"><span class="pre">RegisterServiceCtrlHandlerExA()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerExW"><code class="docutils literal notranslate"><span class="pre">RegisterServiceCtrlHandlerExW()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerA"><code class="docutils literal notranslate"><span class="pre">RegisterServiceCtrlHandlerA()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.RegisterServiceCtrlHandlerW"><code class="docutils literal notranslate"><span class="pre">RegisterServiceCtrlHandlerW()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.SetServiceStatus"><code class="docutils literal notranslate"><span class="pre">SetServiceStatus()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.SetServiceBits"><code class="docutils literal notranslate"><span class="pre">SetServiceBits()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.SetupDiClassNameFromGuidA"><code class="docutils literal notranslate"><span class="pre">SetupDiClassNameFromGuidA()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.SetupDiClassNameFromGuidW"><code class="docutils literal notranslate"><span class="pre">SetupDiClassNameFromGuidW()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#windows.generated_def.winfuncs.SetupDiClassNameFromGuidExA"><code class="docutils literal notranslate"><span class="pre">SetupDiClassNameFromGuidExA()</span></code></a></li>
|
||||
|
||||
+677
-374
File diff suppressed because it is too large
Load Diff
@@ -103,7 +103,17 @@ Output
|
||||
|
||||
.. literalinclude:: samples_output\service_service_demo.txt
|
||||
|
||||
Windows Service in Python
|
||||
'''''''''''''''''''''''''
|
||||
|
||||
This script can register itself as a service and act on `stop` request.
|
||||
It also can delete its own service.
|
||||
|
||||
.. literalinclude:: ..\..\samples\service\python_service.py
|
||||
|
||||
Output
|
||||
|
||||
.. literalinclude:: samples_output\service_python_service.txt
|
||||
|
||||
|
||||
.. _sample_network_exploration:
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
(cmd-admin) sc.exe query PFW_SERVICE_DEMO
|
||||
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:
|
||||
|
||||
The specified service does not exist as an installed service.
|
||||
|
||||
(cmd-admin) py .\service\python_service.py --install
|
||||
Registering service <PFW_SERVICE_DEMO> as : <C:\Users\cleme\AppData\Local\Programs\Python\Python311\python.exe C:\Users\cleme\Documents\projets\PythonForWindows\samples\service\python_service.py --run>
|
||||
<Service "PFW_SERVICE_DEMO" SERVICE_STOPPED(0x1)>
|
||||
|
||||
(cmd-admin) sc.exe start PFW_SERVICE_DEMO
|
||||
SERVICE_NAME: PFW_SERVICE_DEMO
|
||||
TYPE : 10 WIN32_OWN_PROCESS
|
||||
STATE : 2 START_PENDING
|
||||
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
|
||||
WIN32_EXIT_CODE : 0 (0x0)
|
||||
SERVICE_EXIT_CODE : 0 (0x0)
|
||||
CHECKPOINT : 0x0
|
||||
WAIT_HINT : 0x7d0
|
||||
PID : 21132
|
||||
FLAGS :
|
||||
|
||||
(cmd-admin) sc.exe query PFW_SERVICE_DEMO
|
||||
SERVICE_NAME: PFW_SERVICE_DEMO
|
||||
TYPE : 10 WIN32_OWN_PROCESS
|
||||
STATE : 4 RUNNING
|
||||
(STOPPABLE, PAUSABLE, IGNORES_SHUTDOWN)
|
||||
WIN32_EXIT_CODE : 0 (0x0)
|
||||
SERVICE_EXIT_CODE : 0 (0x0)
|
||||
CHECKPOINT : 0x0
|
||||
WAIT_HINT : 0x0
|
||||
|
||||
(cmd-admin) cat .\service\pfw_service_logs.txt
|
||||
[2024-12-31 10:34:36.033158] calling run_demo_service()
|
||||
[2024-12-31 10:34:36.033158] ['C:\\Users\\XXX\\PythonForWindows\\samples\\service\\python_service.py', '--run']
|
||||
[2024-12-31 10:34:36.033158] start of run_demo_service()
|
||||
[2024-12-31 10:34:36.033158] Calling: StartServiceCtrlDispatcherW()
|
||||
[2024-12-31 10:34:36.033158] In service_main
|
||||
[2024-12-31 10:34:36.033158] service_main: 1
|
||||
[2024-12-31 10:34:36.033158] service_main: PFW_SERVICE_DEMO
|
||||
[2024-12-31 10:34:36.033158] Calling RegisterServiceCtrlHandlerExW
|
||||
[2024-12-31 10:34:36.033158] RegisterServiceCtrlHandlerExW handle: 2591650953424
|
||||
[2024-12-31 10:34:36.038274] Service is running : 1
|
||||
|
||||
(cmd-admin) sc.exe stop PFW_SERVICE_DEMO
|
||||
SERVICE_NAME: PFW_SERVICE_DEMO
|
||||
TYPE : 10 WIN32_OWN_PROCESS
|
||||
STATE : 1 STOPPED
|
||||
WIN32_EXIT_CODE : 0 (0x0)
|
||||
SERVICE_EXIT_CODE : 0 (0x0)
|
||||
CHECKPOINT : 0x0
|
||||
WAIT_HINT : 0x0
|
||||
|
||||
(cmd-admin) cat .\service\pfw_service_logs.txt
|
||||
[...]
|
||||
[2024-12-31 10:34:36.038274] Service is running : 1
|
||||
[2024-12-31 10:34:53.422375] in service_handlerex
|
||||
[2024-12-31 10:34:53.422375] service_handlerex: called with 1
|
||||
[2024-12-31 10:34:53.432530] Stopping the service
|
||||
[2024-12-31 10:34:53.433035] StartServiceCtrlDispatcherW returned: 1
|
||||
[2024-12-31 10:34:53.433035] Quitting
|
||||
|
||||
(cmd-admin) py .\service\python_service.py --uninstall
|
||||
Deleting service
|
||||
1
|
||||
|
||||
(cmd-admin) sc.exe query PFW_SERVICE_DEMO
|
||||
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:
|
||||
|
||||
The specified service does not exist as an installed service.
|
||||
@@ -1,3 +1,5 @@
|
||||
# A python script able to install itself as a service
|
||||
|
||||
import sys
|
||||
import os.path
|
||||
import argparse
|
||||
@@ -10,7 +12,7 @@ import windows.generated_def as gdef
|
||||
SERVICE_NAME = u"PFW_SERVICE_DEMO"
|
||||
SERVICE_DESCRIPTION = u"PythonForWindows demo service"
|
||||
|
||||
SERVICE_LOGFILE = os.path.join(os.path.dirname(__file__), "logs.txt")
|
||||
SERVICE_LOGFILE = os.path.join(os.path.dirname(__file__), "pfw_service_logs.txt")
|
||||
|
||||
SERVICE_HANDLE = None
|
||||
|
||||
|
||||
@@ -150,6 +150,10 @@ class ServiceManager(utils.AutoHandle):
|
||||
return list(self._enumerate_services_generator())
|
||||
|
||||
def create(self, name, description, access, type, start, path, user=None):
|
||||
"""Create a new service
|
||||
|
||||
:return: :class:`Service` -- The newly created service
|
||||
"""
|
||||
newservice_handle = windows.winproxy.CreateServiceW(
|
||||
self.handle, # hSCManager
|
||||
name, # lpServiceName
|
||||
@@ -239,6 +243,7 @@ class Service(gdef.SC_HANDLE):
|
||||
return status
|
||||
|
||||
def delete(self):
|
||||
"""Delete the service"""
|
||||
return windows.winproxy.DeleteService(self)
|
||||
|
||||
def __repr__(self):
|
||||
|
||||
Reference in New Issue
Block a user