Skip to content

Commit 462cb93

Browse files
authored
Simplify Callback overloads by using template parameter packs (#5983)
The event.h definition now uses template parameter packs, so update the documentation to match.
1 parent a61eb05 commit 462cb93

File tree

1 file changed

+4
-180
lines changed

1 file changed

+4
-180
lines changed

docs/cppcx/wrl/callback-function-wrl.md

Lines changed: 4 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -20,166 +20,14 @@ template<
2020
ComPtr<TDelegateInterface> Callback(
2121
TCallback callback
2222
);
23-
template<
24-
typename TDelegateInterface,
25-
typename TCallbackObject
26-
>
27-
ComPtr<TDelegateInterface> Callback(
28-
_In_ TCallbackObject *object,
29-
_In_ HRESULT (TCallbackObject::* method)()
30-
);
31-
template<
32-
typename TDelegateInterface,
33-
typename TCallbackObject,
34-
typename TArg1
35-
>
36-
ComPtr<TDelegateInterface> Callback(
37-
_In_ TCallbackObject *object,
38-
_In_ HRESULT (TCallbackObject::* method)(TArg1)
39-
);
40-
template<
41-
typename TDelegateInterface,
42-
typename TCallbackObject,
43-
typename TArg1,
44-
typename TArg2
45-
>
46-
ComPtr<TDelegateInterface> Callback(
47-
_In_ TCallbackObject *object,
48-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
49-
TArg2)
50-
);
51-
template<
52-
typename TDelegateInterface,
53-
typename TCallbackObject,
54-
typename TArg1,
55-
typename TArg2,
56-
typename TArg3
57-
>
58-
ComPtr<TDelegateInterface> Callback(
59-
_In_ TCallbackObject *object,
60-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
61-
TArg2,
62-
TArg3)
63-
);
64-
template<
65-
typename TDelegateInterface,
66-
typename TCallbackObject,
67-
typename TArg1,
68-
typename TArg2,
69-
typename TArg3,
70-
typename TArg4
71-
>
72-
ComPtr<TDelegateInterface> Callback(
73-
_In_ TCallbackObject *object,
74-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
75-
TArg2,
76-
TArg3,
77-
TArg4)
78-
);
79-
template<
80-
typename TDelegateInterface,
81-
typename TCallbackObject,
82-
typename TArg1,
83-
typename TArg2,
84-
typename TArg3,
85-
typename TArg4,
86-
typename TArg5
87-
>
88-
ComPtr<TDelegateInterface> Callback(
89-
_In_ TCallbackObject *object,
90-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
91-
TArg2,
92-
TArg3,
93-
TArg4,
94-
TArg5)
95-
);
96-
template<
97-
typename TDelegateInterface,
98-
typename TCallbackObject,
99-
typename TArg1,
100-
typename TArg2,
101-
typename TArg3,
102-
typename TArg4,
103-
typename TArg5,
104-
typename TArg6
105-
>
106-
ComPtr<TDelegateInterface> Callback(
107-
_In_ TCallbackObject *object,
108-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
109-
TArg2,
110-
TArg3,
111-
TArg4,
112-
TArg5,
113-
TArg6)
114-
);
11523
template<
11624
typename TDelegateInterface,
11725
typename TCallbackObject,
118-
typename TArg1,
119-
typename TArg2,
120-
typename TArg3,
121-
typename TArg4,
122-
typename TArg5,
123-
typename TArg6,
124-
typename TArg7
26+
typename... TArgs
12527
>
12628
ComPtr<TDelegateInterface> Callback(
12729
_In_ TCallbackObject *object,
128-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
129-
TArg2,
130-
TArg3,
131-
TArg4,
132-
TArg5,
133-
TArg6,
134-
TArg7)
135-
);
136-
template<
137-
typename TDelegateInterface,
138-
typename TCallbackObject,
139-
typename TArg1,
140-
typename TArg2,
141-
typename TArg3,
142-
typename TArg4,
143-
typename TArg5,
144-
typename TArg6,
145-
typename TArg7,
146-
typename TArg8
147-
>
148-
ComPtr<TDelegateInterface> Callback(
149-
_In_ TCallbackObject *object,
150-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
151-
TArg2,
152-
TArg3,
153-
TArg4,
154-
TArg5,
155-
TArg6,
156-
TArg7,
157-
TArg8)
158-
);
159-
template<
160-
typename TDelegateInterface,
161-
typename TCallbackObject,
162-
typename TArg1,
163-
typename TArg2,
164-
typename TArg3,
165-
typename TArg4,
166-
typename TArg5,
167-
typename TArg6,
168-
typename TArg7,
169-
typename TArg8,
170-
typename TArg9
171-
>
172-
ComPtr<TDelegateInterface> Callback(
173-
_In_ TCallbackObject *object,
174-
_In_ HRESULT (TCallbackObject::* method)(TArg1,
175-
TArg2,
176-
TArg3,
177-
TArg4,
178-
TArg5,
179-
TArg6,
180-
TArg7,
181-
TArg8,
182-
TArg9)
30+
_In_ HRESULT (TCallbackObject::* method)(TArgs...)
18331
);
18432
```
18533

@@ -194,32 +42,8 @@ A template parameter that specifies the type of an object that represents an obj
19442
*TCallbackObject*<br/>
19543
A template parameter that specifies the object whose member function is the method to call when an event occurs.
19644

197-
*TArg1*<br/>
198-
A template parameter that specifies the type of the first callback method argument.
199-
200-
*TArg2*<br/>
201-
A template parameter that specifies the type of the second callback method argument.
202-
203-
*TArg3*<br/>
204-
A template parameter that specifies the type of the third callback method argument.
205-
206-
*TArg4*<br/>
207-
A template parameter that specifies the type of the fourth callback method argument.
208-
209-
*TArg5*<br/>
210-
A template parameter that specifies the type of the fifth callback method argument.
211-
212-
*TArg6*<br/>
213-
A template parameter that specifies the type of the sixth callback method argument.
214-
215-
*TArg7*<br/>
216-
A template parameter that specifies the type of the seventh callback method argument.
217-
218-
*TArg8*<br/>
219-
A template parameter that specifies the type of the eighth callback method argument.
220-
221-
*TArg9*<br/>
222-
A template parameter that specifies the type of the ninth callback method argument.
45+
*TArgs*<br/>
46+
A template parameter pack that specifies the types of the callback method arguments.
22347

22448
*callback*<br/>
22549
An object that represents the callback object and its member function.

0 commit comments

Comments
 (0)