title: How to inject DLL making a Detours-enabled hook?
body: <p>I need any advice how to continue CreateFile() hooking after getting code as follows:</p>
  
  <pre><code>#include&lt;windows.h&gt;
  #include "C:\Detours\Detours-4.0.1\include\detours.h"
  
  static HANDLE(WINAPI* TrueCreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes,
  HANDLE hTemplateFile) = CreateFileW;
  
  __declspec(dllexport) HANDLE WINAPI MyCreateFileW(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD 
  dwShareMode,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes,
  HANDLE hTemplateFile)
  {
  if ((LPCTSTR)lpFileName == (LPCTSTR)L"C:\TestHook\file.txt")
  {
      return TrueCreateFileW((LPCTSTR)L"C:\TestHook\file.txt", dwDesiredAccess, dwShareMode, lpSecurityAttributes,
          dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
  }
  return TrueCreateFileW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes,
      dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
  }
  
  
  BOOL APIENTRY DLLMain(HMODULE hModule, DWORD reason_for_call, LPVOID lpReserved)
  {
  
  LONG error;
  switch (reason_for_call)
  {
  case DLL_PROCESS_ATTACH:
      OutputDebugString(L"Attaching HookingDLL.dll");
      //OutputDebugString(strInfo);
      DetourRestoreAfterWith();
      DetourTransactionBegin();
      DetourUpdateThread(GetCurrentThread());
      DetourAttach(&amp;(PVOID&amp;)TrueCreateFileW, MyCreateFileW);
      error = DetourTransactionCommit();
  
      if (error == NO_ERROR)
      {
          OutputDebugString(L"Hooking attempt succeeded");
      }
      else
      {
          OutputDebugString(L"Hooking attempt failed");
      }
      break;
  case DLL_THREAD_ATTACH:
      break;
  case DLL_THREAD_DETACH:
      break;
  case DLL_PROCESS_DETACH:
      OutputDebugString(L"Detaching HookingDLL.dll");
      DetourTransactionBegin();
      DetourUpdateThread(GetCurrentThread());
      DetourAttach(&amp;(PVOID&amp;)TrueCreateFileW, MyCreateFileW);
      error = DetourTransactionCommit();
  
      if (error == NO_ERROR)
      {
          OutputDebugString(L"Successfully detached hook");
      }
      else
      {
          OutputDebugString(L"Hook removal has failed");
      }
      break;
  }
  return TRUE;
  }
  </code></pre>
  
  <p>What I need is a call of MyCreateFileW hooking when creating a new .txt file in Notepad++. Most likely, I have to add a DLL injector to aplly that hook, but in Internet I didn't find any comprehensible step-by-step guide for beginners (it's worth saying I'm a student). Could you suggest how to proceed with DLL injector in my case? Let me notice that I'm using Microsoft Detours to learn API hooking more smoothly and consistently.             </p>