summaryrefslogtreecommitdiff
path: root/src/vm/extensibleclassfactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/extensibleclassfactory.h')
-rw-r--r--src/vm/extensibleclassfactory.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/vm/extensibleclassfactory.h b/src/vm/extensibleclassfactory.h
new file mode 100644
index 0000000000..a404c80260
--- /dev/null
+++ b/src/vm/extensibleclassfactory.h
@@ -0,0 +1,35 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+/*============================================================
+**
+** Header: ExtensibleClassFactory.h
+**
+**
+** Purpose: Native methods on System.Runtime.InteropServices.ExtensibleClassFactory
+**
+
+**
+===========================================================*/
+
+#ifndef _EXTENSIBLECLASSFACTORY_H
+#define _EXTENSIBLECLASSFACTORY_H
+
+#ifndef FEATURE_COMINTEROP
+#error FEATURE_COMINTEROP is required for this file
+#endif // FEATURE_COMINTEROP
+
+// Register a delegate that will be called whenever an instance of a
+// managed type that extends from an unmanaged type needs to allocate
+// the aggregated unmanaged object. This delegate is expected to
+// allocate and aggregate the unmanaged object and is called in place
+// of a CoCreateInstance. This routine must be called in the context
+// of the static initializer for the class for which the callbacks
+// will be made.
+// It is not legal to register this callback from a class that has any
+// parents that have already registered a callback.
+FCDECL1(void, RegisterObjectCreationCallback, Object* pDelegateUNSAFE);
+
+
+#endif