/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

#ifndef mozilla_DllBlocklistInit_h
#define mozilla_DllBlocklistInit_h

#include <windows.h>

#if defined(MOZ_LAUNCHER_PROCESS)
#  include "mozilla/LauncherRegistryInfo.h"
#endif
#include "mozilla/ProcessType.h"
#include "mozilla/WinHeaderOnlyUtils.h"

namespace mozilla {

LauncherVoidResultWithLineInfo InitializeDllBlocklistOOP(
    const wchar_t* aFullImagePath, HANDLE aChildProcess,
    const IMAGE_THUNK_DATA* aCachedNtdllThunk,
    const GeckoProcessType aProcessType);

LauncherVoidResultWithLineInfo InitializeDllBlocklistOOPFromLauncher(
    const wchar_t* aFullImagePath, HANDLE aChildProcess,
    const bool aDisableDynamicBlocklist,
    Maybe<std::wstring> aBlocklistFileName);

}  // namespace mozilla

#endif  // mozilla_DllBlocklistInit_h
