aboutsummaryrefslogtreecommitdiffhomepage
path: root/samples/einst/edll3x.cpp
blob: 2693d00a01457bff08e154fc08a0a705d5f1d130 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//////////////////////////////////////////////////////////////////////////////
//
//  Detours Test Program (edll3x.cpp of einst.exe/edll3x.dll)
//
//  Microsoft Research Detours Package
//
//  Copyright (c) Microsoft Corporation.  All rights reserved.
//
#include <stdio.h>
#include <windows.h>
#include <detours.h>

//////////////////////////////////////////////////////////////////// DLL Stuff
//
struct CPrivateStuffPart1
{
    DETOUR_SECTION_RECORD   header;
    CHAR                    szMessage[48];
};

struct CPrivateStuffPart2
{
    DETOUR_SECTION_RECORD   header;
    CHAR                    szMessage[64];
};

struct CPrivateStuff
{
    DETOUR_SECTION_HEADER   header;
    CPrivateStuffPart1      record1;
    CPrivateStuffPart2      record2;
};

#pragma data_seg(".detour")

static CPrivateStuff private_stuff = {
    DETOUR_SECTION_HEADER_DECLARE(sizeof(CPrivateStuff)),
    {
        {
            sizeof(CPrivateStuffPart1),
            0,
            { /* d9ab8a41-f4cc-11d1-b6d7-006097b010e3 */
                0xd9ab8a41,
                0xf4cc,
                0x11d1,
                {0xb6, 0xd7, 0x00, 0x60, 0x97, 0xb0, 0x10, 0xe3}
            }
        },
        "The Third DLL Part One!"
    },
    {
        {
            sizeof(CPrivateStuffPart2),
            0,
            { /* d9ab8a40-f4cc-11d1-b6d7-006097b010e3 */
                0xd9ab8a40,
                0xf4cc,
                0x11d1,
                {0xb6, 0xd7, 0x00, 0x60, 0x97, 0xb0, 0x10, 0xe3}
            }
        },
        "The Third DLL Part Two!"
    }
};
#pragma data_seg()

__declspec(dllexport) VOID WINAPI EDll3Function(VOID)
{
    return;
}

__declspec(dllexport) ULONG WINAPI
DllMain(HINSTANCE hInstance, DWORD dwReason, PVOID lpReserved)
{
    (void)hInstance;
    (void)dwReason;
    (void)lpReserved;

    return TRUE;
}

///////////////////////////////////////////////////////////////// End of File.