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
83
84
85
|
function New-Object
{
[CmdletBinding(DefaultParameterSetName='Net', HelpUri='http://go.microsoft.com/fwlink/?LinkID=113355')]
param(
[Parameter(ParameterSetName='Net', Mandatory=$true, Position=0)]
[string]
${TypeName},
[Parameter(ParameterSetName='Com', Mandatory=$true, Position=0)]
[string]
${ComObject},
[Parameter(ParameterSetName='Net', Position=1)]
[Alias('Args')]
[System.Object[]]
${ArgumentList},
[Parameter(ParameterSetName='Com')]
[switch]
${Strict},
[System.Collections.IDictionary]
${Property})
begin
{
try {
$outBuffer = $null
if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer))
{
$PSBoundParameters['OutBuffer'] = 1
}
$ClsidPresent = $false
$Guid = [Guid]::NewGuid()
if ([Guid]::TryParse($PSBoundParameters['ComObject'], [ref]$Guid))
{
$ClsidPresent = $true
}
else
{
$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand('New-Object', [System.Management.Automation.CommandTypes]::Cmdlet)
$scriptCmd = {& $wrappedCmd @PSBoundParameters }
$steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
$steppablePipeline.Begin($PSCmdlet)
}
} catch {
throw
}
}
process
{
if ($ClsidPresent)
{
[Activator]::CreateInstance([Type]::GetTypeFromCLSID($Guid), $Property)
}
else
{
try {
$steppablePipeline.Process($_)
} catch {
throw
}
}
}
end
{
if (!$ClsidPresent)
{
try {
$steppablePipeline.End()
} catch {
throw
}
}
}
<#
.ForwardHelpTargetName New-Object
.ForwardHelpCategory Cmdlet
#>
}
|